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 |