config_2d Module

Mirrors the 1D config module but for the coexisting euler_2d solver. Carries grid, physics, time-control, scheme-selection, per-edge boundary-condition, and 2D initial-condition fields. The time-control and scheme fields drive the euler_2d solve (flux/reconstruction/time-integration selection and stop criteria).



Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: n_config_fields_2d = 38

Frozen ABI schema field count, identical order to config_schema_2d.ensure_schema_2d — append only.


Derived Types

type, public ::  config_2d_t

Components

Type Visibility Attributes Name Initial
integer, public :: nx = 100
integer, public :: ny = 100
real(kind=wp), public :: x_left = 0.0_wp
real(kind=wp), public :: x_right = 1.0_wp
real(kind=wp), public :: y_left = 0.0_wp
real(kind=wp), public :: y_right = 1.0_wp
character(len=32), public :: grid_type = 'uniform'
character(len=256), public :: grid_file = ''
logical, public :: grid_binary = .false.
real(kind=wp), public :: gam = 1.4_wp
real(kind=wp), public :: dt = 1.0e-4_wp
real(kind=wp), public :: cfl = 0.5_wp
real(kind=wp), public :: time_start = 0.0_wp
real(kind=wp), public :: time_stop = 0.1_wp
integer, public :: max_iter = 0
character(len=64), public :: flux_scheme = 'hllc'
character(len=64), public :: recon_scheme = 'weno5'
character(len=64), public :: time_scheme = 'rk3'
character(len=8), public :: char_proj = 'auto'
character(len=64), public :: method = 'fvm'
character(len=64), public :: problem_type = 'isentropic_vortex'
character(len=32), public :: bc_left = 'periodic'
character(len=32), public :: bc_right = 'periodic'
character(len=32), public :: bc_bottom = 'periodic'
character(len=32), public :: bc_top = 'periodic'
real(kind=wp), public :: rho_inf = 1.0_wp
real(kind=wp), public :: u_inf = 0.0_wp
real(kind=wp), public :: v_inf = 0.0_wp
real(kind=wp), public :: p_inf = 1.0_wp
logical, public :: use_positivity_limiter = .true.
character(len=256), public :: output_file = 'result_2d.dat'
character(len=64), public :: output_format = 'dat'
integer, public :: verbosity = 3
integer, public :: print_freq = 50
character(len=256), public :: log_file = 'run.log'
integer, public :: checkpoint_freq = 0
character(len=256), public :: checkpoint_file = 'checkpoint'
character(len=256), public :: restart_file = ''

Functions

public function build_field_table_2d(cfg) result(fields)

Bind the 38-entry field-descriptor table (frozen ensure_schema_2d order) to cfg. No casefold flags: the 2D reader already stores lowercased selectors, and the engine's choice compare casefolds the candidate anyway, preserving the direct-call validate_config_2d mixed-case tolerance. Help texts are empty (the 2D schema never published help).

Arguments

Type IntentOptional Attributes Name
type(config_2d_t), intent(inout), target :: cfg

Return Value type(field_desc_t), (n_config_fields_2d)


Subroutines

public subroutine read_config_2d(filename, cfg, is_ok, message, case_dir)

Read a namelist file into a config_2d_t and validate it.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename
type(config_2d_t), intent(out) :: cfg
logical, intent(out) :: is_ok
character(len=*), intent(out) :: message
character(len=*), intent(in), optional :: case_dir

Optional case directory to anchor relative file paths against; when absent/empty the namelist's own directory is used (see path_util).

public subroutine validate_config_2d(cfg, is_valid, message)

Validate ranges and enumerated selectors.

Arguments

Type IntentOptional Attributes Name
type(config_2d_t), intent(in) :: cfg
logical, intent(out) :: is_valid
character(len=*), intent(out) :: message