Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
coefs::coef_t Type Reference

Coefficients defined on a given (mesh, \( X_h \)) tuple. Arrays use indices (i,j,k,e): element e, local coordinate (i,j,k). More...

Collaboration diagram for coefs::coef_t:

Public Member Functions

procedure, pass(this) free (this)
 Deallocate coefficients.
 
procedure, pass(this) get_normal (this, i, j, k, e, facet)
 Facet normal at a point.
 
procedure, pass(this) get_area (this, i, j, k, e, facet)
 Facet area at a point.
 
procedure, pass(this) require_facets (this, who)
 Abort unless this coef holds the facet areas and normals.
 
procedure, pass(this) generate_cyclic_bc (this)
 
procedure, pass(this) recompute_metrics (this)
 Recompute and update geometric factors (ALE)
 
procedure, pass(this) metric_condition (this)
 Compute the metric tensor condition numbers over the mesh.
 
procedure, pass(this) enable_geo_compression (this, tol)
 Enable compressed geometric factors.
 
procedure, pass(this) enable_b_history (this)
 Enable separate memory for lagged B matrices if needed. For eg. when mesh moves.
 
procedure, pass(this) update_b_history (this)
 Update history: Blaglag = Blag, Blag = B.
 
generic init (this, xh, msh)
 Initialize empty coefs for a space and a mesh.
 
generic init (this, gs_h, scope)
 Initialize coefficients.
 

Public Attributes

real(kind=rp), dimension(:,:,:,:), allocatable g11
 Geometric factors \( G_{11} \).
 
real(kind=rp), dimension(:,:,:,:), allocatable g22
 Geometric factors \( G_{22} \).
 
real(kind=rp), dimension(:,:,:,:), allocatable g33
 Geometric factors \( G_{33} \).
 
real(kind=rp), dimension(:,:,:,:), allocatable g12
 Geometric factors \( G_{12} \).
 
real(kind=rp), dimension(:,:,:,:), allocatable g13
 Geometric factors \( G_{13} \).
 
real(kind=rp), dimension(:,:,:,:), allocatable g23
 Geometric factors \( G_{23} \).
 
real(kind=rp) metric_cond = 0.0_rp
 Largest condition number of the metric tensor over the mesh, global across ranks. Zero until coef_metric_condition() has been called. Governs single precision arithmetic, see NEKO_METRIC_COND_SP.
 
real(kind=rp) metric_scaled_cond = 0.0_rp
 Largest condition number of the Jacobi scaled metric tensor \( C_{ij} = G_{ij}/\sqrt{G_{ii}G_{jj}} \) over the mesh, global across ranks. Zero until coef_metric_condition() has been called. Unlike metric_cond this is independent of the element aspect ratio, and it is the term that governs single precision storage; it enters metric_perturb weighted by the storage roundoff.
 
integer metric_degenerate = 0
 Quadrature points whose metric tensor is not positive definite, i.e. degenerate or inverted elements. Global across ranks.
 
real(kind=rp) metric_perturb = 0.0_rp
 Predicted relative perturbation of the element Helmholtz operator, in its own energy norm, from holding \( G_{ij} \) in single precision and accumulating in rp, i.e. \( \epsilon_{sp}\kappa(C) + \epsilon_{rp}\kappa(G) \). Zero until coef_metric_condition() has been called. See NEKO_METRIC_PERTURB_MAX.
 
logical metric_sp_safe = .false.
 Whether single precision geometric factors are safe on this mesh, i.e. metric_perturb <= NEKO_METRIC_PERTURB_MAX and no degenerate points. Because metric_perturb carries the accumulation term as well as the storage term, this is correct on an rp = sp build as well as on a double precision build holding \( G_{ij} \) in single. A reduced precision storage path should gate on this flag and report its own decision. coef_metric_condition() logs the flag every run beside the two condition numbers and the estimate that produce it, and warns separately – on definiteness grounds – when a single precision build trips NEKO_METRIC_COND_SP.
 
real(kind=rp), dimension(:,:,:,:), allocatable g11_compr
 Compressed geometric factors \( G_{11} \).
 
real(kind=rp), dimension(:,:,:,:), allocatable g22_compr
 Compressed geometric factors \( G_{22} \).
 
real(kind=rp), dimension(:,:,:,:), allocatable g33_compr
 Compressed geometric factors \( G_{33} \).
 
real(kind=rp), dimension(:,:,:,:), allocatable g12_compr
 Compressed geometric factors \( G_{12} \).
 
real(kind=rp), dimension(:,:,:,:), allocatable g13_compr
 Compressed geometric factors \( G_{13} \).
 
real(kind=rp), dimension(:,:,:,:), allocatable g23_compr
 Compressed geometric factors \( G_{23} \).
 
integer, dimension(:), allocatable compression_inds
 Compressed geometric factors lookup indices.
 
logical geo_compression = .false.
 Whether the compressed geometric factors are kept in step with the geometry, see enable_geo_compression().
 
real(kind=rp) geo_compression_tol = 0.0_rp
 Relative tolerance under which two elements share their compressed geometric factors.
 
real(kind=rp), dimension(:,:,:,:), allocatable mult
 Multiplicity.
 
real(kind=rp), dimension(:,:,:,:), allocatable dxdr
 generate mapping data between element and reference element \( dx/dr, dy/dr, dz/dr \) \( dx/ds, dy/ds, dz/ds \) \( dx/dt, dy/dt, dz/dt \)
 
real(kind=rp), dimension(:,:,:,:), allocatable dydr
 
real(kind=rp), dimension(:,:,:,:), allocatable dzdr
 
real(kind=rp), dimension(:,:,:,:), allocatable dxds
 
real(kind=rp), dimension(:,:,:,:), allocatable dyds
 
real(kind=rp), dimension(:,:,:,:), allocatable dzds
 
real(kind=rp), dimension(:,:,:,:), allocatable dxdt
 
real(kind=rp), dimension(:,:,:,:), allocatable dydt
 
real(kind=rp), dimension(:,:,:,:), allocatable dzdt
 
real(kind=rp), dimension(:,:,:,:), allocatable drdx
 \( dr/dx, dr/dy, dr/dz \) \( ds/dx, ds/dy, ds/dz \) \( dt/dx, dt/dy, dt/dz \)
 
real(kind=rp), dimension(:,:,:,:), allocatable drdy
 
real(kind=rp), dimension(:,:,:,:), allocatable drdz
 
real(kind=rp), dimension(:,:,:,:), allocatable dsdx
 
real(kind=rp), dimension(:,:,:,:), allocatable dsdy
 
real(kind=rp), dimension(:,:,:,:), allocatable dsdz
 
real(kind=rp), dimension(:,:,:,:), allocatable dtdx
 
real(kind=rp), dimension(:,:,:,:), allocatable dtdy
 
real(kind=rp), dimension(:,:,:,:), allocatable dtdz
 
real(kind=rp), dimension(:,:,:,:), allocatable h1
 Stiffness scaling.
 
real(kind=rp), dimension(:,:,:,:), allocatable h2
 Mass scaling.
 
logical ifh2
 True if h2 .ne. 0.
 
real(kind=rp), dimension(:,:,:,:), allocatable jac
 Jacobian.
 
real(kind=rp), dimension(:,:,:,:), allocatable jacinv
 Inverted Jacobian.
 
real(kind=rp), dimension(:,:,:,:), allocatable b
 Mass matrix/volume matrix.
 
real(kind=rp), dimension(:,:,:,:), allocatable binv
 Inverted Mass matrix/volume matrix.
 
real(kind=rp), dimension(:,:,:,:), pointer blag => null()
 Lagged Mass matrix/volume matrix.
 
real(kind=rp), dimension(:,:,:,:), pointer blaglag => null()
 lag-lagged Mass matrix/volume matrix
 
real(kind=rp), dimension(:,:,:,:), allocatable area
 Facet area.
 
real(kind=rp), dimension(:,:,:,:), allocatable nx
 x-direction of facet normal
 
real(kind=rp), dimension(:,:,:,:), allocatable ny
 y-direction of facet normal
 
real(kind=rp), dimension(:,:,:,:), allocatable nz
 z-direction of facet normal
 
logical cyclic = .false.
 
integer, dimension(:), allocatable cyc_msk
 
real(kind=rp), dimension(:), allocatable r11
 entry of 2D rotation matrix at index (1,1)
 
real(kind=rp), dimension(:), allocatable r12
 entry of 2D rotation matrix at index (1,2)
 
integer scope = COEF_FULL
 Which coefficients this instance retains, COEF_FULL or COEF_OPERATOR. Anything not retained is deallocated at the end of init.
 
real(kind=rp) volume = 0.0_rp
 Pointers to main fields.
 
type(space_t), pointer xh => null()
 
type(mesh_t), pointer msh => null()
 
type(dofmap_t), pointer dof => null()
 
type(gs_t), pointer gs_h => null()
 
type(c_ptr) g11_d = C_NULL_PTR
 
type(c_ptr) g22_d = C_NULL_PTR
 
type(c_ptr) g33_d = C_NULL_PTR
 
type(c_ptr) g12_d = C_NULL_PTR
 
type(c_ptr) g13_d = C_NULL_PTR
 
type(c_ptr) g23_d = C_NULL_PTR
 
type(c_ptr) g11_compr_d = C_NULL_PTR
 
type(c_ptr) g22_compr_d = C_NULL_PTR
 
type(c_ptr) g33_compr_d = C_NULL_PTR
 
type(c_ptr) g12_compr_d = C_NULL_PTR
 
type(c_ptr) g13_compr_d = C_NULL_PTR
 
type(c_ptr) g23_compr_d = C_NULL_PTR
 
type(c_ptr) compression_inds_d = C_NULL_PTR
 
type(c_ptr) dxdr_d = C_NULL_PTR
 
type(c_ptr) dydr_d = C_NULL_PTR
 
type(c_ptr) dzdr_d = C_NULL_PTR
 
type(c_ptr) dxds_d = C_NULL_PTR
 
type(c_ptr) dyds_d = C_NULL_PTR
 
type(c_ptr) dzds_d = C_NULL_PTR
 
type(c_ptr) dxdt_d = C_NULL_PTR
 
type(c_ptr) dydt_d = C_NULL_PTR
 
type(c_ptr) dzdt_d = C_NULL_PTR
 
type(c_ptr) drdx_d = C_NULL_PTR
 
type(c_ptr) drdy_d = C_NULL_PTR
 
type(c_ptr) drdz_d = C_NULL_PTR
 
type(c_ptr) dsdx_d = C_NULL_PTR
 
type(c_ptr) dsdy_d = C_NULL_PTR
 
type(c_ptr) dsdz_d = C_NULL_PTR
 
type(c_ptr) dtdx_d = C_NULL_PTR
 
type(c_ptr) dtdy_d = C_NULL_PTR
 
type(c_ptr) dtdz_d = C_NULL_PTR
 
type(c_ptr) mult_d = C_NULL_PTR
 
type(c_ptr) h1_d = C_NULL_PTR
 
type(c_ptr) h2_d = C_NULL_PTR
 
type(c_ptr) jac_d = C_NULL_PTR
 
type(c_ptr) jacinv_d = C_NULL_PTR
 
type(c_ptr) b_d = C_NULL_PTR
 
type(c_ptr) blag_d = C_NULL_PTR
 
type(c_ptr) blaglag_d = C_NULL_PTR
 
type(c_ptr) binv_d = C_NULL_PTR
 
type(c_ptr) area_d = C_NULL_PTR
 
type(c_ptr) nx_d = C_NULL_PTR
 
type(c_ptr) ny_d = C_NULL_PTR
 
type(c_ptr) nz_d = C_NULL_PTR
 
type(c_ptr) cyc_msk_d = C_NULL_PTR
 
type(c_ptr) r11_d = C_NULL_PTR
 
type(c_ptr) r12_d = C_NULL_PTR
 
integer metrics_version = 0
 Version of the current geometry. Incremented by recompute_metrics.
 

Private Member Functions

procedure, pass(this), private init_empty (this, xh, msh)
 Initialize empty coefs for a space and a mesh.
 
procedure, pass(this), private init_all (this, gs_h, scope)
 Initialize coefficients.
 

Private Attributes

logical, private coef_metrics_initialized = .false.
 

Detailed Description

Definition at line 136 of file coef.f90.

Member Function/Subroutine Documentation

◆ enable_b_history()

procedure, pass(this) coefs::coef_t::enable_b_history ( class(coef_t), intent(inout), target  this)

Definition at line 319 of file coef.f90.

◆ enable_geo_compression()

procedure, pass(this) coefs::coef_t::enable_geo_compression ( class(coef_t), intent(inout)  this,
real(kind=rp), intent(in), optional  tol 
)

Builds processor-local compressed copies of the geometric factors, see coef_generate_geo_compr(), for the operators that read them, e.g. ax_helm_compr_cpu_t, and rebuilds them with the geometry in recompute_metrics(). The copies are read by the CPU, SX and device backends, so nothing is built on the XSMM backend. Collective. Like the other diagnostics, the statistics are only logged under COEF_FULL, not for the operator-only coefficients of multigrid levels.

Parameters
tolTolerance on the difference of the geometric factors, summed over the element, under which two elements share them, defaults to 1e-7.

Definition at line 317 of file coef.f90.

◆ free()

procedure, pass(this) coefs::coef_t::free ( class(coef_t), intent(inout), target  this)

Definition at line 310 of file coef.f90.

◆ generate_cyclic_bc()

procedure, pass(this) coefs::coef_t::generate_cyclic_bc ( class(coef_t), intent(inout)  this)

Definition at line 314 of file coef.f90.

◆ get_area()

procedure, pass(this) coefs::coef_t::get_area ( class(coef_t), intent(in)  this,
integer, intent(in)  i,
integer, intent(in)  j,
integer, intent(in)  k,
integer, intent(in)  e,
integer, intent(in)  facet 
)
Note
Pure, see the note on coef_get_normal().

Definition at line 312 of file coef.f90.

◆ get_normal()

procedure, pass(this) coefs::coef_t::get_normal ( class(coef_t), intent(in)  this,
integer, intent(in)  i,
integer, intent(in)  j,
integer, intent(in)  k,
integer, intent(in)  e,
integer, intent(in)  facet 
)
Note
Pure, so it cannot reject a coef_t that lacks the normals. Consumers assert that themselves at setup, see coef_require_facets().

Definition at line 311 of file coef.f90.

◆ init() [1/2]

generic coefs::coef_t::init ( class(coef_t), intent(inout), target  this,
type(gs_t), intent(inout), target  gs_h,
integer, intent(in), optional  scope 
)
Parameters
gs_hGather-scatter handle carrying the dofmap to build on.
scopeWhich coefficients to retain, COEF_FULL (default) or COEF_OPERATOR. See the scope parameters for what each one keeps.

Definition at line 321 of file coef.f90.

◆ init() [2/2]

generic coefs::coef_t::init ( class(coef_t), intent(inout)  this,
type(space_t), intent(inout), target  xh,
type(mesh_t), intent(inout), target  msh 
)

Definition at line 321 of file coef.f90.

◆ init_all()

procedure, pass(this), private coefs::coef_t::init_all ( class(coef_t), intent(inout), target  this,
type(gs_t), intent(inout), target  gs_h,
integer, intent(in), optional  scope 
)
private
Parameters
gs_hGather-scatter handle carrying the dofmap to build on.
scopeWhich coefficients to retain, COEF_FULL (default) or COEF_OPERATOR. See the scope parameters for what each one keeps.

Definition at line 309 of file coef.f90.

◆ init_empty()

procedure, pass(this), private coefs::coef_t::init_empty ( class(coef_t), intent(inout)  this,
type(space_t), intent(inout), target  xh,
type(mesh_t), intent(inout), target  msh 
)
private

Definition at line 308 of file coef.f90.

◆ metric_condition()

procedure, pass(this) coefs::coef_t::metric_condition ( class(coef_t), intent(inout)  this)

The stored geometric factors are \( G = w_3 J M \), where \( M \) is the metric matrix at a quadrature point. Both \( w_3 \) and the Jacobian are scalar multipliers, so \( \kappa(G) = \kappa(M) \) and the condition number of the stored \( G_{ij} \) is a pure property of the element geometry.

Two numbers are computed, because reduced precision arithmetic and reduced precision storage are limited by different properties of the element.

metric_cond is \( \kappa(G) \) and it governs the arithmetic. Applying \( D^T G D \) in precision \( \epsilon \) accumulates a quadratic form whose smallest eigendirection contributes a term of relative size \( 1/\kappa(G) \), which is lost once \( \kappa(G) \gtrsim 1/\epsilon \): about \( 1.7\times 10^{7} \) in single precision against \( 9\times 10^{15} \) in double. Below that the error grows as \( \epsilon\kappa(G) \); past it the local operator can turn indefinite and a Krylov solve breaks down rather than degrading. \( \kappa(G) \) grows as the square of the element aspect ratio, so a wall resolved boundary layer can approach the single precision limit while remaining ten orders clear of the double precision one. The single precision warning below is keyed on it.

metric_scaled_cond is \( \kappa(C) \) for the Jacobi scaled metric \( C_{ij} = G_{ij}/\sqrt{G_{ii}G_{jj}} \), the matrix of cosines between the contravariant basis vectors, and it governs storage. Rounding \( G_{ij} \) to a lower precision is a componentwise relative perturbation, so writing \( G = \Delta C \Delta \) with \( \Delta = \mathrm{diag}(\sqrt{G_{ii}}) \) the diagonal scaling passes through the rounding unchanged and cancels in every quadratic form. What remains bounds the relative perturbation of the element operator in its own energy norm by \( \epsilon\kappa(C) \), independent of the aspect ratio, of \( \kappa(G) \), of h and of the polynomial order: element stretching is invisible to storage rounding and only skew matters. Definiteness survives while \( \lambda_{min}(C) > 3\epsilon \), which in two dimensions means element edges more than about \( 0.02^\circ \) from parallel, so for storage this is a degenerate element test rather than an aspect ratio limit.

The two combine additively rather than as a pair of thresholds, because they are multiplied by different unit roundoffs – that of the precision \( G_{ij} \) is held in, and that of the precision the contraction accumulates in. metric_perturb reports \( \epsilon_{sp}\kappa(C) + \epsilon_{rp}\kappa(G) \), the predicted relative perturbation of the element operator were the factors held in single precision, and metric_sp_safe thresholds that against NEKO_METRIC_PERTURB_MAX. Gating on \( \kappa(G) \) alone is conservative by the square of the aspect ratio on a double precision build; gating on \( \kappa(C) \) alone would call an rp = sp build safe on a wall resolved mesh, which it is not.

Note
On device builds the host copy of \( G_{ij} \) is only refreshed at initialization, so this refreshes it itself when called later. It is not called from recompute_metrics(); a moving mesh that deforms significantly should invoke it explicitly.

Definition at line 316 of file coef.f90.

◆ recompute_metrics()

procedure, pass(this) coefs::coef_t::recompute_metrics ( class(coef_t), intent(inout)  this)

Definition at line 315 of file coef.f90.

◆ require_facets()

procedure, pass(this) coefs::coef_t::require_facets ( class(coef_t), intent(in)  this,
character(len=*), intent(in)  who 
)

For consumers of the facet metrics to call once at setup, so that being handed a COEF_OPERATOR coef fails at construction with a message naming the consumer, rather than dereferencing a released array mid solve. get_area() and get_normal() are pure and cannot report it themselves, and some consumers read nx, ny and nz directly and never go through them at all.

Parameters
whoName of the consumer, used in the error message.

Definition at line 313 of file coef.f90.

◆ update_b_history()

procedure, pass(this) coefs::coef_t::update_b_history ( class(coef_t), intent(inout), target  this)

Definition at line 320 of file coef.f90.

Member Data Documentation

◆ area

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::area

Definition at line 227 of file coef.f90.

◆ area_d

type(c_ptr) coefs::coef_t::area_d = C_NULL_PTR

Definition at line 296 of file coef.f90.

◆ b

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::b

Definition at line 223 of file coef.f90.

◆ b_d

type(c_ptr) coefs::coef_t::b_d = C_NULL_PTR

Definition at line 292 of file coef.f90.

◆ binv

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::binv

Definition at line 224 of file coef.f90.

◆ binv_d

type(c_ptr) coefs::coef_t::binv_d = C_NULL_PTR

Definition at line 295 of file coef.f90.

◆ blag

real(kind=rp), dimension(:,:,:,:), pointer coefs::coef_t::blag => null()

Definition at line 225 of file coef.f90.

◆ blag_d

type(c_ptr) coefs::coef_t::blag_d = C_NULL_PTR

Definition at line 293 of file coef.f90.

◆ blaglag

real(kind=rp), dimension(:,:,:,:), pointer coefs::coef_t::blaglag => null()

Definition at line 226 of file coef.f90.

◆ blaglag_d

type(c_ptr) coefs::coef_t::blaglag_d = C_NULL_PTR

Definition at line 294 of file coef.f90.

◆ coef_metrics_initialized

logical, private coefs::coef_t::coef_metrics_initialized = .false.
private

Definition at line 237 of file coef.f90.

◆ compression_inds

integer, dimension(:), allocatable coefs::coef_t::compression_inds

Definition at line 194 of file coef.f90.

◆ compression_inds_d

type(c_ptr) coefs::coef_t::compression_inds_d = C_NULL_PTR

Definition at line 268 of file coef.f90.

◆ cyc_msk

integer, dimension(:), allocatable coefs::coef_t::cyc_msk

Definition at line 232 of file coef.f90.

◆ cyc_msk_d

type(c_ptr) coefs::coef_t::cyc_msk_d = C_NULL_PTR

Definition at line 300 of file coef.f90.

◆ cyclic

logical coefs::coef_t::cyclic = .false.

Definition at line 231 of file coef.f90.

◆ dof

type(dofmap_t), pointer coefs::coef_t::dof => null()

Definition at line 249 of file coef.f90.

◆ drdx

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::drdx

Definition at line 213 of file coef.f90.

◆ drdx_d

type(c_ptr) coefs::coef_t::drdx_d = C_NULL_PTR

Definition at line 278 of file coef.f90.

◆ drdy

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::drdy

Definition at line 213 of file coef.f90.

◆ drdy_d

type(c_ptr) coefs::coef_t::drdy_d = C_NULL_PTR

Definition at line 279 of file coef.f90.

◆ drdz

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::drdz

Definition at line 213 of file coef.f90.

◆ drdz_d

type(c_ptr) coefs::coef_t::drdz_d = C_NULL_PTR

Definition at line 280 of file coef.f90.

◆ dsdx

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dsdx

Definition at line 214 of file coef.f90.

◆ dsdx_d

type(c_ptr) coefs::coef_t::dsdx_d = C_NULL_PTR

Definition at line 281 of file coef.f90.

◆ dsdy

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dsdy

Definition at line 214 of file coef.f90.

◆ dsdy_d

type(c_ptr) coefs::coef_t::dsdy_d = C_NULL_PTR

Definition at line 282 of file coef.f90.

◆ dsdz

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dsdz

Definition at line 214 of file coef.f90.

◆ dsdz_d

type(c_ptr) coefs::coef_t::dsdz_d = C_NULL_PTR

Definition at line 283 of file coef.f90.

◆ dtdx

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dtdx

Definition at line 215 of file coef.f90.

◆ dtdx_d

type(c_ptr) coefs::coef_t::dtdx_d = C_NULL_PTR

Definition at line 284 of file coef.f90.

◆ dtdy

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dtdy

Definition at line 215 of file coef.f90.

◆ dtdy_d

type(c_ptr) coefs::coef_t::dtdy_d = C_NULL_PTR

Definition at line 285 of file coef.f90.

◆ dtdz

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dtdz

Definition at line 215 of file coef.f90.

◆ dtdz_d

type(c_ptr) coefs::coef_t::dtdz_d = C_NULL_PTR

Definition at line 286 of file coef.f90.

◆ dxdr

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dxdr

Definition at line 207 of file coef.f90.

◆ dxdr_d

type(c_ptr) coefs::coef_t::dxdr_d = C_NULL_PTR

Definition at line 269 of file coef.f90.

◆ dxds

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dxds

Definition at line 208 of file coef.f90.

◆ dxds_d

type(c_ptr) coefs::coef_t::dxds_d = C_NULL_PTR

Definition at line 272 of file coef.f90.

◆ dxdt

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dxdt

Definition at line 209 of file coef.f90.

◆ dxdt_d

type(c_ptr) coefs::coef_t::dxdt_d = C_NULL_PTR

Definition at line 275 of file coef.f90.

◆ dydr

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dydr

Definition at line 207 of file coef.f90.

◆ dydr_d

type(c_ptr) coefs::coef_t::dydr_d = C_NULL_PTR

Definition at line 270 of file coef.f90.

◆ dyds

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dyds

Definition at line 208 of file coef.f90.

◆ dyds_d

type(c_ptr) coefs::coef_t::dyds_d = C_NULL_PTR

Definition at line 273 of file coef.f90.

◆ dydt

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dydt

Definition at line 209 of file coef.f90.

◆ dydt_d

type(c_ptr) coefs::coef_t::dydt_d = C_NULL_PTR

Definition at line 276 of file coef.f90.

◆ dzdr

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dzdr

Definition at line 207 of file coef.f90.

◆ dzdr_d

type(c_ptr) coefs::coef_t::dzdr_d = C_NULL_PTR

Definition at line 271 of file coef.f90.

◆ dzds

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dzds

Definition at line 208 of file coef.f90.

◆ dzds_d

type(c_ptr) coefs::coef_t::dzds_d = C_NULL_PTR

Definition at line 274 of file coef.f90.

◆ dzdt

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::dzdt

Definition at line 209 of file coef.f90.

◆ dzdt_d

type(c_ptr) coefs::coef_t::dzdt_d = C_NULL_PTR

Definition at line 277 of file coef.f90.

◆ g11

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g11

Definition at line 138 of file coef.f90.

◆ g11_compr

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g11_compr

Definition at line 182 of file coef.f90.

◆ g11_compr_d

type(c_ptr) coefs::coef_t::g11_compr_d = C_NULL_PTR

Definition at line 262 of file coef.f90.

◆ g11_d

type(c_ptr) coefs::coef_t::g11_d = C_NULL_PTR

Definition at line 256 of file coef.f90.

◆ g12

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g12

Definition at line 144 of file coef.f90.

◆ g12_compr

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g12_compr

Definition at line 188 of file coef.f90.

◆ g12_compr_d

type(c_ptr) coefs::coef_t::g12_compr_d = C_NULL_PTR

Definition at line 265 of file coef.f90.

◆ g12_d

type(c_ptr) coefs::coef_t::g12_d = C_NULL_PTR

Definition at line 259 of file coef.f90.

◆ g13

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g13

Definition at line 146 of file coef.f90.

◆ g13_compr

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g13_compr

Definition at line 190 of file coef.f90.

◆ g13_compr_d

type(c_ptr) coefs::coef_t::g13_compr_d = C_NULL_PTR

Definition at line 266 of file coef.f90.

◆ g13_d

type(c_ptr) coefs::coef_t::g13_d = C_NULL_PTR

Definition at line 260 of file coef.f90.

◆ g22

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g22

Definition at line 140 of file coef.f90.

◆ g22_compr

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g22_compr

Definition at line 184 of file coef.f90.

◆ g22_compr_d

type(c_ptr) coefs::coef_t::g22_compr_d = C_NULL_PTR

Definition at line 263 of file coef.f90.

◆ g22_d

type(c_ptr) coefs::coef_t::g22_d = C_NULL_PTR

Definition at line 257 of file coef.f90.

◆ g23

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g23

Definition at line 148 of file coef.f90.

◆ g23_compr

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g23_compr

Definition at line 192 of file coef.f90.

◆ g23_compr_d

type(c_ptr) coefs::coef_t::g23_compr_d = C_NULL_PTR

Definition at line 267 of file coef.f90.

◆ g23_d

type(c_ptr) coefs::coef_t::g23_d = C_NULL_PTR

Definition at line 261 of file coef.f90.

◆ g33

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g33

Definition at line 142 of file coef.f90.

◆ g33_compr

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::g33_compr

Definition at line 186 of file coef.f90.

◆ g33_compr_d

type(c_ptr) coefs::coef_t::g33_compr_d = C_NULL_PTR

Definition at line 264 of file coef.f90.

◆ g33_d

type(c_ptr) coefs::coef_t::g33_d = C_NULL_PTR

Definition at line 258 of file coef.f90.

◆ geo_compression

logical coefs::coef_t::geo_compression = .false.

Definition at line 197 of file coef.f90.

◆ geo_compression_tol

real(kind=rp) coefs::coef_t::geo_compression_tol = 0.0_rp

Definition at line 200 of file coef.f90.

◆ gs_h

type(gs_t), pointer coefs::coef_t::gs_h => null()

Definition at line 250 of file coef.f90.

◆ h1

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::h1

Definition at line 217 of file coef.f90.

◆ h1_d

type(c_ptr) coefs::coef_t::h1_d = C_NULL_PTR

Definition at line 288 of file coef.f90.

◆ h2

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::h2

Definition at line 218 of file coef.f90.

◆ h2_d

type(c_ptr) coefs::coef_t::h2_d = C_NULL_PTR

Definition at line 289 of file coef.f90.

◆ ifh2

logical coefs::coef_t::ifh2

Definition at line 219 of file coef.f90.

◆ jac

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::jac

Definition at line 221 of file coef.f90.

◆ jac_d

type(c_ptr) coefs::coef_t::jac_d = C_NULL_PTR

Definition at line 290 of file coef.f90.

◆ jacinv

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::jacinv

Definition at line 222 of file coef.f90.

◆ jacinv_d

type(c_ptr) coefs::coef_t::jacinv_d = C_NULL_PTR

Definition at line 291 of file coef.f90.

◆ metric_cond

real(kind=rp) coefs::coef_t::metric_cond = 0.0_rp

Definition at line 153 of file coef.f90.

◆ metric_degenerate

integer coefs::coef_t::metric_degenerate = 0

Definition at line 163 of file coef.f90.

◆ metric_perturb

real(kind=rp) coefs::coef_t::metric_perturb = 0.0_rp

Definition at line 169 of file coef.f90.

◆ metric_scaled_cond

real(kind=rp) coefs::coef_t::metric_scaled_cond = 0.0_rp

Definition at line 160 of file coef.f90.

◆ metric_sp_safe

logical coefs::coef_t::metric_sp_safe = .false.

Definition at line 180 of file coef.f90.

◆ metrics_version

integer coefs::coef_t::metrics_version = 0

Definition at line 305 of file coef.f90.

◆ msh

type(mesh_t), pointer coefs::coef_t::msh => null()

Definition at line 248 of file coef.f90.

◆ mult

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::mult

Definition at line 202 of file coef.f90.

◆ mult_d

type(c_ptr) coefs::coef_t::mult_d = C_NULL_PTR

Definition at line 287 of file coef.f90.

◆ nx

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::nx

Definition at line 228 of file coef.f90.

◆ nx_d

type(c_ptr) coefs::coef_t::nx_d = C_NULL_PTR

Definition at line 297 of file coef.f90.

◆ ny

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::ny

Definition at line 229 of file coef.f90.

◆ ny_d

type(c_ptr) coefs::coef_t::ny_d = C_NULL_PTR

Definition at line 298 of file coef.f90.

◆ nz

real(kind=rp), dimension(:,:,:,:), allocatable coefs::coef_t::nz

Definition at line 230 of file coef.f90.

◆ nz_d

type(c_ptr) coefs::coef_t::nz_d = C_NULL_PTR

Definition at line 299 of file coef.f90.

◆ r11

real(kind=rp), dimension(:), allocatable coefs::coef_t::r11

Definition at line 233 of file coef.f90.

◆ r11_d

type(c_ptr) coefs::coef_t::r11_d = C_NULL_PTR

Definition at line 301 of file coef.f90.

◆ r12

real(kind=rp), dimension(:), allocatable coefs::coef_t::r12

Definition at line 234 of file coef.f90.

◆ r12_d

type(c_ptr) coefs::coef_t::r12_d = C_NULL_PTR

Definition at line 302 of file coef.f90.

◆ scope

integer coefs::coef_t::scope = COEF_FULL

Definition at line 241 of file coef.f90.

◆ volume

real(kind=rp) coefs::coef_t::volume = 0.0_rp

Definition at line 245 of file coef.f90.

◆ xh

type(space_t), pointer coefs::coef_t::xh => null()

Definition at line 247 of file coef.f90.


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