| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | N | = | 0 | Polynomial degree of the interpolant the indicator is built for. |
|
| real(kind=prec), | public, | pointer, contiguous, dimension(:,:) | :: | Pmodal | => | null() | Nodal-to-modal transform. Pmodal(ii,p) is the (p,ii) entry of the inverse Legendre Vandermonde in the L2-normalized basis, so the 1-D modal coefficients are uhat(p) = sum_ii Pmodal(ii,p) * u(ii) (first index summed, SELF matrix convention). |
| character(len=3), | public | :: | backend | = | "cpu" | ||
| real(kind=prec), | public | :: | coarsenThreshold | = | 0.0_prec | Elements with sigma_e below this value are flagged SELF_AMR_COARSEN. |
|
| real(kind=prec), | public | :: | energyScale | = | 0.0_prec | Squared field scale the relative floor is measured against, in the units of the gate energy. Meaningful only when energyScaleIsSet is true; otherwise the scale is recomputed from the current field on every Estimate. |
|
| logical, | public | :: | energyScaleIsSet | = | .false. | Whether energyScale was pinned by SetEnergyScale (true) or is computed automatically as the largest gate energy over the elements (false, the default). |
|
| real(kind=prec), | public, | pointer, contiguous, dimension(:) | :: | energyWeight | => | null() | Non-negative weights w_v of the gate energy g_e = sum_v w_v E_tot,e,v, indexed by solution variable. Resolved lazily, because the variable count is a property of the solution field and is not known at Init. |
| logical, | public | :: | energyWeightsSet | = | .false. | Whether energyWeight was supplied by SetEnergyWeights (true) or is regenerated from the driving-variable index on every Estimate (false, the default). |
|
| integer, | public, | pointer, contiguous, dimension(:) | :: | flag | => | null() | Per-element refinement flag: SELF_AMR_REFINE / SELF_AMR_KEEP / SELF_AMR_COARSEN. |
| real(kind=prec), | public, | pointer, contiguous, dimension(:) | :: | gate | => | null() | Per-element gate energy g_e from the most recent Estimate. Retained as a diagnostic: it is the quantity the amplitude gate actually compared against the effective floor. |
| real(kind=prec), | public, | pointer, contiguous, dimension(:) | :: | indicator | => | null() | Per-element indicator value sigma_e = log10(S_e). |
| integer, | public | :: | nElem | = | 0 | Number of (rank-local) elements the indicator arrays are sized for. |
|
| integer, | public | :: | nVarWeights | = | 0 | Allocated length of energyWeight (the solution variable count it was resolved for). |
|
| real(kind=prec), | public | :: | refineThreshold | = | 0.0_prec | Elements with sigma_e above this value are flagged SELF_AMR_REFINE. |
|
| real(kind=prec), | public | :: | relativeEnergyFloor | = | SELF_AMR_DEFAULT_RELFLOOR | Elements whose gate energy is at or below relativeEnergyFloorenergyScale are treated as quiescent (hence perfectly resolved) regardless of their modal shape. Energy goes as amplitude squared, so this is 10*(dB/10) in amplitude terms: 1e-8 gates amplitudes below 1e-4 (-80 dB) of the field scale. Set to 0 to recover the pure absolute (machine-epsilon) floor. |
|
| real(kind=prec), | public | :: | significantEnergyFloor | = | SELF_AMR_DEFAULT_RELFLOOR | Upper edge of the hysteresis band on the energy axis. Elements between relativeEnergyFloor and this fraction of the energy scale are flagged SELF_AMR_KEEP whatever their spectrum: too weak to justify spending levels on, too strong to declare resolved. Equal to relativeEnergyFloor by default, which collapses the band to a single hard cut. See SetRelativeEnergyFloor. |
| procedure, public :: ClearEnergyScale => ClearEnergyScale_RefinementIndicator3D_t | |
| procedure, public :: CountFlagged => CountFlagged_RefinementIndicator3D_t | |
| procedure, public :: Estimate => Estimate_RefinementIndicator3D_t | |
| procedure, public :: Free => Free_RefinementIndicator3D_t | |
| procedure, public :: Init => Init_RefinementIndicator3D_t | |
| procedure, public :: SetEnergyScale => SetEnergyScale_RefinementIndicator3D_t | |
| procedure, public :: SetEnergyWeights => SetEnergyWeights_RefinementIndicator3D_t | |
| procedure, public :: SetRelativeEnergyFloor => SetRelativeEnergyFloor_RefinementIndicator3D_t | |
| procedure, public :: SetThresholds => SetThresholds_RefinementIndicator3D_t | |
| procedure, public :: UpdateDevice => UpdateDevice_RefinementIndicator3D_t | |
| procedure, public :: UpdateHost => UpdateHost_RefinementIndicator3D_t |