PlanningOptionsLP class
#include <gtopt/planning_options_lp.hpp>
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
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_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.