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 »


© Copyright .

Built with Sphinx using a theme provided by Read the Docs.