.. currentmodule:: linopy
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