1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//! Nested scenario-library containers for training and simulation phases.
//!
//! [`ScenarioLibraries`] groups the per-phase sampling configuration and
//! optional pre-built libraries into two [`PhaseLibraries`] values — one for
//! training and one for simulation — eliminating the flat `sim_`-prefix
//! duplication that previously existed on [`super::StudySetup`].
use SamplingScheme;
use ;
/// Sampling schemes and optional pre-built libraries for a single execution
/// phase (training or simulation).
///
/// The seven fields cover the three entity classes (inflow, load, NCS): one
/// [`SamplingScheme`] and one optional library per class, plus the optional
/// historical inflow library.
///
/// Field names drop the redundant `_library` / `_scheme` suffix because the
/// enclosing struct name already conveys the "library" context.
/// Training and simulation [`PhaseLibraries`] grouped as a pair.
///
/// Replaces the 14 flat `inflow_scheme` / `sim_inflow_scheme` / … fields
/// previously held directly on [`super::StudySetup`]. The training/simulation
/// distinction is now structural rather than name-prefix-based.
///
/// ## Simulation `None` fields
///
/// For each entity class, `simulation.<library>` is `None` when the
/// simulation scheme is identical to the training scheme — the
/// simulation context falls back to the training library in that case.
/// This asymmetry is explicit: `PhaseLibraries` always stores `None` for the
/// simulation phase when it would share the training library.