annular.market.tulipa.run_model =============================== .. py:module:: annular.market.tulipa.run_model Attributes ---------- .. autoapisummary:: annular.market.tulipa.run_model.logger Functions --------- .. autoapisummary:: annular.market.tulipa.run_model.run_julia_subprocess annular.market.tulipa.run_model.run_market_model Module Contents --------------- .. py:data:: logger .. py:function:: run_julia_subprocess(tulipa_config: annular.market.tulipa.config._TulipaConfig) -> None Run Julia subprocess with Tulipa configuration. :param tulipa_config: :class:`_TulipaConfig` instance with paths and settings. :raises RuntimeError: If Julia subprocess fails with non-zero exit code. .. py:function:: run_market_model(bids: pandas.DataFrame, timeseries_data: pandas.DataFrame, snapshots: pandas.DatetimeIndex, bidding_window: pandas.DatetimeIndex, output_path: pathlib.Path, iteration_id: int, config: dict) -> tuple[numpy.ndarray, numpy.ndarray] Create the central market clearing model. :param bids: MultiIndex DataFrame of bids for all satellites. :param timeseries_data: DataFrame with timeseries_data for entire simulation time. :param snapshots: Optimization window of the market model. :param bidding_window: Bidding window that matters for bids. :param output_path: Path to store the database file with the solved `TulipaEnergyModel`. The file is named `tulipa_iteration-ID.duckdb` where `ID` is the iteration ID (starting at 0). :param iteration_id: Identifier of the iteration number. Used internally to manage folder names. :param config: config dict :returns: market clearing price and quantities allocated by the market. :rtype: tuple :raises ValueError: If Tulipa configuration is incomplete. :raises RuntimeError: - if Tulipa cofiguration caused other problems - if the optimization problem is infeasible or unbounded