|
ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
Classes | |
| class | AuxiliaryInertTracer |
| struct | MappedFaceFluxRateTag |
| struct | IntegratedMappedFaceFluxTag |
| class | MappedFaceField |
| struct | ProjectionRule |
| struct | ProjectionValidation |
| class | AuxiliaryProjection |
| struct | ConstTimedFieldView |
| struct | MutableTimedFieldView |
| struct | HostCarrierFluxView |
| struct | AuxiliaryStageRecipe |
| struct | AuxiliaryStageContext |
| class | CompletedStepFluxLedger |
| struct | ComponentDescriptor |
| class | AuxiliaryStateLayout |
Typedefs | |
| using | MappedFaceFluxRate = MappedFaceField< MappedFaceFluxRateTag > |
| using | IntegratedMappedFaceFlux = MappedFaceField< IntegratedMappedFaceFluxTag > |
Enumerations | |
| enum class | ProjectionTargetKind { BulkCoupling , Vapor , Number , AttachedMaterial } |
| enum class | ProjectionSourceKind { AuxiliaryMass , AuxiliaryNumber , AttachedMaterial } |
| enum class | HostIntegrator { CompressibleRK3 , AnelasticHeun , AnelasticMidPoint } |
| enum class | LimiterTrialBase { Anchor , Input } |
| enum class | AuxiliaryFieldValidationPolicy { Global , AssumeValid } |
Functions | |
| bool | SameCellLayout (const amrex::MultiFab &lhs, const amrex::MultiFab &rhs) |
| bool | BuildMappedCellMeasure (amrex::MultiFab &omega, const amrex::MultiFab &detJ, const amrex::MultiFab &mx, const amrex::MultiFab &my, std::string &diagnostic) |
| bool | BuildMappedDryAirCarrierFluxRate (MappedFaceFluxRate &rate, const amrex::MultiFab &rho_u, const amrex::MultiFab &rho_v, const amrex::MultiFab &omega, const amrex::MultiFab &ax, const amrex::MultiFab &ay, const amrex::MultiFab &az, const amrex::MultiFab &mf_uy, const amrex::MultiFab &mf_vx, const amrex::MultiFab &mx, const amrex::MultiFab &my, std::string &diagnostic) |
| bool | CopyNativeMappedDryAirCarrierFluxRate (MappedFaceFluxRate &rate, const amrex::MultiFab &rho_u, const amrex::MultiFab &rho_v, const amrex::MultiFab &rho_w, std::string &diagnostic) |
| bool | ComputeMaxMappedOutgoingRate (const MappedFaceFluxRate &rate, const amrex::MultiFab &measure, const amrex::MultiFab &conserved, const int density_component, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dx_inv, amrex::Real &max_rate, std::string &diagnostic) |
| bool | FixedDtExceedsMappedDonorLimit (const double fixed_dt, const amrex::Real max_outgoing_rate, double &hard_limit) noexcept |
| bool | ValidatePositiveFiniteComponent (const amrex::MultiFab &field, const int component, std::string &diagnostic) |
| bool | ValidateFiniteComponent (const amrex::MultiFab &field, const int component, std::string &diagnostic) |
| amrex::Real | MaxFaceFieldDifference (const MappedFaceFluxRate &lhs, const int lhs_comp, const MappedFaceFluxRate &rhs, const int rhs_comp) |
| void | AccumulateIntegratedFaceFlux (IntegratedMappedFaceFlux &ledger, const MappedFaceFluxRate &rate, const amrex::Real weight) |
| template<typename Tag > | |
| bool | MappedFaceLayoutMatchesCellLayout (const MappedFaceField< Tag > &faces, const amrex::BoxArray &cell_ba, const amrex::DistributionMapping &dm) |
| template<typename Tag > | |
| bool | MappedFaceLayoutMatchesCellLayout (const MappedFaceField< Tag > &faces, const amrex::MultiFab &cell) |
| template<typename LhsTag , typename RhsTag > | |
| bool | SameMappedFaceLayout (const MappedFaceField< LhsTag > &lhs, const MappedFaceField< RhsTag > &rhs) |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | ComputationalMappedDivergence (const amrex::Real fx_hi, const amrex::Real fx_lo, const amrex::Real fy_hi, const amrex::Real fy_lo, const amrex::Real fz_hi, const amrex::Real fz_lo, const amrex::Real dx_inv, const amrex::Real dy_inv, const amrex::Real dzeta_inv) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | MappedOutgoingDemandRate (const amrex::Real fx_hi, const amrex::Real fx_lo, const amrex::Real fy_hi, const amrex::Real fy_lo, const amrex::Real fz_hi, const amrex::Real fz_lo, const amrex::Real measure, const amrex::Real density, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dx_inv) noexcept |
| template<typename Tag > | |
| void | ApplyMappedFluxTendency (const MappedFaceField< Tag > &flux, const int flux_comp, const amrex::MultiFab &omega, const int omega_comp, amrex::MultiFab &tendency, const int tendency_comp, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dx_inv) |
| const char * | HostIntegratorName (const HostIntegrator method) noexcept |
| bool | MakeAuxiliaryStageRecipe (const HostIntegrator method, const int stage, const double host_stage_interval, AuxiliaryStageRecipe &recipe, std::string &diagnostic) |
| bool | BuildAuxiliaryIntensiveState (const ConstTimedFieldView &state_input, const ConstTimedFieldView &rho_input, const double input_time, amrex::MultiFab &intensive, const AuxiliaryFieldValidationPolicy validation, std::string &diagnostic) |
| bool | AuxiliaryStageTargetIsDisjoint (const AuxiliaryStageContext &context) |
| void | ApplyAuxiliaryMappedStage (const AuxiliaryStageContext &context, const MappedFaceFluxRate &rate, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dx_inv, const int rate_component) |
| using erf_auxiliary::IntegratedMappedFaceFlux = typedef MappedFaceField<IntegratedMappedFaceFluxTag> |
| using erf_auxiliary::MappedFaceFluxRate = typedef MappedFaceField<MappedFaceFluxRateTag> |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
| void erf_auxiliary::AccumulateIntegratedFaceFlux | ( | IntegratedMappedFaceFlux & | ledger, |
| const MappedFaceFluxRate & | rate, | ||
| amrex::Real | weight | ||
| ) |
Scale every component and direction of a flux rate into an integrated ledger.

| void erf_auxiliary::ApplyAuxiliaryMappedStage | ( | const AuxiliaryStageContext & | context, |
| const MappedFaceFluxRate & | rate, | ||
| const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > & | dx_inv, | ||
| int | rate_component = 0 |
||
| ) |
Apply H_target = a H_anchor + b H_input - c D_xi(F_rate).
Referenced by erf_sbm::SBMTransport::advance_stage(), and erf_auxiliary::AuxiliaryInertTracer::advance_stage().


| void erf_auxiliary::ApplyMappedFluxTendency | ( | const MappedFaceField< Tag > & | flux, |
| const int | flux_comp, | ||
| const amrex::MultiFab & | omega, | ||
| const int | omega_comp, | ||
| amrex::MultiFab & | tendency, | ||
| const int | tendency_comp, | ||
| const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > & | dx_inv | ||
| ) |
Apply -D_xi(flux)/omega into one selected output component. The supplied face values are already in ERF's mapped coordinate convention.

| bool erf_auxiliary::AuxiliaryStageTargetIsDisjoint | ( | const AuxiliaryStageContext & | context | ) |
Whether the mutable stage target is a distinct MultiFab from both inputs.
Referenced by ApplyAuxiliaryMappedStage().

| bool erf_auxiliary::BuildAuxiliaryIntensiveState | ( | const ConstTimedFieldView & | state_input, |
| const ConstTimedFieldView & | rho_input, | ||
| double | input_time, | ||
| amrex::MultiFab & | intensive, | ||
| AuxiliaryFieldValidationPolicy | validation, | ||
| std::string & | diagnostic | ||
| ) |
Form z=U_input/rho_input from the explicit input-time views.
Referenced by erf_auxiliary::AuxiliaryInertTracer::advance_stage().


| bool erf_auxiliary::BuildMappedCellMeasure | ( | amrex::MultiFab & | omega, |
| const amrex::MultiFab & | detJ, | ||
| const amrex::MultiFab & | mx, | ||
| const amrex::MultiFab & | my, | ||
| std::string & | diagnostic | ||
| ) |
Build omega=detJ/(mx*my), returning false and a diagnostic on invalid cells.
Referenced by erf_auxiliary::AuxiliaryInertTracer::rebuild_static_measure(), and erf_sbm::SBMTransport::rebuild_static_measure().


| bool erf_auxiliary::BuildMappedDryAirCarrierFluxRate | ( | MappedFaceFluxRate & | rate, |
| const amrex::MultiFab & | rho_u, | ||
| const amrex::MultiFab & | rho_v, | ||
| const amrex::MultiFab & | omega, | ||
| const amrex::MultiFab & | ax, | ||
| const amrex::MultiFab & | ay, | ||
| const amrex::MultiFab & | az, | ||
| const amrex::MultiFab & | mf_uy, | ||
| const amrex::MultiFab & | mf_vx, | ||
| const amrex::MultiFab & | mx, | ||
| const amrex::MultiFab & | my, | ||
| std::string & | diagnostic | ||
| ) |
Build the production mapped dry-air face rates from face momentum and metrics.
Referenced by ERF::estTimeStep().


|
noexcept |
Computational-coordinate divergence only: no metric or physical face area.
Referenced by erf_sbm::SBMTransport::advance_stage(), erf_auxiliary::AuxiliaryInertTracer::advance_stage(), ApplyAuxiliaryMappedStage(), and ApplyMappedFluxTendency().

| bool erf_auxiliary::ComputeMaxMappedOutgoingRate | ( | const MappedFaceFluxRate & | rate, |
| const amrex::MultiFab & | measure, | ||
| const amrex::MultiFab & | conserved, | ||
| int | density_component, | ||
| const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > & | dx_inv, | ||
| amrex::Real & | max_rate, | ||
| std::string & | diagnostic | ||
| ) |
Reduce the largest mapped donor outgoing rate over a cell-centered domain.
Referenced by ERF::estTimeStep().


| bool erf_auxiliary::CopyNativeMappedDryAirCarrierFluxRate | ( | MappedFaceFluxRate & | rate, |
| const amrex::MultiFab & | rho_u, | ||
| const amrex::MultiFab & | rho_v, | ||
| const amrex::MultiFab & | rho_w, | ||
| std::string & | diagnostic | ||
| ) |
Copy face fields that are already in ERF's native mapped carrier convention.
Referenced by ERF::estTimeStep().


|
noexcept |
Test a fixed interval against the hard mapped donor-positivity bound.
Referenced by ERF::estTimeStep().

|
noexcept |
Referenced by erf_auxiliary::AuxiliaryInertTracer::advance_stage().

| bool erf_auxiliary::MakeAuxiliaryStageRecipe | ( | HostIntegrator | method, |
| int | stage, | ||
| double | host_stage_interval, | ||
| AuxiliaryStageRecipe & | recipe, | ||
| std::string & | diagnostic | ||
| ) |
Return the explicit ERF recurrence recipe for one supported host stage.
Referenced by erf_sbm::SBMTransport::advance_stage(), and erf_auxiliary::AuxiliaryInertTracer::advance_stage().

| bool erf_auxiliary::MappedFaceLayoutMatchesCellLayout | ( | const MappedFaceField< Tag > & | faces, |
| const amrex::BoxArray & | cell_ba, | ||
| const amrex::DistributionMapping & | dm | ||
| ) |
Check directional face staggering and ownership against a cell layout.
Referenced by ApplyAuxiliaryMappedStage(), ApplyMappedFluxTendency(), ComputeMaxMappedOutgoingRate(), and MappedFaceLayoutMatchesCellLayout().


| bool erf_auxiliary::MappedFaceLayoutMatchesCellLayout | ( | const MappedFaceField< Tag > & | faces, |
| const amrex::MultiFab & | cell | ||
| ) |

|
noexcept |
Outgoing donor rate for one cell in mapped coordinates.
Referenced by erf_sbm::SBMTransport::advance_stage(), and ComputeMaxMappedOutgoingRate().

| amrex::Real erf_auxiliary::MaxFaceFieldDifference | ( | const MappedFaceFluxRate & | lhs, |
| int | lhs_comp, | ||
| const MappedFaceFluxRate & | rhs, | ||
| int | rhs_comp | ||
| ) |
Return the max absolute difference between two component-selected face fields.
Referenced by erf_auxiliary::AuxiliaryInertTracer::advance_stage().


| bool erf_auxiliary::SameCellLayout | ( | const amrex::MultiFab & | lhs, |
| const amrex::MultiFab & | rhs | ||
| ) |
Exact cell-centered BoxArray and DistributionMapping identity.
Referenced by erf_sbm::SBMTransport::advance_stage(), ApplyAuxiliaryMappedStage(), ApplyMappedFluxTendency(), BuildAuxiliaryIntensiveState(), BuildMappedCellMeasure(), ComputeMaxMappedOutgoingRate(), erf_sbm::ProlongCarrierRelativeSpectrum(), and erf_sbm::RestrictMappedSpectrum().

| bool erf_auxiliary::SameMappedFaceLayout | ( | const MappedFaceField< LhsTag > & | lhs, |
| const MappedFaceField< RhsTag > & | rhs | ||
| ) |
Check that two semantically tagged face fields have identical face layouts.
Referenced by erf_auxiliary::CompletedStepFluxLedger::accept_stage(), erf_auxiliary::CompletedStepFluxLedger::accumulate_stage_component(), AccumulateIntegratedFaceFlux(), and MaxFaceFieldDifference().


| bool erf_auxiliary::ValidateFiniteComponent | ( | const amrex::MultiFab & | field, |
| int | component, | ||
| std::string & | diagnostic | ||
| ) |
Check that a selected cell-centered component is finite.
Referenced by erf_auxiliary::AuxiliaryInertTracer::advance_stage(), BuildAuxiliaryIntensiveState(), and erf_auxiliary::AuxiliaryInertTracer::initialize().


| bool erf_auxiliary::ValidatePositiveFiniteComponent | ( | const amrex::MultiFab & | field, |
| int | component, | ||
| std::string & | diagnostic | ||
| ) |
Check that a selected cell-centered component is finite and strictly positive.
Referenced by erf_sbm::SBMTransport::advance_stage(), erf_auxiliary::AuxiliaryInertTracer::advance_stage(), BuildAuxiliaryIntensiveState(), ComputeMaxMappedOutgoingRate(), and erf_auxiliary::AuxiliaryInertTracer::initialize().

