Skip to content

Solver

pyconvexity.solvers.pypsa.solver

Solving functionality for PyPSA networks.

Simplified to always use multi-period optimization for consistency.

NetworkSolver

Simplified PyPSA network solver that always uses multi-period optimization.

This ensures consistent behavior for both single-year and multi-year models.

solve_network(network: pypsa.Network, solver_name: str = 'highs', solver_options: Optional[Dict[str, Any]] = None, discount_rate: Optional[float] = None, job_id: Optional[str] = None, conn=None, scenario_id: Optional[int] = None, constraint_applicator=None, custom_solver_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]

Solve PyPSA network and return results.

Parameters:

Name Type Description Default
network Network

PyPSA Network object to solve

required
solver_name str

Solver to use (default: "highs"). Use "custom" for custom_solver_config.

'highs'
solver_options Optional[Dict[str, Any]]

Optional solver-specific options

None
discount_rate Optional[float]

Optional discount rate for multi-period optimization

None
job_id Optional[str]

Optional job ID for tracking

None
custom_solver_config Optional[Dict[str, Any]]

Optional custom solver configuration when solver_name="custom" Format: {"solver": "actual_solver_name", "solver_options": {...}} Example: {"solver": "gurobi", "solver_options": {"Method": 2, "Crossover": 0}}

None

Returns:

Type Description
Dict[str, Any]

Dictionary with solve results and metadata

Raises:

Type Description
ImportError

If PyPSA is not available

Exception

If solving fails