MPI-AMRVAC 3.2
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
Loading...
Searching...
No Matches
Public Attributes | List of all members
mod_eos_container::eos_table_container Type Reference

Public Attributes

character(len=std_lenfilename
 
double precision, dimension(:,:), allocatable table
 
integer dim1
 
integer dim2
 
double precision var1_min
 
double precision var1_max
 
double precision var2_min
 
double precision var2_max
 
double precision step_inv_1
 
double precision step_inv_2
 
double precision, dimension(max-min) precomputed
 
double precision for
 
double precision each
 
double precision axis
 
logical is_uniform = .true.
 Curvature-adaptive (non-uniform) grid support. When .true. (default), the grid is uniform in log10 space and the existing affine index calculation applies. When .false., the table file carries an explicit pair of axis node arrays read from the binary trailer; index lookup uses binary search and the local fractional coordinate becomes t1 = (var1 - var1_nodes(i)) / (var1_nodes(i+1) - var1_nodes(i)) The PCHIP/bicubic kernels themselves are unchanged.
 
double precision, dimension(:), allocatable var1_nodes
 
double precision, dimension(:), allocatable var2_nodes
 
integer guard_m_1 = 0
 Guard (bucket) array for O(1) adaptive index lookup. Built when is_uniform = .false. via eos_build_guards. For each axis: guard_M : number of buckets covering [v(1), v(N)] guard_scale: M / (v(N) - v(1)) guard(:) : 1-based array, size M; guard(k) is the smallest 1-based node index ii such that v(ii) >= left edge of bucket k (i.e., v(1) + (k-1)*span/M). Lookup: k = 1 + min(M-1, max(0, floor((val - v(1)) * scale))) ii = guard(k); while (ii < N .and. v(ii) < val) ii = ii + 1 M is sized at build time so the safety while-loop iterates at most once for typical curvature-equidistributed grids.
 
integer guard_m_2 = 0
 
double precision guard_scale_1 = 0.0d0
 
double precision guard_scale_2 = 0.0d0
 
integer, dimension(:), allocatable guard_1
 
integer, dimension(:), allocatable guard_2
 

Detailed Description

Definition at line 71 of file mod_eos_container.t.

Member Data Documentation

◆ axis

double precision mod_eos_container::eos_table_container::axis

Definition at line 77 of file mod_eos_container.t.

◆ dim1

integer mod_eos_container::eos_table_container::dim1

Definition at line 75 of file mod_eos_container.t.

◆ dim2

integer mod_eos_container::eos_table_container::dim2

Definition at line 75 of file mod_eos_container.t.

◆ each

double precision mod_eos_container::eos_table_container::each

Definition at line 77 of file mod_eos_container.t.

◆ filename

character(len=std_len) mod_eos_container::eos_table_container::filename

Definition at line 73 of file mod_eos_container.t.

◆ for

double precision mod_eos_container::eos_table_container::for

Definition at line 77 of file mod_eos_container.t.

◆ guard_1

integer, dimension(:), allocatable mod_eos_container::eos_table_container::guard_1

Definition at line 107 of file mod_eos_container.t.

◆ guard_2

integer, dimension(:), allocatable mod_eos_container::eos_table_container::guard_2

Definition at line 107 of file mod_eos_container.t.

◆ guard_m_1

integer mod_eos_container::eos_table_container::guard_m_1 = 0

Guard (bucket) array for O(1) adaptive index lookup. Built when is_uniform = .false. via eos_build_guards. For each axis: guard_M : number of buckets covering [v(1), v(N)] guard_scale: M / (v(N) - v(1)) guard(:) : 1-based array, size M; guard(k) is the smallest 1-based node index ii such that v(ii) >= left edge of bucket k (i.e., v(1) + (k-1)*span/M). Lookup: k = 1 + min(M-1, max(0, floor((val - v(1)) * scale))) ii = guard(k); while (ii < N .and. v(ii) < val) ii = ii + 1 M is sized at build time so the safety while-loop iterates at most once for typical curvature-equidistributed grids.

Definition at line 105 of file mod_eos_container.t.

◆ guard_m_2

integer mod_eos_container::eos_table_container::guard_m_2 = 0

Definition at line 105 of file mod_eos_container.t.

◆ guard_scale_1

double precision mod_eos_container::eos_table_container::guard_scale_1 = 0.0d0

Definition at line 106 of file mod_eos_container.t.

◆ guard_scale_2

double precision mod_eos_container::eos_table_container::guard_scale_2 = 0.0d0

Definition at line 106 of file mod_eos_container.t.

◆ is_uniform

logical mod_eos_container::eos_table_container::is_uniform = .true.

Curvature-adaptive (non-uniform) grid support. When .true. (default), the grid is uniform in log10 space and the existing affine index calculation applies. When .false., the table file carries an explicit pair of axis node arrays read from the binary trailer; index lookup uses binary search and the local fractional coordinate becomes t1 = (var1 - var1_nodes(i)) / (var1_nodes(i+1) - var1_nodes(i)) The PCHIP/bicubic kernels themselves are unchanged.

Naming follows the existing var1/var2 convention: var1_nodes has length dim1, var2_nodes has length dim2.

Definition at line 90 of file mod_eos_container.t.

◆ precomputed

double precision, dimension(max-min) mod_eos_container::eos_table_container::precomputed

Definition at line 77 of file mod_eos_container.t.

◆ step_inv_1

double precision mod_eos_container::eos_table_container::step_inv_1

Definition at line 77 of file mod_eos_container.t.

◆ step_inv_2

double precision mod_eos_container::eos_table_container::step_inv_2

Definition at line 77 of file mod_eos_container.t.

◆ table

double precision, dimension(:,:), allocatable mod_eos_container::eos_table_container::table

Definition at line 74 of file mod_eos_container.t.

◆ var1_max

double precision mod_eos_container::eos_table_container::var1_max

Definition at line 76 of file mod_eos_container.t.

◆ var1_min

double precision mod_eos_container::eos_table_container::var1_min

Definition at line 76 of file mod_eos_container.t.

◆ var1_nodes

double precision, dimension(:), allocatable mod_eos_container::eos_table_container::var1_nodes

Definition at line 91 of file mod_eos_container.t.

◆ var2_max

double precision mod_eos_container::eos_table_container::var2_max

Definition at line 76 of file mod_eos_container.t.

◆ var2_min

double precision mod_eos_container::eos_table_container::var2_min

Definition at line 76 of file mod_eos_container.t.

◆ var2_nodes

double precision, dimension(:), allocatable mod_eos_container::eos_table_container::var2_nodes

Definition at line 91 of file mod_eos_container.t.


The documentation for this type was generated from the following file: