Skip to content

Latest commit

 

History

History
635 lines (438 loc) · 11 KB

File metadata and controls

635 lines (438 loc) · 11 KB
.. currentmodule:: linopy

API reference

Reference for linopy's public API. Most workflows start at :class:`~linopy.model.Model`:class:`~linopy.variables.Variable`, :class:`~linopy.constraints.Constraint`, and :class:`~linopy.objective.Objective` are all built through :meth:`Model.add_variables <linopy.model.Model.add_variables>`, :meth:`Model.add_constraints <linopy.model.Model.add_constraints>`, :meth:`Model.add_objective <linopy.model.Model.add_objective>`, and accessed through the matching :attr:`Model.variables <linopy.model.Model.variables>`, :attr:`Model.constraints <linopy.model.Model.constraints>`, and :attr:`Model.objective <linopy.model.Model.objective>` accessors. The supporting classes below cover those types in detail.

Central container for an optimization problem. Most of linopy's surface lives here.

.. autosummary::
   :toctree: generated/

   model.Model

.. autosummary::
   :toctree: generated/

   model.Model.add_variables
   model.Model.add_constraints
   model.Model.add_objective
   model.Model.add_sos_constraints
   model.Model.add_piecewise_formulation

.. autosummary::
   :toctree: generated/

   model.Model.variables
   model.Model.constraints
   model.Model.objective
   model.Model.sense
   model.Model.type
   model.Model.is_linear
   model.Model.is_quadratic

.. autosummary::
   :toctree: generated/

   model.Model.remove_variables
   model.Model.remove_constraints
   model.Model.remove_objective
   model.Model.remove_sos_constraints
   model.Model.copy
   model.Model.apply_sos_reformulation
   model.Model.undo_sos_reformulation
   model.Model.reformulate_sos_constraints

.. autosummary::
   :toctree: generated/

   model.Model.solve

.. autosummary::
   :toctree: generated/

   model.Model.solution
   model.Model.dual
   model.Model.status
   model.Model.termination_condition

.. autosummary::
   :toctree: generated/

   model.Model.compute_infeasibilities
   model.Model.format_infeasibilities

.. autosummary::
   :toctree: generated/

   model.Model.to_file
   model.Model.to_netcdf
   io.read_netcdf


Subclass of xarray.DataArray carrying labels for a multi-dimensional decision variable.

.. autosummary::
   :toctree: generated/

   variables.Variable

.. autosummary::
   :toctree: generated/

   variables.Variable.lower
   variables.Variable.upper
   variables.Variable.type
   variables.Variable.solution

.. autosummary::
   :toctree: generated/

   variables.Variable.fix
   variables.Variable.unfix
   variables.Variable.relax
   variables.Variable.unrelax

.. autosummary::
   :toctree: generated/

   variables.Variable.sum
   variables.Variable.where

.. autosummary::
   :toctree: generated/

   variables.Variable.to_linexpr
   variables.Variable.to_polars


Container for the collection of variables on a model. Accessed via model.variables.

.. autosummary::
   :toctree: generated/

   variables.Variables

.. autosummary::
   :toctree: generated/

   variables.Variables.lower
   variables.Variables.upper
   variables.Variables.solution

.. autosummary::
   :toctree: generated/

   variables.Variables.fix
   variables.Variables.unfix
   variables.Variables.relax
   variables.Variables.unrelax

.. autosummary::
   :toctree: generated/

   variables.Variables.continuous
   variables.Variables.binaries
   variables.Variables.integers
   variables.Variables.semi_continuous
   variables.Variables.sos


Linear combination of variables. Arithmetic on Variable / LinearExpression returns a LinearExpression.

.. autosummary::
   :toctree: generated/

   expressions.LinearExpression

.. autosummary::
   :toctree: generated/

   expressions.LinearExpression.solution

.. autosummary::
   :toctree: generated/

   expressions.LinearExpression.sum
   expressions.LinearExpression.where
   expressions.LinearExpression.groupby
   expressions.LinearExpression.rolling

.. autosummary::
   :toctree: generated/

   expressions.LinearExpression.vars
   expressions.LinearExpression.coeffs
   expressions.LinearExpression.const
   expressions.LinearExpression.nterm

.. autosummary::
   :toctree: generated/

   expressions.LinearExpression.to_polars

.. autosummary::
   :toctree: generated/

   expressions.LinearExpression.from_tuples
   expressions.merge


Quadratic combination of variables, returned when squared Variable / LinearExpression arithmetic is performed.

.. autosummary::
   :toctree: generated/

   expressions.QuadraticExpression

.. autosummary::
   :toctree: generated/

   expressions.QuadraticExpression.vars
   expressions.QuadraticExpression.coeffs
   expressions.QuadraticExpression.const
   expressions.QuadraticExpression.nterm

.. autosummary::
   :toctree: generated/

   expressions.QuadraticExpression.to_matrix
   expressions.QuadraticExpression.to_polars

.. autosummary::
   :toctree: generated/

   expressions.QuadraticExpression.solution


Subclass of xarray.DataArray carrying labels for a multi-dimensional constraint.

.. autosummary::
   :toctree: generated/

   constraints.Constraint

.. autosummary::
   :toctree: generated/

   constraints.Constraint.lhs
   constraints.Constraint.sign
   constraints.Constraint.rhs
   constraints.Constraint.coeffs
   constraints.Constraint.vars

.. autosummary::
   :toctree: generated/

   constraints.Constraint.dual

.. autosummary::
   :toctree: generated/

   constraints.Constraint.to_polars


Memory-efficient, immutable constraint representation backed by a scipy CSR sparse matrix. Opt in via Model(freeze_constraints=True) or Model.add_constraints(..., freeze=True). See the :doc:`creating-constraints` guide for usage.

.. autosummary::
   :toctree: generated/

   constraints.CSRConstraint

.. autosummary::
   :toctree: generated/

   constraints.CSRConstraint.coeffs
   constraints.CSRConstraint.vars
   constraints.CSRConstraint.sign
   constraints.CSRConstraint.rhs
   constraints.CSRConstraint.ncons
   constraints.CSRConstraint.nterm

.. autosummary::
   :toctree: generated/

   constraints.CSRConstraint.dual

.. autosummary::
   :toctree: generated/

   constraints.CSRConstraint.to_polars


Container for the collection of constraints on a model. Accessed via model.constraints.

.. autosummary::
   :toctree: generated/

   constraints.Constraints

.. autosummary::
   :toctree: generated/

   constraints.Constraints.inequalities
   constraints.Constraints.equalities

.. autosummary::
   :toctree: generated/

   constraints.Constraints.coeffs
   constraints.Constraints.vars
   constraints.Constraints.sign
   constraints.Constraints.rhs
   constraints.Constraints.dual

.. autosummary::
   :toctree: generated/

   constraints.Constraints.to_matrix


Wraps the objective expression on a model. Accessed via model.objective.

.. autosummary::
   :toctree: generated/

   objective.Objective
   objective.Objective.expression
   objective.Objective.sense
   objective.Objective.value
   objective.Objective.is_linear
   objective.Objective.is_quadratic


.. autosummary::
   :toctree: generated/

   piecewise.breakpoints
   piecewise.segments
   piecewise.Slopes

Returned by :func:`Model.add_piecewise_formulation`.

.. autosummary::
   :toctree: generated/

   piecewise.PiecewiseFormulation
   piecewise.PiecewiseFormulation.method
   piecewise.PiecewiseFormulation.convexity
   piecewise.PiecewiseFormulation.variables
   piecewise.PiecewiseFormulation.constraints

.. autosummary::
   :toctree: generated/

   piecewise.tangent_lines

.. autosummary::
   :toctree: generated/

   constants.PWL_METHOD
   constants.PWL_METHODS
   constants.PWL_CONVEXITY
   constants.PWL_CONVEXITIES


The stateful :class:`~linopy.solvers.Solver` instance owns the solver-side model and exposes a two-step :meth:`~linopy.solvers.Solver.from_name` / :meth:`~linopy.solvers.Solver.solve` workflow. :meth:`Model.solve` is a thin wrapper around it.

.. autosummary::
   :toctree: generated/

   solvers.Solver

.. autosummary::
   :toctree: generated/

   solvers.Solver.from_name
   solvers.Solver.from_model

.. autosummary::
   :toctree: generated/

   solvers.Solver.solve
   solvers.Solver.update_solver_model
   solvers.Solver.close

.. autosummary::
   :toctree: generated/

   solvers.Solver.status
   solvers.Solver.solution
   solvers.Solver.report
   solvers.Solver.solver_model

.. autosummary::
   :toctree: generated/

   solvers.Solver.is_available
   solvers.Solver.license_status
   solvers.Solver.supports
   solvers.Solver.supported_features
   solvers.Solver.runtime_features

.. autosummary::
   :toctree: generated/

   solvers.available_solvers
   solvers.licensed_solvers
   solvers.SolverFeature
   solvers.LicenseStatus

.. autosummary::
   :toctree: generated/

   solvers.CBC
   solvers.COPT
   solvers.Cplex
   solvers.GLPK
   solvers.Gurobi
   solvers.Highs
   solvers.Knitro
   solvers.MindOpt
   solvers.Mosek
   solvers.SCIP
   solvers.Xpress
   solvers.cuPDLPx


.. autosummary::
   :toctree: generated/

   remote.RemoteHandler


Types returned by or compared against :attr:`Model.status`, :attr:`Model.termination_condition`, and :attr:`Model.solution`, plus :class:`~linopy.constants.SolverReport` surfaced on :attr:`Solver.report <linopy.solvers.Solver.report>` and :attr:`Result.report <linopy.constants.Result.report>`.

.. autosummary::
   :toctree: generated/

   constants.SolverStatus
   constants.TerminationCondition
   constants.Status
   constants.Solution
   constants.SolverReport
   constants.Result


.. autosummary::
   :toctree: generated/

   align
   options


These warning classes can be silenced or filtered via :func:`warnings.filterwarnings`.

.. autosummary::
   :toctree: generated/

   EvolvingAPIWarning
   PerformanceWarning