solver_session_t Derived Type

type, public :: solver_session_t

Mutable solver session that owns one configuration and, optionally, one runtime.

V1 keeps exactly one runtime context inside a session. Any setter or new namelist load invalidates the active runtime so the next initialise call rebuilds state from a coherent configuration snapshot.


Components

Type Visibility Attributes Name Initial
type(config_t), public :: cfg
type(solver_run_context_t), public :: ctx
integer, public :: dim = 1

Problem dimension: 1 or 2. Set ONLY by solver_session_load_namelist via config_dim.read_dim on the namelist PATH; LOAD_CONFIG_INLINE / SET-built configs carry no namelist buffer and stay dim=1 (spec 2026-07-03 ยง2.7).

type(config_2d_t), public :: cfg_2d
type(solver_run_context_2d_t), public :: ctx_2d
character(len=512), public :: nml_path = ''
character(len=512), public :: case_dir = ''

Case directory anchoring relative file paths for a LOAD_CONFIG_INLINE config (which has no namelist path to derive it from); '' -> resolve against the process cwd (unchanged legacy behaviour).

logical, public :: has_runtime = .false.
character(len=512), public :: last_error = ''