|
ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include <ERF_SatAdj.H>


Public Member Functions | |
| SatAdj () | |
| virtual | ~SatAdj ()=default |
| void | AdvanceSatAdj (const SolverChoice &) |
| void | Define (SolverChoice &sc) override |
| void | Init (const amrex::MultiFab &cons_in, const amrex::BoxArray &, const amrex::Geometry &geom, const amrex::Real &dt_advance, std::unique_ptr< amrex::MultiFab > &, std::unique_ptr< amrex::MultiFab > &) override |
| void | Copy_State_to_Micro (const amrex::MultiFab &cons_in) override |
| void | Update_Micro_Vars (amrex::MultiFab &cons_in, const amrex::MultiFab *base_state) override |
| void | Copy_Micro_to_State (amrex::MultiFab &cons_in) override |
| void | Update_Micro_Vars (amrex::MultiFab &cons_in) override |
| void | Update_State_Vars (amrex::MultiFab &cons_in, const amrex::MultiFab &) override |
| void | Advance (const amrex::Real &dt_advance, const SolverChoice &solverChoice) override |
| amrex::MultiFab * | Qmoist_Ptr (const int &varIdx) override |
| int | Qmoist_Size () override |
| int | Qstate_Moist_Size () override |
| int | Qstate_Moist_NumConc_Size () override |
| void | Qmoist_Restart_Vars (const SolverChoice &, std::vector< int > &a_idx, std::vector< std::string > &a_names) const override |
Public Member Functions inherited from NullMoist | |
| NullMoist () | |
| virtual | ~NullMoist ()=default |
| virtual int | Qstate_NonMoist_Size () |
| virtual void | GetPlotVarNames (amrex::Vector< std::string > &a_vec) const |
| virtual void | GetPlotVar (const std::string &, amrex::MultiFab &) const |
| virtual void | GetPlotVar (const std::string &a_name, amrex::MultiFab &a_mf, const int) const |
| virtual void | SetCurrentLevel (const int &) |
| virtual void | InitLevel (const int, const amrex::MultiFab &) |
| virtual int | getDiagnosticsInterval () const |
| virtual void | Set_dzmin (const amrex::Real) |
| virtual SurfacePrecipAccumulationSources | Get_Surface_Precip_Accumulation_Ptrs (const int &) const |
| virtual void | Set_RealWidth (const int) |
Static Public Member Functions | |
| AMREX_GPU_HOST_DEVICE static AMREX_FORCE_INLINE amrex::Real | NewtonSolveSatTemperature (const amrex::Real fac_cond, const amrex::Real tabs_old, const amrex::Real pres_mbar, const amrex::Real qv_old, amrex::Real &qsat) |
| AMREX_GPU_HOST_DEVICE static AMREX_FORCE_INLINE void | AdjustSatAdjCell (const amrex::Real fac_cond, const amrex::Real rdOcp, amrex::Real &tabs, const amrex::Real pres_mbar, amrex::Real &theta, amrex::Real &qv, amrex::Real &qc) |
Private Types | |
| using | FabPtr = std::shared_ptr< amrex::MultiFab > |
Private Attributes | |
| int | m_qmoist_size = 0 |
| int | n_qstate_moist_size = 2 |
| int | n_qstate_moist_numconc_size = 0 |
| amrex::Geometry | m_geom |
| amrex::Real | dt |
| amrex::Real | m_fac_cond |
| amrex::Real | m_rdOcp |
| bool | m_do_cond |
| amrex::Array< FabPtr, MicVar_SatAdj::NumVars > | mic_fab_vars |
|
private |
|
virtualdefault |
|
inlinestatic |

|
inlineoverridevirtual |
| void SatAdj::AdvanceSatAdj | ( | const SolverChoice & | ) |
AdvanceSatAdj is a local valid-cell update over MFIter tileboxes. It uses pressure diagnosed in Copy_State_to_Micro and holds that pressure fixed inside each cell adjustment. There are no stencils, face fluxes, or ghost-cell reads in this kernel.
Referenced by Advance().


|
overridevirtual |
Copies SatAdj's adjusted specific variables back into ERF's conserved state. The copied rho is used only to reconstruct rhoTheta, rhoQv, and rhoQc. Density itself is intentionally not written back because SatAdj does not own or modify rho.
| [out] | cons | Conserved variables |
Reimplemented from NullMoist.
Referenced by Update_State_Vars().


|
overridevirtual |
Copies conserved ERF state into SatAdj's internal specific variables. rho is copied but not modified by SatAdj. theta, qv, and qc are formed by dividing conserved densities by rho. tabs and pressure are diagnosed from the same conserved state snapshot. pressure is converted from Pa to mbar/hPa for saturation helper calls.
| [in] | cons_in | Conserved variables input |
Reimplemented from NullMoist.
Referenced by Update_Micro_Vars().

|
inlineoverridevirtual |
Reimplemented from NullMoist.

|
overridevirtual |
Initializes the Microphysics module.
| [in] | cons_in | Conserved variables input |
| [in] | qc_in | Cloud variables input |
| [in,out] | qv_in | Vapor variables input |
| [in] | qi_in | Ice variables input |
| [in] | grids | The boxes on which we will evolve the solution |
| [in] | geom | Geometry associated with these MultiFabs and grids |
| [in] | dt_advance | Timestep for the advance |
Reimplemented from NullMoist.
|
inlinestatic |
Referenced by AdjustSatAdjCell().


|
inlineoverridevirtual |
Reimplemented from NullMoist.

|
inlineoverridevirtual |
Reimplemented from NullMoist.
|
inlineoverridevirtual |
Reimplemented from NullMoist.
|
inlineoverridevirtual |
Reimplemented from NullMoist.
|
inlineoverridevirtual |
Reimplemented from NullMoist.
|
inlineoverridevirtual |
Reimplemented from NullMoist.

|
overridevirtual |
Reimplemented from NullMoist.
|
inlineoverridevirtual |
Reimplemented from NullMoist.

|
private |
Referenced by Advance().
|
private |
Referenced by Define(), Update_Micro_Vars(), and Update_State_Vars().
|
private |
Referenced by Define().
|
private |
|
private |
Referenced by Qmoist_Ptr(), and Qmoist_Size().
|
private |
Referenced by Define().
|
private |
|
private |
Referenced by Qstate_Moist_NumConc_Size().
|
private |
Referenced by Qstate_Moist_Size().