Friendly Sam
How to install Friendly Sam
Get Python 3
Use a virtual environment
Install Friendly Sam
Optional dependencies
For developers
Install in developer mode
Make Sphinx documentation
Run tests
Releasing Friendly Sam
What Friendly Sam is for
Why build another tool?
Data handling is easier with Python
Domain specific toolbox
What Friendly Sam is not
OK, let’s get started!
Variables and expressions
Names don’t mean anything
VariableCollection is like an indexed Variable
Variables can have values
Expressions are immutable
Behind
value
is
evaluate()
Optimization problems
Creating a problem
Debugging constraints
Different ways to add constraints
Special ordered sets
Model basics: Parts and constraints
Interconnected parts
Parts have indexed constraints
Advanced indexing
Flow networks: Nodes and resources
Nodes and balance constraints
An example
Balance constraints
How balance constraints are made
Custom names
FlowNetwork
Unidirectional by default
Flow restrictions
Clusters and multi-area models
A cluster is fully connected
Multi-area models
Time in flow networks
Example model
API reference
Variables
friendlysam.opt.Variable
friendlysam.opt.Variable.evaluate
friendlysam.opt.Variable.take_value
friendlysam.opt.Variable.value
friendlysam.opt.Variable.variables
friendlysam.opt.VariableCollection
friendlysam.opt.VariableCollection.__call__
friendlysam.opt.VariableCollection.domain
friendlysam.opt.VariableCollection.lb
friendlysam.opt.VariableCollection.ub
friendlysam.opt.Domain
friendlysam.opt.Domain.binary
friendlysam.opt.Domain.integer
friendlysam.opt.Domain.real
friendlysam.opt.namespace
Expressions
friendlysam.opt.Operation
friendlysam.opt.Operation.create
friendlysam.opt.Operation.evaluate
friendlysam.opt.Operation.args
friendlysam.opt.Operation.leaves
friendlysam.opt.Operation.value
friendlysam.opt.Operation.variables
friendlysam.opt.Add
friendlysam.opt.Add.create
friendlysam.opt.Add.evaluate
friendlysam.opt.Add.args
friendlysam.opt.Add.leaves
friendlysam.opt.Add.value
friendlysam.opt.Add.variables
friendlysam.opt.Sub
friendlysam.opt.Sub.create
friendlysam.opt.Sub.evaluate
friendlysam.opt.Sub.args
friendlysam.opt.Sub.leaves
friendlysam.opt.Sub.value
friendlysam.opt.Sub.variables
friendlysam.opt.Mul
friendlysam.opt.Mul.create
friendlysam.opt.Mul.evaluate
friendlysam.opt.Mul.args
friendlysam.opt.Mul.leaves
friendlysam.opt.Mul.value
friendlysam.opt.Mul.variables
friendlysam.opt.Sum
friendlysam.opt.Sum.create
friendlysam.opt.Sum.evaluate
friendlysam.opt.Sum.args
friendlysam.opt.Sum.leaves
friendlysam.opt.Sum.value
friendlysam.opt.Sum.variables
friendlysam.opt.dot
friendlysam.opt.Relation
friendlysam.opt.Relation.create
friendlysam.opt.Relation.evaluate
friendlysam.opt.Relation.args
friendlysam.opt.Relation.leaves
friendlysam.opt.Relation.value
friendlysam.opt.Relation.variables
friendlysam.opt.Less
friendlysam.opt.Less.create
friendlysam.opt.Less.evaluate
friendlysam.opt.Less.args
friendlysam.opt.Less.leaves
friendlysam.opt.Less.value
friendlysam.opt.Less.variables
friendlysam.opt.LessEqual
friendlysam.opt.LessEqual.create
friendlysam.opt.LessEqual.evaluate
friendlysam.opt.LessEqual.args
friendlysam.opt.LessEqual.leaves
friendlysam.opt.LessEqual.value
friendlysam.opt.LessEqual.variables
friendlysam.opt.Eq
friendlysam.opt.Eq.create
friendlysam.opt.Eq.evaluate
friendlysam.opt.Eq.args
friendlysam.opt.Eq.leaves
friendlysam.opt.Eq.value
friendlysam.opt.Eq.variables
Constraints and optimization
friendlysam.opt.get_solver
friendlysam.opt.Problem
friendlysam.opt.Problem.add
friendlysam.opt.Problem.variables_without_value
friendlysam.opt.Problem.constraints
friendlysam.opt.Problem.objective
friendlysam.opt.Maximize
friendlysam.opt.Maximize.expr
friendlysam.opt.Maximize.variables
friendlysam.opt.Minimize
friendlysam.opt.Minimize.expr
friendlysam.opt.Minimize.variables
friendlysam.opt.Constraint
friendlysam.opt.Constraint.desc
friendlysam.opt.Constraint.long_description
friendlysam.opt.Constraint.origin
friendlysam.opt.Constraint.variables
friendlysam.opt.SOS1
friendlysam.opt.SOS1.desc
friendlysam.opt.SOS1.level
friendlysam.opt.SOS1.origin
friendlysam.opt.SOS1.variables
friendlysam.opt.SOS2
friendlysam.opt.SOS2.desc
friendlysam.opt.SOS2.level
friendlysam.opt.SOS2.origin
friendlysam.opt.SOS2.variables
friendlysam.opt.piecewise_affine
friendlysam.opt.piecewise_affine_constraints
Models
friendlysam.parts.Part
friendlysam.parts.Part.add_part
friendlysam.parts.Part.find
friendlysam.parts.Part.iter_times
friendlysam.parts.Part.iter_times_between
friendlysam.parts.Part.parts
friendlysam.parts.Part.remove_part
friendlysam.parts.Part.state_variables
friendlysam.parts.Part.step_time
friendlysam.parts.Part.times
friendlysam.parts.Part.times_between
friendlysam.parts.Part.children
friendlysam.parts.Part.children_and_self
friendlysam.parts.Part.constraints
friendlysam.parts.Part.descendants
friendlysam.parts.Part.descendants_and_self
friendlysam.parts.Part.name
friendlysam.parts.Part.time_unit
friendlysam.parts.Node
friendlysam.parts.Node.add_part
friendlysam.parts.Node.balance_constraints
friendlysam.parts.Node.cluster
friendlysam.parts.Node.find
friendlysam.parts.Node.iter_times
friendlysam.parts.Node.iter_times_between
friendlysam.parts.Node.parts
friendlysam.parts.Node.remove_part
friendlysam.parts.Node.set_cluster
friendlysam.parts.Node.state_variables
friendlysam.parts.Node.step_time
friendlysam.parts.Node.times
friendlysam.parts.Node.times_between
friendlysam.parts.Node.unset_cluster
friendlysam.parts.Node.accumulation
friendlysam.parts.Node.children
friendlysam.parts.Node.children_and_self
friendlysam.parts.Node.constraints
friendlysam.parts.Node.consumption
friendlysam.parts.Node.descendants
friendlysam.parts.Node.descendants_and_self
friendlysam.parts.Node.inflows
friendlysam.parts.Node.name
friendlysam.parts.Node.outflows
friendlysam.parts.Node.production
friendlysam.parts.Node.resources
friendlysam.parts.Node.time_unit
friendlysam.parts.FlowNetwork
friendlysam.parts.FlowNetwork.add_part
friendlysam.parts.FlowNetwork.connect
friendlysam.parts.FlowNetwork.find
friendlysam.parts.FlowNetwork.get_flow
friendlysam.parts.FlowNetwork.iter_times
friendlysam.parts.FlowNetwork.iter_times_between
friendlysam.parts.FlowNetwork.parts
friendlysam.parts.FlowNetwork.remove_part
friendlysam.parts.FlowNetwork.state_variables
friendlysam.parts.FlowNetwork.step_time
friendlysam.parts.FlowNetwork.times
friendlysam.parts.FlowNetwork.times_between
friendlysam.parts.FlowNetwork.children
friendlysam.parts.FlowNetwork.children_and_self
friendlysam.parts.FlowNetwork.constraints
friendlysam.parts.FlowNetwork.descendants
friendlysam.parts.FlowNetwork.descendants_and_self
friendlysam.parts.FlowNetwork.graph
friendlysam.parts.FlowNetwork.name
friendlysam.parts.FlowNetwork.time_unit
friendlysam.parts.Cluster
friendlysam.parts.Cluster.add_part
friendlysam.parts.Cluster.balance_constraints
friendlysam.parts.Cluster.cluster
friendlysam.parts.Cluster.find
friendlysam.parts.Cluster.iter_times
friendlysam.parts.Cluster.iter_times_between
friendlysam.parts.Cluster.parts
friendlysam.parts.Cluster.remove_part
friendlysam.parts.Cluster.set_cluster
friendlysam.parts.Cluster.state_variables
friendlysam.parts.Cluster.step_time
friendlysam.parts.Cluster.times
friendlysam.parts.Cluster.times_between
friendlysam.parts.Cluster.unset_cluster
friendlysam.parts.Cluster.accumulation
friendlysam.parts.Cluster.children
friendlysam.parts.Cluster.children_and_self
friendlysam.parts.Cluster.constraints
friendlysam.parts.Cluster.consumption
friendlysam.parts.Cluster.descendants
friendlysam.parts.Cluster.descendants_and_self
friendlysam.parts.Cluster.inflows
friendlysam.parts.Cluster.name
friendlysam.parts.Cluster.outflows
friendlysam.parts.Cluster.production
friendlysam.parts.Cluster.resource
friendlysam.parts.Cluster.resources
friendlysam.parts.Cluster.time_unit
friendlysam.parts.Storage
friendlysam.parts.Storage.add_part
friendlysam.parts.Storage.balance_constraints
friendlysam.parts.Storage.cluster
friendlysam.parts.Storage.find
friendlysam.parts.Storage.iter_times
friendlysam.parts.Storage.iter_times_between
friendlysam.parts.Storage.parts
friendlysam.parts.Storage.remove_part
friendlysam.parts.Storage.set_cluster
friendlysam.parts.Storage.state_variables
friendlysam.parts.Storage.step_time
friendlysam.parts.Storage.times
friendlysam.parts.Storage.times_between
friendlysam.parts.Storage.unset_cluster
friendlysam.parts.Storage.accumulation
friendlysam.parts.Storage.children
friendlysam.parts.Storage.children_and_self
friendlysam.parts.Storage.constraints
friendlysam.parts.Storage.consumption
friendlysam.parts.Storage.descendants
friendlysam.parts.Storage.descendants_and_self
friendlysam.parts.Storage.inflows
friendlysam.parts.Storage.name
friendlysam.parts.Storage.outflows
friendlysam.parts.Storage.production
friendlysam.parts.Storage.resource
friendlysam.parts.Storage.resources
friendlysam.parts.Storage.time_unit
friendlysam.parts.ConstraintCollection
friendlysam.parts.ConstraintCollection.add
friendlysam.parts.ConstraintCollection.make
friendlysam.models.MyopicDispatchModel
friendlysam.models.MyopicDispatchModel.advance
friendlysam.models.MyopicDispatchModel.cost
friendlysam.models.MyopicDispatchModel.state_variables
friendlysam.models.MyopicDispatchModel.children
friendlysam.models.MyopicDispatchModel.children_and_self
friendlysam.models.MyopicDispatchModel.constraints
friendlysam.models.MyopicDispatchModel.descendants
friendlysam.models.MyopicDispatchModel.descendants_and_self
friendlysam.models.MyopicDispatchModel.name
friendlysam.models.MyopicDispatchModel.time_unit
Utilities
friendlysam.util.get_list
friendlysam.util.get_series
Exceptions
friendlysam.opt.ConstraintError
friendlysam.opt.NoValueError
friendlysam.opt.SolverError
friendlysam.InsanityError
Friendly Sam
Docs
»
Edit on GitHub
Index
_
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
I
|
L
|
M
|
N
|
O
|
P
|
R
|
S
|
T
|
U
|
V
_
__call__() (friendlysam.opt.VariableCollection method)
A
accumulation (friendlysam.parts.Cluster attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Storage attribute)
Add (class in friendlysam.opt)
add() (friendlysam.opt.Problem method)
(friendlysam.parts.ConstraintCollection method)
add_part() (friendlysam.models.MyopicDispatchModel method)
(friendlysam.parts.Cluster method)
(friendlysam.parts.FlowNetwork method)
(friendlysam.parts.Node method)
(friendlysam.parts.Part method)
(friendlysam.parts.Storage method)
advance() (friendlysam.models.MyopicDispatchModel method)
args (friendlysam.opt.Add attribute)
(friendlysam.opt.Eq attribute)
(friendlysam.opt.Less attribute)
(friendlysam.opt.LessEqual attribute)
(friendlysam.opt.Mul attribute)
(friendlysam.opt.Operation attribute)
(friendlysam.opt.Relation attribute)
(friendlysam.opt.Sub attribute)
(friendlysam.opt.Sum attribute)
B
balance_constraints() (friendlysam.parts.Cluster method)
(friendlysam.parts.Node method)
(friendlysam.parts.Storage method)
binary (friendlysam.opt.Domain attribute)
C
children (friendlysam.models.MyopicDispatchModel attribute)
(friendlysam.parts.Cluster attribute)
(friendlysam.parts.FlowNetwork attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Part attribute)
(friendlysam.parts.Storage attribute)
children_and_self (friendlysam.models.MyopicDispatchModel attribute)
(friendlysam.parts.Cluster attribute)
(friendlysam.parts.FlowNetwork attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Part attribute)
(friendlysam.parts.Storage attribute)
Cluster (class in friendlysam.parts)
cluster() (friendlysam.parts.Cluster method)
(friendlysam.parts.Node method)
(friendlysam.parts.Storage method)
connect() (friendlysam.parts.FlowNetwork method)
Constraint (class in friendlysam.opt)
ConstraintCollection (class in friendlysam.parts)
ConstraintError
constraints (friendlysam.models.MyopicDispatchModel attribute)
(friendlysam.opt.Problem attribute)
(friendlysam.parts.Cluster attribute)
(friendlysam.parts.FlowNetwork attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Part attribute)
(friendlysam.parts.Storage attribute)
consumption (friendlysam.parts.Cluster attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Storage attribute)
cost() (friendlysam.models.MyopicDispatchModel method)
create() (friendlysam.opt.Add method)
(friendlysam.opt.Eq method)
(friendlysam.opt.Less method)
(friendlysam.opt.LessEqual method)
(friendlysam.opt.Mul method)
(friendlysam.opt.Operation class method)
(friendlysam.opt.Relation method)
(friendlysam.opt.Sub method)
(friendlysam.opt.Sum class method)
D
desc (friendlysam.opt.Constraint attribute)
(friendlysam.opt.SOS1 attribute)
(friendlysam.opt.SOS2 attribute)
descendants (friendlysam.models.MyopicDispatchModel attribute)
(friendlysam.parts.Cluster attribute)
(friendlysam.parts.FlowNetwork attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Part attribute)
(friendlysam.parts.Storage attribute)
descendants_and_self (friendlysam.models.MyopicDispatchModel attribute)
(friendlysam.parts.Cluster attribute)
(friendlysam.parts.FlowNetwork attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Part attribute)
(friendlysam.parts.Storage attribute)
Domain (class in friendlysam.opt)
domain (friendlysam.opt.VariableCollection attribute)
dot() (in module friendlysam.opt)
E
Eq (class in friendlysam.opt)
evaluate() (friendlysam.opt.Add method)
(friendlysam.opt.Eq method)
(friendlysam.opt.Less method)
(friendlysam.opt.LessEqual method)
(friendlysam.opt.Mul method)
(friendlysam.opt.Operation method)
(friendlysam.opt.Relation method)
(friendlysam.opt.Sub method)
(friendlysam.opt.Sum method)
(friendlysam.opt.Variable method)
expr (friendlysam.opt.Maximize attribute)
(friendlysam.opt.Minimize attribute)
F
find() (friendlysam.models.MyopicDispatchModel method)
(friendlysam.parts.Cluster method)
(friendlysam.parts.FlowNetwork method)
(friendlysam.parts.Node method)
(friendlysam.parts.Part method)
(friendlysam.parts.Storage method)
FlowNetwork (class in friendlysam.parts)
G
get_flow() (friendlysam.parts.FlowNetwork method)
get_list() (in module friendlysam.util)
get_series() (in module friendlysam.util)
get_solver() (in module friendlysam.opt)
graph (friendlysam.parts.FlowNetwork attribute)
I
inflows (friendlysam.parts.Cluster attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Storage attribute)
InsanityError
integer (friendlysam.opt.Domain attribute)
iter_times() (friendlysam.models.MyopicDispatchModel method)
(friendlysam.parts.Cluster method)
(friendlysam.parts.FlowNetwork method)
(friendlysam.parts.Node method)
(friendlysam.parts.Part method)
(friendlysam.parts.Storage method)
iter_times_between() (friendlysam.models.MyopicDispatchModel method)
(friendlysam.parts.Cluster method)
(friendlysam.parts.FlowNetwork method)
(friendlysam.parts.Node method)
(friendlysam.parts.Part method)
(friendlysam.parts.Storage method)
L
lb (friendlysam.opt.VariableCollection attribute)
leaves (friendlysam.opt.Add attribute)
(friendlysam.opt.Eq attribute)
(friendlysam.opt.Less attribute)
(friendlysam.opt.LessEqual attribute)
(friendlysam.opt.Mul attribute)
(friendlysam.opt.Operation attribute)
(friendlysam.opt.Relation attribute)
(friendlysam.opt.Sub attribute)
(friendlysam.opt.Sum attribute)
Less (class in friendlysam.opt)
LessEqual (class in friendlysam.opt)
level (friendlysam.opt.SOS1 attribute)
(friendlysam.opt.SOS2 attribute)
long_description (friendlysam.opt.Constraint attribute)
M
make() (friendlysam.parts.ConstraintCollection method)
Maximize (class in friendlysam.opt)
Minimize (class in friendlysam.opt)
Mul (class in friendlysam.opt)
MyopicDispatchModel (class in friendlysam.models)
N
name (friendlysam.models.MyopicDispatchModel attribute)
(friendlysam.parts.Cluster attribute)
(friendlysam.parts.FlowNetwork attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Part attribute)
(friendlysam.parts.Storage attribute)
namespace() (in module friendlysam.opt)
Node (class in friendlysam.parts)
NoValueError
O
objective (friendlysam.opt.Problem attribute)
Operation (class in friendlysam.opt)
origin (friendlysam.opt.Constraint attribute)
(friendlysam.opt.SOS1 attribute)
(friendlysam.opt.SOS2 attribute)
outflows (friendlysam.parts.Cluster attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Storage attribute)
P
Part (class in friendlysam.parts)
parts() (friendlysam.models.MyopicDispatchModel method)
(friendlysam.parts.Cluster method)
(friendlysam.parts.FlowNetwork method)
(friendlysam.parts.Node method)
(friendlysam.parts.Part method)
(friendlysam.parts.Storage method)
piecewise_affine() (in module friendlysam.opt)
piecewise_affine_constraints() (in module friendlysam.opt)
Problem (class in friendlysam.opt)
production (friendlysam.parts.Cluster attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Storage attribute)
R
real (friendlysam.opt.Domain attribute)
Relation (class in friendlysam.opt)
remove_part() (friendlysam.models.MyopicDispatchModel method)
(friendlysam.parts.Cluster method)
(friendlysam.parts.FlowNetwork method)
(friendlysam.parts.Node method)
(friendlysam.parts.Part method)
(friendlysam.parts.Storage method)
resource (friendlysam.parts.Cluster attribute)
(friendlysam.parts.Storage attribute)
resources (friendlysam.parts.Cluster attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Storage attribute)
S
set_cluster() (friendlysam.parts.Cluster method)
(friendlysam.parts.Node method)
(friendlysam.parts.Storage method)
SolverError
SOS1 (class in friendlysam.opt)
SOS2 (class in friendlysam.opt)
state_variables() (friendlysam.models.MyopicDispatchModel method)
(friendlysam.parts.Cluster method)
(friendlysam.parts.FlowNetwork method)
(friendlysam.parts.Node method)
(friendlysam.parts.Part method)
(friendlysam.parts.Storage method)
step_time() (friendlysam.models.MyopicDispatchModel method)
(friendlysam.parts.Cluster method)
(friendlysam.parts.FlowNetwork method)
(friendlysam.parts.Node method)
(friendlysam.parts.Part method)
(friendlysam.parts.Storage method)
Storage (class in friendlysam.parts)
Sub (class in friendlysam.opt)
Sum (class in friendlysam.opt)
T
take_value() (friendlysam.opt.Variable method)
time_unit (friendlysam.models.MyopicDispatchModel attribute)
(friendlysam.parts.Cluster attribute)
(friendlysam.parts.FlowNetwork attribute)
(friendlysam.parts.Node attribute)
(friendlysam.parts.Part attribute)
(friendlysam.parts.Storage attribute)
times() (friendlysam.models.MyopicDispatchModel method)
(friendlysam.parts.Cluster method)
(friendlysam.parts.FlowNetwork method)
(friendlysam.parts.Node method)
(friendlysam.parts.Part method)
(friendlysam.parts.Storage method)
times_between() (friendlysam.models.MyopicDispatchModel method)
(friendlysam.parts.Cluster method)
(friendlysam.parts.FlowNetwork method)
(friendlysam.parts.Node method)
(friendlysam.parts.Part method)
(friendlysam.parts.Storage method)
U
ub (friendlysam.opt.VariableCollection attribute)
unset_cluster() (friendlysam.parts.Cluster method)
(friendlysam.parts.Node method)
(friendlysam.parts.Storage method)
V
value (friendlysam.opt.Add attribute)
(friendlysam.opt.Eq attribute)
(friendlysam.opt.Less attribute)
(friendlysam.opt.LessEqual attribute)
(friendlysam.opt.Mul attribute)
(friendlysam.opt.Operation attribute)
(friendlysam.opt.Relation attribute)
(friendlysam.opt.Sub attribute)
(friendlysam.opt.Sum attribute)
(friendlysam.opt.Variable attribute)
Variable (class in friendlysam.opt)
VariableCollection (class in friendlysam.opt)
variables (friendlysam.opt.Add attribute)
(friendlysam.opt.Constraint attribute)
(friendlysam.opt.Eq attribute)
(friendlysam.opt.Less attribute)
(friendlysam.opt.LessEqual attribute)
(friendlysam.opt.Maximize attribute)
(friendlysam.opt.Minimize attribute)
(friendlysam.opt.Mul attribute)
(friendlysam.opt.Operation attribute)
(friendlysam.opt.Relation attribute)
(friendlysam.opt.SOS1 attribute)
(friendlysam.opt.SOS2 attribute)
(friendlysam.opt.Sub attribute)
(friendlysam.opt.Sum attribute)
(friendlysam.opt.Variable attribute)
variables_without_value() (friendlysam.opt.Problem method)
Read the Docs
v: develop
Versions
latest
stable
develop
v0.2.0
Downloads
pdf
htmlzip
epub
On Read the Docs
Project Home
Builds
Free document hosting provided by
Read the Docs
.