gtopt::PlanningOptionsLP class

Wrapper for PlanningOptions with default value handling.

PlanningOptionsLP wraps a PlanningOptions structure and provides accessor methods that automatically apply default values when options are not explicitly set. This ensures consistent behavior throughout the optimization code by defining system-wide defaults in one place.

Public static variables

static constexpr Real default_annual_discount_rate
Default annual discount rate for multi-year planning.
static constexpr auto default_input_directory
Default input directory path.
static constexpr DataFormat default_input_format
Default input file format.
static constexpr Real default_kirchhoff_threshold
Default threshold for Kirchhoff constraints.
static constexpr LineLossesMode default_line_losses_mode
Default line losses mode.
static constexpr auto default_log_directory
Default directory for log/trace files.
static constexpr Int default_loss_segments
Default number of flow segments per line (1 = linear model, >1 = piecewise-linear quadratic approximation of P_loss = R·f²/V²)
static constexpr MethodType default_method_type
Default solver type.
static constexpr LpNamesLevel default_names_level
Default LP naming level (minimal = state-var col names only)
static constexpr CompressionCodec default_output_compression
Default compression codec for output files.
static constexpr auto default_output_directory
Default output directory path.
static constexpr DataFormat default_output_format
Default output file format.
static constexpr Real default_scale_objective
Default objective function scaling factor.
static constexpr Real default_scale_theta
Default voltage angle scale factor (1/ScaleAng = 1/1e4). Convention: physical = LP × scale_theta, same as energy_scale. Theta (small ~0.01 rad) is scaled UP: LP = physical / scale_theta.
static constexpr Real default_sddp_alpha_max
Default upper bound for future cost variable α
static constexpr Real default_sddp_alpha_min
Default lower bound for future cost variable α
static constexpr Bool default_sddp_api_enabled
Default for SDDP monitoring API (enabled by default)
static constexpr Real default_sddp_convergence_confidence
Default confidence level for statistical convergence. Enables PLP-style CI-based convergence for multi-scene problems. Combined with stationary_tol, also handles the non-zero-gap case where the gap stabilises above the CI threshold. Default: 0.95 (95% confidence interval).
static constexpr Real default_sddp_convergence_tol
Default relative convergence tolerance.
static constexpr Real default_sddp_cut_coeff_eps
Default cut coefficient epsilon for filtering tiny coefficients.
static constexpr Real default_sddp_cut_coeff_max
Default max coefficient threshold for cut rescaling.
static constexpr auto default_sddp_cut_directory
Default directory for Benders cut files.
static constexpr CutSharingMode default_sddp_cut_sharing_mode
Default cut sharing mode for SDDP.
static constexpr ElasticFilterMode default_sddp_elastic_mode
Default elastic filter mode.
static constexpr Real default_sddp_elastic_penalty
Default elastic slack penalty.
static constexpr Int default_sddp_max_iterations
Default maximum SDDP iterations.
static constexpr Int default_sddp_min_iterations
Default minimum iterations before declaring convergence.
static constexpr int default_sddp_multi_cut_threshold
Default multi_cut threshold (auto-switch after this many consecutive forward-pass infeasibilities at a phase)
static constexpr Real default_sddp_scale_alpha
Default scale divisor for future cost variable α (PLP varphi)
static constexpr Real default_sddp_stationary_tol
Default stationary-gap tolerance. When the relative gap change over the look-back window is below this value, the gap is considered stationary. Used by the stationary and statistical+stationary convergence criteria. Default: 0.01 (1%).
static constexpr Int default_sddp_stationary_window
Default look-back window for stationary gap check.
static constexpr Int default_sddp_update_lp_skip
Default iterations to skip between update_lp dispatches (0 = every iteration, matching PLP behaviour)
static constexpr Bool default_use_kirchhoff
Default setting for Kirchhoff constraints.
static constexpr Bool default_use_line_losses
Default setting for line loss modeling (deprecated)
static constexpr Bool default_use_single_bus
Default setting for single-bus modeling.
static constexpr Bool default_use_uid_fname
Default setting for using UIDs in filenames.

Public static functions

template<typename T T>
static auto fallback_3(const std::optional<T>& flat, const std::optional<T>& model, const T& def) noexcept -> T -> constexpr auto
static auto validate_enum_options() -> std::vector< std::string > -> auto

Constructors, destructors, conversion operators

PlanningOptionsLP(PlanningOptions poptions = {}) explicit
Constructs a PlanningOptionsLP wrapper around a PlanningOptions object.

Public functions

auto annual_discount_rate() const -> constexpr auto
Gets the annual discount rate, using default if not set.
auto cascade_levels() const -> const auto& noexcept
Cascade level configurations. Empty → use built-in defaults.
auto cascade_sddp_options() const -> const auto& noexcept
Global cascade SDDP options (serve as defaults for all levels).
auto constraint_mode() const -> constexpr auto noexcept
auto demand_fail_cost() const -> constexpr auto
Gets the demand failure cost from model_options.
auto equilibration_method() const -> constexpr auto noexcept
The matrix equilibration method to use.
auto has_cascade_levels() const -> bool noexcept
Whether the user specified cascade levels.
auto hydro_fail_cost() const -> constexpr auto
Gets the hydro failure cost from model_options.
auto hydro_use_value() const -> constexpr auto
Gets the hydro use value (benefit per m³) from model_options.
auto input_directory() const -> constexpr auto
Gets the input directory path, using default if not set.
auto input_format() const -> std::string_view -> auto
Gets the input file format, using default if not set.
auto input_format_enum() const -> DataFormat -> constexpr auto
Gets the input file format as a typed enum.
auto kirchhoff_threshold() const -> constexpr auto
Gets the Kirchhoff threshold.
auto line_losses_mode() const -> constexpr LineLossesMode
Gets the line losses mode, with backward-compat fallback.
auto log_directory() const -> std::string -> auto
Gets the log directory for log/trace files.
auto loss_segments() const -> constexpr auto
Gets the number of piecewise-linear loss segments.
auto lp_coeff_ratio_threshold() const -> constexpr auto
Gets the LP coefficient ratio threshold for conditioning diagnostics.
auto lp_compression() const -> std::string_view -> auto
Gets the LP compression codec for debug LP files as a string.
auto lp_compression_enum() const -> std::optional< CompressionCodec > -> constexpr auto
Gets the LP compression codec as a typed enum (nullopt = inherit)
auto lp_debug() const -> constexpr auto
Gets the LP debug flag, using default if not set.
auto lp_debug_phase_max() const -> OptInt -> constexpr auto
Maximum phase UID for selective LP debug saving (nullopt = no filter).
auto lp_debug_phase_min() const -> OptInt -> constexpr auto
Minimum phase UID for selective LP debug saving (nullopt = no filter).
auto lp_debug_scene_max() const -> OptInt -> constexpr auto
Maximum scene UID for selective LP debug saving (nullopt = no filter).
auto lp_debug_scene_min() const -> OptInt -> constexpr auto
Minimum scene UID for selective LP debug saving (nullopt = no filter).
auto lp_only() const -> constexpr auto
Gets the lp_only flag, using default if not set.
auto method_type_enum() const -> MethodType -> constexpr auto
Solver type as an enum (MethodType::monolithic or MethodType::sddp).
auto monolithic_boundary_cuts_file() const -> Name -> auto
CSV file with boundary cuts for the monolithic solver (empty = none).
auto monolithic_boundary_cuts_mode_enum() const -> BoundaryCutsMode -> constexpr auto
Monolithic boundary cuts mode as an enum.
auto monolithic_boundary_max_iterations() const -> int -> auto
Maximum boundary cut iterations to load (0 = all).
auto monolithic_solve_mode_enum() const -> SolveMode -> constexpr auto
Monolithic solve mode as an enum.
auto monolithic_solver_options() const -> SolverOptions -> auto
Gets the effective monolithic solver options.
auto names_level() const -> LpNamesLevel -> constexpr auto
Gets the LP naming level, using default if not set.
auto output_compression() const -> std::string_view -> auto
Gets the output compression codec as a string name.
auto output_compression_enum() const -> CompressionCodec -> constexpr auto
Gets the output compression codec as a typed enum.
auto output_directory() const -> constexpr auto
Gets the output directory path, using default if not set.
auto output_format() const -> std::string_view -> auto
Gets the output file format as a string name.
auto output_format_enum() const -> DataFormat -> constexpr auto
Gets the output file format as a typed enum.
auto reserve_fail_cost() const -> constexpr auto
Gets the reserve failure cost from model_options.
auto scale_objective() const -> constexpr auto
Gets the objective function scaling factor.
auto scale_theta() const -> constexpr auto
Gets the voltage angle scaling factor.
auto sddp_alpha_max() const -> constexpr auto
Gets the upper bound for future cost variable α
auto sddp_alpha_min() const -> constexpr auto
Gets the lower bound for future cost variable α
auto sddp_aperture_directory() const -> Name -> auto
auto sddp_aperture_timeout() const -> constexpr auto
Aperture LP timeout in seconds.
auto sddp_apertures() const -> const auto& noexcept
auto sddp_api_enabled() const -> constexpr auto
Gets the SDDP monitoring API enabled flag, using default if not set.
auto sddp_backward_solver_options() const -> SolverOptions -> auto
Gets the effective SDDP backward-pass solver options.
auto sddp_boundary_cuts_file() const -> Name -> auto
auto sddp_boundary_cuts_mode() const -> std::string_view -> auto
Boundary cuts load mode as a string name.
auto sddp_boundary_cuts_mode_enum() const -> BoundaryCutsMode -> constexpr auto
SDDP boundary cuts mode as an enum.
auto sddp_boundary_max_iterations() const -> int -> auto
Maximum boundary cut iterations to load (0 = all).
auto sddp_convergence_confidence() const -> constexpr auto
Gets the confidence level for statistical convergence.
auto sddp_convergence_mode() const -> constexpr auto
Gets the SDDP convergence mode.
auto sddp_convergence_tol() const -> constexpr auto
Gets the SDDP convergence tolerance.
auto sddp_cut_coeff_eps() const -> double -> constexpr auto
Gets the cut coefficient tolerance for filtering tiny coefficients.
auto sddp_cut_coeff_max() const -> double -> constexpr auto
Gets the max coefficient threshold for cut rescaling.
auto sddp_cut_coeff_mode_enum() const -> CutCoeffMode -> constexpr auto
Gets the cut coefficient extraction mode as a typed enum.
auto sddp_cut_directory() const -> constexpr auto
Gets the cut directory for SDDP cut files, using default if not set.
auto sddp_cut_prune_interval() const -> constexpr auto
Iterations between cut pruning passes. Default: 10.
auto sddp_cut_recovery_mode_enum() const -> HotStartMode -> constexpr auto
SDDP cut recovery mode as an enum.
auto sddp_cut_sharing_mode() const -> std::string_view -> auto
Gets the SDDP cut sharing mode as a string name.
auto sddp_cut_sharing_mode_enum() const -> CutSharingMode -> constexpr auto
Gets the SDDP cut sharing mode as a typed enum.
auto sddp_cuts_input_file() const -> Name -> auto
Gets the input cut file for SDDP hot-start.
auto sddp_elastic_mode() const -> std::string_view -> auto
Gets the elastic filter mode as a string name.
auto sddp_elastic_mode_enum() const -> ElasticFilterMode -> constexpr auto
Gets the elastic filter mode as a typed enum.
auto sddp_elastic_penalty() const -> constexpr auto
Gets the elastic slack penalty.
auto sddp_forward_solver_options() const -> SolverOptions -> auto
Gets the effective SDDP forward-pass solver options.
auto sddp_max_cuts_per_phase() const -> constexpr auto
Maximum retained cuts per (scene, phase) LP. 0 = unlimited (default).
auto sddp_max_iterations() const -> constexpr auto
Gets the maximum SDDP iterations.
auto sddp_max_stored_cuts() const -> constexpr auto
Maximum stored cuts per scene. Default: 0 (unlimited).
auto sddp_min_iterations() const -> constexpr auto
Gets the minimum SDDP iterations before convergence.
auto sddp_missing_cut_var_mode() const -> MissingCutVarMode -> constexpr auto
How to handle cut rows referencing missing state variables.
auto sddp_multi_cut_threshold() const -> constexpr auto
Gets the multi_cut threshold.
auto sddp_named_cuts_file() const -> Name -> auto
CSV file with named-variable cuts for hot-start across all phases.
auto sddp_prune_dual_threshold() const -> constexpr auto
Dual threshold for inactive cut detection. Default: 1e-8.
auto sddp_recovery_mode_enum() const -> RecoveryMode -> constexpr auto
SDDP recovery mode as an enum.
auto sddp_save_aperture_lp() const -> constexpr auto
Whether to save LP files for infeasible apertures.
auto sddp_save_per_iteration() const -> constexpr auto
Whether to save cuts after each iteration (default: true)
auto sddp_scale_alpha() const -> constexpr auto
Gets the scale divisor for future cost variable α
auto sddp_sentinel_file() const -> Name -> auto
Gets the sentinel file path for graceful SDDP stop.
auto sddp_simulation_mode() const -> constexpr auto
Simulation mode: no training iterations, forward-only pass.
auto sddp_single_cut_storage() const -> constexpr auto
Use single cut storage (per-scene only). Default: false.
auto sddp_state_variable_lookup_mode() const -> constexpr auto
How update_lp elements obtain reservoir/battery volume between phases (affects seepage, production factor, discharge limit only). Default: warm_start (no cross-phase lookup).
auto sddp_stationary_tol() const -> constexpr auto
Gets the stationary-gap convergence tolerance.
auto sddp_stationary_window() const -> constexpr auto
Gets the look-back window for stationary gap detection.
auto sddp_update_lp_skip() const -> constexpr auto
Gets the global update_lp skip count.
auto sddp_use_clone_pool() const -> constexpr auto
Reuse cached LP clones for aperture solves. Default: true.
auto sddp_warm_start() const -> constexpr auto
Whether SDDP resolves use warm-start (default: true).
auto solver_options() const -> constexpr const SolverOptions& noexcept
Gets the global LP solver options sub-object.
auto use_kirchhoff() const -> constexpr auto
Gets the Kirchhoff constraints flag.
auto use_line_losses() const -> constexpr auto deprecated
Gets the line loss modeling flag from model_options.
auto use_single_bus() const -> constexpr auto
Gets the single-bus modeling flag.
auto use_uid_fname() const -> constexpr auto
Gets the UID filename usage flag, using default if not set.
auto variable_scale_map() const -> const auto& noexcept
Gets the variable scale map built from variable_scales entries.

Function documentation

static auto gtopt::PlanningOptionsLP::validate_enum_options() -> std::vector< std::string >

Validate all enum-typed option fields and return a list of warnings.

Since enum fields are now typed (std::optional<EnumType>), invalid JSON strings are silently dropped to nullopt during parsing. This method detects those cases and reports them. Callers should log warnings at an appropriate level (typically WARN).

gtopt::PlanningOptionsLP::PlanningOptionsLP(PlanningOptions poptions = {}) explicit

Constructs a PlanningOptionsLP wrapper around a PlanningOptions object.

Parameters
poptions The PlanningOptions object to wrap (defaults to empty)

constexpr auto gtopt::PlanningOptionsLP::annual_discount_rate() const

Gets the annual discount rate, using default if not set.

Returns The annual discount rate for multi-year planning

Gets the annual discount rate (deprecated flat field fallback). Canonical location is simulation.annual_discount_rate.

constexpr auto gtopt::PlanningOptionsLP::constraint_mode() const noexcept

Controls error handling for user constraint resolution. Default is strict — fail on any unresolved reference.

constexpr auto gtopt::PlanningOptionsLP::input_directory() const

Gets the input directory path, using default if not set.

Returns The input directory path

auto gtopt::PlanningOptionsLP::input_format() const -> std::string_view

Gets the input file format, using default if not set.

Returns The input file format as a string name

constexpr auto gtopt::PlanningOptionsLP::input_format_enum() const -> DataFormat

Gets the input file format as a typed enum.

Returns The input DataFormat enum value

constexpr LineLossesMode gtopt::PlanningOptionsLP::line_losses_mode() const

Gets the line losses mode, with backward-compat fallback.

Priority: model_options.line_losses_mode (string) → model_options.use_line_losses (bool, deprecated) → default_line_losses_mode (adaptive).

auto gtopt::PlanningOptionsLP::log_directory() const -> std::string

Gets the log directory for log/trace files.

Returns The log directory path (global — used by both monolithic and SDDP)

When log_directory is explicitly set in the JSON / CLI, that value is used as-is. Otherwise the default is output_directory + "/logs" so that all solver output (results, cuts, logs) is consolidated under a single root directory.

constexpr auto gtopt::PlanningOptionsLP::lp_coeff_ratio_threshold() const

Gets the LP coefficient ratio threshold for conditioning diagnostics.

Returns The threshold above which per-scene/phase LP stats are shown (default 1e7).

auto gtopt::PlanningOptionsLP::lp_compression() const -> std::string_view

Gets the LP compression codec for debug LP files as a string.

Returns Compression codec string (may be empty = inherit)

Returns the codec name when set, or empty string (the default) meaning "inherit from output_compression". "uncompressed" disables LP compression regardless of output_compression.

constexpr auto gtopt::PlanningOptionsLP::lp_compression_enum() const -> std::optional< CompressionCodec >

Gets the LP compression codec as a typed enum (nullopt = inherit)

Returns The CompressionCodec enum value, or nullopt

constexpr auto gtopt::PlanningOptionsLP::lp_debug() const

Gets the LP debug flag, using default if not set.

Returns Whether to save debug LP files to the log directory

constexpr auto gtopt::PlanningOptionsLP::lp_only() const

Gets the lp_only flag, using default if not set.

Returns Whether to stop after LP building

When true, the solver builds all scene×phase LP matrices but skips solving entirely. Applies uniformly to both the monolithic solver and the SDDP solver: exit right after LP assembly with no solve at all. Combine with lp_debug=true to save every scene/phase LP file to disk.

auto gtopt::PlanningOptionsLP::monolithic_solver_options() const -> SolverOptions

Gets the effective monolithic solver options.

Returns Resolved SolverOptions for the monolithic solver

Merges the per-method monolithic solver options (if set) with the global solver_options. Per-method options override the global ones.

constexpr auto gtopt::PlanningOptionsLP::names_level() const -> LpNamesLevel

Gets the LP naming level, using default if not set.

Returns LP naming level: minimal, only_cols, or cols_and_rows

auto gtopt::PlanningOptionsLP::output_compression() const -> std::string_view

Gets the output compression codec as a string name.

Returns The compression codec name for output files

constexpr auto gtopt::PlanningOptionsLP::output_compression_enum() const -> CompressionCodec

Gets the output compression codec as a typed enum.

Returns The CompressionCodec enum value

constexpr auto gtopt::PlanningOptionsLP::output_directory() const

Gets the output directory path, using default if not set.

Returns The output directory path

auto gtopt::PlanningOptionsLP::output_format() const -> std::string_view

Gets the output file format as a string name.

Returns The output file format name

constexpr auto gtopt::PlanningOptionsLP::output_format_enum() const -> DataFormat

Gets the output file format as a typed enum.

Returns The output DataFormat enum value

constexpr auto gtopt::PlanningOptionsLP::sddp_alpha_max() const

Gets the upper bound for future cost variable α

Returns α upper bound in $ (default: 1e12)

constexpr auto gtopt::PlanningOptionsLP::sddp_alpha_min() const

Gets the lower bound for future cost variable α

Returns α lower bound in $ (default: 0.0)

auto gtopt::PlanningOptionsLP::sddp_aperture_directory() const -> Name

Directory for aperture-specific scenario data (empty = use input_directory)

constexpr auto gtopt::PlanningOptionsLP::sddp_aperture_timeout() const

Aperture LP timeout in seconds.

Returns Aperture timeout (default 15s)

const auto& gtopt::PlanningOptionsLP::sddp_apertures() const noexcept

Aperture UIDs for the backward pass. nullopt = use per-phase apertures; empty = no apertures (Benders).

constexpr auto gtopt::PlanningOptionsLP::sddp_api_enabled() const

Gets the SDDP monitoring API enabled flag, using default if not set.

Returns Whether the SDDP monitoring API is enabled (default: true)

auto gtopt::PlanningOptionsLP::sddp_backward_solver_options() const -> SolverOptions

Gets the effective SDDP backward-pass solver options.

Returns Resolved SolverOptions for SDDP backward pass

Merges the per-pass backward solver options (if set) with the global solver_options. Backward-pass-specific options take precedence. Applies backward_max_fallbacks (default: 0).

auto gtopt::PlanningOptionsLP::sddp_boundary_cuts_file() const -> Name

CSV file with boundary (future-cost) cuts for the last phase. Empty = no boundary cuts.

constexpr auto gtopt::PlanningOptionsLP::sddp_convergence_confidence() const

Gets the confidence level for statistical convergence.

Returns Confidence level (0-1), 0.0 = disabled (default)

constexpr auto gtopt::PlanningOptionsLP::sddp_convergence_mode() const

Gets the SDDP convergence mode.

Returns ConvergenceMode enum (default: statistical)

constexpr auto gtopt::PlanningOptionsLP::sddp_convergence_tol() const

Gets the SDDP convergence tolerance.

Returns Relative gap tolerance for convergence (default: 1e-4)

constexpr auto gtopt::PlanningOptionsLP::sddp_cut_coeff_eps() const -> double

Gets the cut coefficient tolerance for filtering tiny coefficients.

Returns Absolute tolerance (default: 0.0 = no filtering)

constexpr auto gtopt::PlanningOptionsLP::sddp_cut_coeff_max() const -> double

Gets the max coefficient threshold for cut rescaling.

Returns Max threshold (default: 1e6)

constexpr auto gtopt::PlanningOptionsLP::sddp_cut_coeff_mode_enum() const -> CutCoeffMode

Gets the cut coefficient extraction mode as a typed enum.

Returns The CutCoeffMode enum value (default: reduced_cost)

constexpr auto gtopt::PlanningOptionsLP::sddp_cut_directory() const

Gets the cut directory for SDDP cut files, using default if not set.

Returns The cut directory path

auto gtopt::PlanningOptionsLP::sddp_cut_sharing_mode() const -> std::string_view

Gets the SDDP cut sharing mode as a string name.

Returns The cut sharing mode name

constexpr auto gtopt::PlanningOptionsLP::sddp_cut_sharing_mode_enum() const -> CutSharingMode

Gets the SDDP cut sharing mode as a typed enum.

Returns The CutSharingMode enum value

auto gtopt::PlanningOptionsLP::sddp_cuts_input_file() const -> Name

Gets the input cut file for SDDP hot-start.

Returns Cut file path or empty string for cold start

auto gtopt::PlanningOptionsLP::sddp_elastic_mode() const -> std::string_view

Gets the elastic filter mode as a string name.

Returns "single_cut" (default), "multi_cut", or "backpropagate"

constexpr auto gtopt::PlanningOptionsLP::sddp_elastic_mode_enum() const -> ElasticFilterMode

Gets the elastic filter mode as a typed enum.

Returns The ElasticFilterMode enum value

constexpr auto gtopt::PlanningOptionsLP::sddp_elastic_penalty() const

Gets the elastic slack penalty.

Returns Penalty for elastic slack variables (default: 1e6)

auto gtopt::PlanningOptionsLP::sddp_forward_solver_options() const -> SolverOptions

Gets the effective SDDP forward-pass solver options.

Returns Resolved SolverOptions for SDDP forward pass

Merges the per-pass forward solver options (if set) with the global solver_options. Forward-pass-specific options take precedence.

constexpr auto gtopt::PlanningOptionsLP::sddp_max_iterations() const

Gets the maximum SDDP iterations.

Returns Maximum number of forward/backward iterations (default: 100)

constexpr auto gtopt::PlanningOptionsLP::sddp_min_iterations() const

Gets the minimum SDDP iterations before convergence.

Returns Minimum iterations before convergence (default: 2)

constexpr auto gtopt::PlanningOptionsLP::sddp_multi_cut_threshold() const

Gets the multi_cut threshold.

Returns Forward-pass infeasibility count before auto-switching to multi_cut (default: 10; 0 = never auto-switch)

constexpr auto gtopt::PlanningOptionsLP::sddp_save_aperture_lp() const

Whether to save LP files for infeasible apertures.

Returns false by default (disabled).

constexpr auto gtopt::PlanningOptionsLP::sddp_scale_alpha() const

Gets the scale divisor for future cost variable α

Returns α scale divisor (default: 1000, analogous to PLP varphi scale)

auto gtopt::PlanningOptionsLP::sddp_sentinel_file() const -> Name

Gets the sentinel file path for graceful SDDP stop.

Returns Sentinel file path or empty string (no sentinel)

constexpr auto gtopt::PlanningOptionsLP::sddp_simulation_mode() const

Simulation mode: no training iterations, forward-only pass.

Returns true if simulation mode is enabled (default: false)

constexpr auto gtopt::PlanningOptionsLP::sddp_stationary_tol() const

Gets the stationary-gap convergence tolerance.

When positive, enables the secondary convergence criterion: if the relative change in the gap over the last stationary_window iterations falls below this threshold, the solver declares convergence even when the gap exceeds convergence_tol. Default: 0.0 (disabled).

constexpr auto gtopt::PlanningOptionsLP::sddp_stationary_window() const

Gets the look-back window for stationary gap detection.

Returns Number of iterations to look back (default: 10)

constexpr auto gtopt::PlanningOptionsLP::sddp_update_lp_skip() const

Gets the global update_lp skip count.

Returns Number of SDDP iterations to skip between update_lp dispatches

constexpr const SolverOptions& gtopt::PlanningOptionsLP::solver_options() const noexcept

Gets the global LP solver options sub-object.

Returns Const reference to the SolverOptions from the wrapped PlanningOptions

Returns the SolverOptions sub-object embedded in the planning JSON options block.

constexpr auto gtopt::PlanningOptionsLP::use_line_losses() const

Gets the line loss modeling flag from model_options.

constexpr auto gtopt::PlanningOptionsLP::use_uid_fname() const

Gets the UID filename usage flag, using default if not set.

Returns Whether to use UIDs in filenames

const auto& gtopt::PlanningOptionsLP::variable_scale_map() const noexcept

Gets the variable scale map built from variable_scales entries.

The map provides lookup(class_name, variable, uid) to resolve scale factors with per-element > per-class > default (1.0) priority.

Global scales (scale_theta, scale_alpha) are auto-injected into this map by populate_variable_scales() at construction time. Per-element fields (Battery::energy_scale, Reservoir::energy_scale) still take precedence over map entries.