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


Classes | |
| struct | Plot3DScratch |
Public Member Functions | |
| ERF () | |
| ~ERF () override | |
| void | ERF_shared () |
| ERF (ERF &&) noexcept=delete | |
| ERF & | operator= (ERF &&other) noexcept=delete |
| ERF (const ERF &other)=delete | |
| ERF & | operator= (const ERF &other)=delete |
| void | Evolve () |
| double | EvolveOneStep (double time, double dt_request) |
| void | ConfigureDriverAtmosToOceanCoupling (bool use_coupling_driver, bool use_two_way_coupling, bool use_state_contract) |
| void | SetDriverAtmosToOceanStateContract (bool use_state_contract) |
| void | GetOceanToAtmosSurfaceLayout (amrex::BoxArray &ba, amrex::DistributionMapping &dm) |
| void | GetOceanToAtmosCellCenterLonLat (const amrex::MultiFab *&lon_cc, const amrex::MultiFab *&lat_cc) const |
| void | GetLandMask (const amrex::iMultiFab *&lmask) const |
| bool | HasRadiation () const |
| bool | HasCloudWater () const |
| void | GetFillableAtmosToOceanLanes (bool state_contract, amrex::Vector< int > &can_fill) const |
| void | PackAtmosphericStates (amrex::Vector< amrex::MultiFab * > &states, double time, const amrex::Vector< const amrex::MultiFab * > &weight_mf, const amrex::Vector< const amrex::iMultiFab * > &index_mf, int max_stencil_size, const amrex::MultiFab *dst_mskr=nullptr, const amrex::MultiFab *dst_msku=nullptr, const amrex::MultiFab *dst_mskv=nullptr) |
| void | ApplyOceanSurfaceState (const amrex::Vector< amrex::MultiFab * > &state, double time, const amrex::iMultiFab *erf_coverage=nullptr) |
| void | ErrorEst (int lev, amrex::TagBoxArray &tags, amrex::Real time, int ngrow) override |
| void | read_box_for_refinement (std::string &ref_prefix, int &lev_for_box, amrex::RealBox &real_box) |
| void | update_box_for_refinement (std::string &ref_prefix, int &lev_for_box, amrex::RealBox &real_box, const double time) |
| void | HurricaneTracker (int lev, double time, const amrex::MultiFab &cc_vel, const amrex::Real velmag_threshold, amrex::TagBoxArray *tags=nullptr) |
| bool | FindInitialEye (int lev, const amrex::MultiFab &cc_vel, const amrex::Real velmag_threshold, amrex::Real &eye_x, amrex::Real &eye_y) |
| std::string | MakeVTKFilename (int nstep) |
| std::string | MakeVTKFilename_TrackerCircle (int nstep) |
| std::string | MakeVTKFilename_EyeTracker_xy (int nstep) |
| std::string | MakeFilename_EyeTracker_latlon (int nstep) |
| std::string | MakeFilename_EyeTracker_maxvel (int nstep) |
| std::string | MakeFilename_EyeTracker_minpressure (int nstep) |
| void | WriteVTKPolyline (const std::string &filename, amrex::Vector< std::array< amrex::Real, 2 >> &points_xy) |
| void | WriteLinePlot (const std::string &filename, amrex::Vector< std::array< amrex::Real, 2 >> &points_xy) |
| void | HurricaneEyeTracker (const SolverChoice &solverChoice) |
| void | HurricaneEyeTrackerInitial (const SolverChoice &sc, const amrex::Geometry &geom, const amrex::Vector< amrex::MultiFab > &S_data, const amrex::Real &hurricane_eye_latitude, const amrex::Real &hurricane_eye_longitude) |
| void | HurricaneEyeTrackerNotInitial (const SolverChoice &sc, const amrex::Geometry &geom, const amrex::Vector< amrex::MultiFab > &S_data, MoistureType moisture_type) |
| void | ComputeGlobalMinLocation (const SolverChoice &sc, const amrex::Geometry &geom, const amrex::Vector< amrex::MultiFab > &S_data, amrex::Real *d_val_min_ptr, int *d_i_min_ptr, int *d_j_min_ptr, amrex::Real &global_val_min, int &global_i_min, int &global_j_min) |
| void | HurricaneMaxVelTracker (const amrex::Geometry &geom, const amrex::MultiFab &mf_cc_vel, const double &time) |
| void | HurricaneMinPressureTracker (MoistureType moisture_type, const amrex::Geometry &geom, const amrex::MultiFab &mf_cons_var, const double &time) |
| void | HurricaneTrackerCircle () |
| void | ReadStormTrackerRestart () |
| void | InitData () |
| void | InitData_pre () |
| void | InitData_post () |
| void | Interp2DArrays (int lev, const amrex::BoxArray &my_ba2d, const amrex::DistributionMapping &my_dm) |
| void | interp_mapfac_from_coarse (int lev) |
| void | interp_psfc_from_coarse (int lev) |
| void | interp_land_masks_from_coarse (int lev) |
| bool | has_own_init_file (int lev) const |
| void | WriteMyEBSurface () |
| void | compute_divergence (int lev, amrex::MultiFab &rhs, amrex::Array< amrex::MultiFab const *, AMREX_SPACEDIM > rho0_u_const, amrex::MultiFab const &mf_mx, amrex::MultiFab const &mf_my, amrex::MultiFab const &mf_vx, amrex::MultiFab const &mf_uy, amrex::MultiFab const &ax_in, amrex::MultiFab const &ay_in, amrex::MultiFab const &dJ_in, amrex::Geometry const &geom_at_lev) |
| void | project_initial_velocity (int lev, double time, double dt) |
| void | project_momenta (int lev, double l_time, double l_dt, amrex::Vector< amrex::MultiFab > &vars) |
| void | project_velocity_tb (int lev, double dt, amrex::Vector< amrex::MultiFab > &vars) |
| void | poisson_wall_dist (int lev) |
| void | make_subdomains (const amrex::BoxList &ba, amrex::Vector< amrex::BoxArray > &bins) |
| Group a list of boxes into subdomains based on adjacency. More... | |
| void | solve_with_gmres (int lev, const amrex::Box &subdomain, amrex::MultiFab &rhs, amrex::MultiFab &p, amrex::Array< amrex::MultiFab, AMREX_SPACEDIM > &fluxes, amrex::MultiFab &ax_sub, amrex::MultiFab &ay_sub, amrex::MultiFab &az_sub, amrex::MultiFab &, amrex::MultiFab &znd_sub) |
| void | ImposeBCsOnPhi (int lev, amrex::MultiFab &phi, const amrex::Box &subdomain) |
| void | init_only (int lev, double time) |
| void | restart () |
| void | check_state_for_nans (amrex::MultiFab const &S) |
| void | check_vels_for_nans (amrex::MultiFab const &xvel, amrex::MultiFab const &yvel, amrex::MultiFab const &zvel) |
| void | check_for_negative_theta (amrex::MultiFab &S) |
| void | check_for_low_temp (amrex::MultiFab &S) |
| void | compute_max_pressure_gradient_diagnostic (int lev) |
| void | compute_max_buoyancy_gradp_diagnostic (int lev) |
| void | check_mesh_type (int lev) |
| bool | writeNow (double cur_time, const int nstep, const int plot_int, const double plot_per, const double dt_0, double &last_file_time) |
| void | post_timestep (int nstep, double time, double dt_lev) |
| void | WriteAtIntermediateTime (int nstep, double time) |
| void | WriteAtFinalTime () |
| void | sum_integrated_quantities (double time) |
| void | sum_derived_quantities (double time) |
| void | sum_energy_quantities (double time) |
| void | write_1D_profiles (double time) |
| void | write_1D_profiles_stag (double time) |
| amrex::Real | cloud_fraction (double time) |
| void | FillBdyCCVels (amrex::MultiFab &mf_cc_vel, amrex::Geometry &lev_geom) |
| void | sample_points (int lev, double time, amrex::IntVect cell, amrex::MultiFab &mf) |
| void | sample_lines (int lev, double time, amrex::IntVect cell, amrex::MultiFab &mf) |
| void | derive_diag_profiles (double time, amrex::Gpu::HostVector< amrex::Real > &h_avg_u, amrex::Gpu::HostVector< amrex::Real > &h_avg_v, amrex::Gpu::HostVector< amrex::Real > &h_avg_w, amrex::Gpu::HostVector< amrex::Real > &h_avg_rho, amrex::Gpu::HostVector< amrex::Real > &h_avg_th, amrex::Gpu::HostVector< amrex::Real > &h_avg_ksgs, amrex::Gpu::HostVector< amrex::Real > &h_avg_Kmv, amrex::Gpu::HostVector< amrex::Real > &h_avg_Khv, amrex::Gpu::HostVector< amrex::Real > &h_avg_qv, amrex::Gpu::HostVector< amrex::Real > &h_avg_qc, amrex::Gpu::HostVector< amrex::Real > &h_avg_qr, amrex::Gpu::HostVector< amrex::Real > &h_avg_wqv, amrex::Gpu::HostVector< amrex::Real > &h_avg_wqc, amrex::Gpu::HostVector< amrex::Real > &h_avg_wqr, amrex::Gpu::HostVector< amrex::Real > &h_avg_qi, amrex::Gpu::HostVector< amrex::Real > &h_avg_qs, amrex::Gpu::HostVector< amrex::Real > &h_avg_qg, amrex::Gpu::HostVector< amrex::Real > &h_avg_uu, amrex::Gpu::HostVector< amrex::Real > &h_avg_uv, amrex::Gpu::HostVector< amrex::Real > &h_avg_uw, amrex::Gpu::HostVector< amrex::Real > &h_avg_vv, amrex::Gpu::HostVector< amrex::Real > &h_avg_vw, amrex::Gpu::HostVector< amrex::Real > &h_avg_ww, amrex::Gpu::HostVector< amrex::Real > &h_avg_uth, amrex::Gpu::HostVector< amrex::Real > &h_avg_vth, amrex::Gpu::HostVector< amrex::Real > &h_avg_wth, amrex::Gpu::HostVector< amrex::Real > &h_avg_thth, amrex::Gpu::HostVector< amrex::Real > &h_avg_ku, amrex::Gpu::HostVector< amrex::Real > &h_avg_kv, amrex::Gpu::HostVector< amrex::Real > &h_avg_kw, amrex::Gpu::HostVector< amrex::Real > &h_avg_p, amrex::Gpu::HostVector< amrex::Real > &h_avg_pu, amrex::Gpu::HostVector< amrex::Real > &h_avg_pv, amrex::Gpu::HostVector< amrex::Real > &h_avg_pw, amrex::Gpu::HostVector< amrex::Real > &h_avg_wthv) |
| void | derive_diag_profiles_stag (double time, amrex::Gpu::HostVector< amrex::Real > &h_avg_u, amrex::Gpu::HostVector< amrex::Real > &h_avg_v, amrex::Gpu::HostVector< amrex::Real > &h_avg_w, amrex::Gpu::HostVector< amrex::Real > &h_avg_rho, amrex::Gpu::HostVector< amrex::Real > &h_avg_th, amrex::Gpu::HostVector< amrex::Real > &h_avg_ksgs, amrex::Gpu::HostVector< amrex::Real > &h_avg_Kmv, amrex::Gpu::HostVector< amrex::Real > &h_avg_Khv, amrex::Gpu::HostVector< amrex::Real > &h_avg_qv, amrex::Gpu::HostVector< amrex::Real > &h_avg_qc, amrex::Gpu::HostVector< amrex::Real > &h_avg_qr, amrex::Gpu::HostVector< amrex::Real > &h_avg_wqv, amrex::Gpu::HostVector< amrex::Real > &h_avg_wqc, amrex::Gpu::HostVector< amrex::Real > &h_avg_wqr, amrex::Gpu::HostVector< amrex::Real > &h_avg_qi, amrex::Gpu::HostVector< amrex::Real > &h_avg_qs, amrex::Gpu::HostVector< amrex::Real > &h_avg_qg, amrex::Gpu::HostVector< amrex::Real > &h_avg_uu, amrex::Gpu::HostVector< amrex::Real > &h_avg_uv, amrex::Gpu::HostVector< amrex::Real > &h_avg_uw, amrex::Gpu::HostVector< amrex::Real > &h_avg_vv, amrex::Gpu::HostVector< amrex::Real > &h_avg_vw, amrex::Gpu::HostVector< amrex::Real > &h_avg_ww, amrex::Gpu::HostVector< amrex::Real > &h_avg_uth, amrex::Gpu::HostVector< amrex::Real > &h_avg_vth, amrex::Gpu::HostVector< amrex::Real > &h_avg_wth, amrex::Gpu::HostVector< amrex::Real > &h_avg_thth, amrex::Gpu::HostVector< amrex::Real > &h_avg_ku, amrex::Gpu::HostVector< amrex::Real > &h_avg_kv, amrex::Gpu::HostVector< amrex::Real > &h_avg_kw, amrex::Gpu::HostVector< amrex::Real > &h_avg_p, amrex::Gpu::HostVector< amrex::Real > &h_avg_pu, amrex::Gpu::HostVector< amrex::Real > &h_avg_pv, amrex::Gpu::HostVector< amrex::Real > &h_avg_pw, amrex::Gpu::HostVector< amrex::Real > &h_avg_wthv) |
| void | derive_stress_profiles (amrex::Gpu::HostVector< amrex::Real > &h_avg_tau11, amrex::Gpu::HostVector< amrex::Real > &h_avg_tau12, amrex::Gpu::HostVector< amrex::Real > &h_avg_tau13, amrex::Gpu::HostVector< amrex::Real > &h_avg_tau22, amrex::Gpu::HostVector< amrex::Real > &h_avg_tau23, amrex::Gpu::HostVector< amrex::Real > &h_avg_tau33, amrex::Gpu::HostVector< amrex::Real > &h_avg_hfx3, amrex::Gpu::HostVector< amrex::Real > &h_avg_q1fx3, amrex::Gpu::HostVector< amrex::Real > &h_avg_q2fx3, amrex::Gpu::HostVector< amrex::Real > &h_avg_diss) |
| void | derive_stress_profiles_stag (amrex::Gpu::HostVector< amrex::Real > &h_avg_tau11, amrex::Gpu::HostVector< amrex::Real > &h_avg_tau12, amrex::Gpu::HostVector< amrex::Real > &h_avg_tau13, amrex::Gpu::HostVector< amrex::Real > &h_avg_tau22, amrex::Gpu::HostVector< amrex::Real > &h_avg_tau23, amrex::Gpu::HostVector< amrex::Real > &h_avg_tau33, amrex::Gpu::HostVector< amrex::Real > &h_avg_hfx3, amrex::Gpu::HostVector< amrex::Real > &h_avg_q1fx3, amrex::Gpu::HostVector< amrex::Real > &h_avg_q2fx3, amrex::Gpu::HostVector< amrex::Real > &h_avg_diss) |
| void | derive_forcing_profiles_stag (amrex::Gpu::HostVector< amrex::Real > &h_avg_ttend, amrex::Gpu::HostVector< amrex::Real > &h_avg_qtend, amrex::Gpu::HostVector< amrex::Real > &h_avg_wsub, amrex::Gpu::HostVector< amrex::Real > &h_avg_thtend, amrex::Gpu::HostVector< amrex::Real > &h_avg_qhtend, amrex::Gpu::HostVector< amrex::Real > &h_avg_tvtend, amrex::Gpu::HostVector< amrex::Real > &h_avg_qvtend, amrex::Gpu::HostVector< amrex::Real > &h_avg_qcvtend, amrex::Gpu::HostVector< amrex::Real > &h_avg_tnudge, amrex::Gpu::HostVector< amrex::Real > &h_avg_qnudge, amrex::Gpu::HostVector< amrex::Real > &h_avg_unudge, amrex::Gpu::HostVector< amrex::Real > &h_avg_vnudge) |
| amrex::Real | volWgtSumMF (int lev, const amrex::MultiFab &mf, int comp, const amrex::MultiFab &dJ, const amrex::MultiFab &mfx, const amrex::MultiFab &mfy, bool finemask, bool local=true) |
| void | volWgtColumnSum (int lev, const amrex::MultiFab &mf, int comp, amrex::MultiFab &mf_2d, const amrex::MultiFab &dJ) |
| void | MakeNewLevelFromCoarse (int lev, amrex::Real time, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) override |
| void | RemakeLevel (int lev, amrex::Real time, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) override |
| void | ClearLevel (int lev) override |
| void | MakeNewLevelFromScratch (int lev, amrex::Real time, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) override |
| double | estTimeStep (int lev, long &dt_fast_ratio) const |
| void | advance_dycore (int level, amrex::Vector< amrex::MultiFab > &state_old, amrex::Vector< amrex::MultiFab > &state_new, amrex::MultiFab &xvel_old, amrex::MultiFab &yvel_old, amrex::MultiFab &zvel_old, amrex::MultiFab &xvel_new, amrex::MultiFab &yvel_new, amrex::MultiFab &zvel_new, amrex::MultiFab &source, amrex::MultiFab &xmom_src, amrex::MultiFab &ymom_src, amrex::MultiFab &zmom_src, amrex::MultiFab &buoyancy, amrex::Geometry fine_geom, double dt, double time) |
| void | advance_microphysics (int lev, amrex::MultiFab &cons_in, const double &dt_advance, const int &iteration, const double &time) |
| void | advance_lsm (int lev, amrex::MultiFab &cons_in, amrex::MultiFab &xvel_in, amrex::MultiFab &yvel_in, const double &time, const double &dt_advance) |
| void | advance_radiation (int lev, amrex::MultiFab &cons_in, const double &dt_advance) |
| Advance radiation diagnostics and heating rates for one time step. More... | |
| void | compute_native_shoc_tendencies (int lev, amrex::MultiFab *cons, amrex::MultiFab *xvel, amrex::MultiFab *yvel, amrex::MultiFab *zvel, amrex::Real *w_subsid, amrex::MultiFab *tau13, amrex::MultiFab *tau23, amrex::MultiFab *hfx3, amrex::MultiFab *qfx3, amrex::MultiFab *eddyDiffs, amrex::MultiFab *z_phys_nd, const double &dt_advance) |
| void | build_fine_mask (int lev, amrex::MultiFab &fine_mask) |
| void | MakeHorizontalAverages () |
| void | MakeDiagnosticAverage (amrex::Vector< amrex::Real > &h_havg, amrex::MultiFab &S, int n) |
| void | derive_upwp (amrex::Vector< amrex::Real > &h_havg) |
| bool | Write3DPlotFile (int which, PlotFileType plotfile_type, amrex::Vector< std::string > plot_var_names) |
| void | Write2DPlotFile (int which, PlotFileType plotfile_type, amrex::Vector< std::string > plot_var_names) |
| void | ResetIntervalMeansAfter3DPlotfileBatch (int plotfiles_written, bool interval_diagnostic_consumed) |
| void | ResetIntervalMeans () |
| void | WriteSubvolume (int isub, amrex::Vector< std::string > subvol_var_names) |
| void | WriteMultiLevelPlotfileWithTerrain (const std::string &plotfilename, int nlevels, const amrex::Vector< const amrex::MultiFab * > &mf, const amrex::Vector< const amrex::MultiFab * > &mf_nd, const amrex::Vector< std::string > &varnames, const amrex::Vector< amrex::Geometry > &my_geom, double time, const amrex::Vector< int > &level_steps, const amrex::Vector< amrex::IntVect > &my_ref_ratio, const std::string &versionName="HyperCLaw-V1.1", const std::string &levelPrefix="Level_", const std::string &mfPrefix="Cell", const amrex::Vector< std::string > &extra_dirs=amrex::Vector< std::string >()) const |
| void | WriteGenericPlotfileHeaderWithTerrain (std::ostream &HeaderFile, int nlevels, const amrex::Vector< amrex::BoxArray > &bArray, const amrex::Vector< std::string > &varnames, const amrex::Vector< amrex::Geometry > &my_geom, double time, const amrex::Vector< int > &level_steps, const amrex::Vector< amrex::IntVect > &my_ref_ratio, const std::string &versionName, const std::string &levelPrefix, const std::string &mfPrefix) const |
| void | FillPlot2DVars (int lev, const amrex::Vector< std::string > &plot_var_names, const amrex::Vector< std::string > &varnames, const amrex::Vector< plotfile2d::Plotfile2DOutputDescriptor > &output_descriptors, amrex::MultiFab &mf_dst, int ncomp_mf) |
| void | FillPlot3DVars (int lev, const amrex::Vector< std::string > &plot_var_names, Plot3DScratch &scratch, amrex::MultiFab &mf_dst, int ncomp_mf, amrex::Real tnew) |
| void | BuildPlot3DScratch (const amrex::Vector< std::string > &plot_var_names, Plot3DScratch &scratch, int max_lev=-1, bool sync_solution=true) |
| void | init_stations () |
| void | resolve_station_positions () |
| void | resolve_station_stencils () |
| void | sample_stations (amrex::Real time) |
| void | flush_stations () const |
| void | erf_enforce_hse (int lev, amrex::MultiFab &dens, amrex::MultiFab &pres, amrex::MultiFab &pi, amrex::MultiFab &th, amrex::MultiFab &qv, std::unique_ptr< amrex::MultiFab > &z_cc) |
| void | init_from_input_sounding (int lev) |
| void | init_immersed_forcing (int lev) |
| void | init_ibseb () |
| void | ibseb_write_checkpoint (const std::string &checkpointname, int lev) const |
| void | ibseb_report (int nstep, amrex::Real time) |
| amrex::Real | ibseb_bulk_richardson_height (int lev, const amrex::MultiFab &cons, const amrex::MultiFab &xvel, const amrex::MultiFab &yvel) |
| void | ibseb_advance (int lev, amrex::Real time, amrex::Real dt_lev, const amrex::MultiFab &cons, const amrex::MultiFab &xvel, const amrex::MultiFab &yvel, const amrex::MultiFab &zvel) |
| void | input_sponge (int lev) |
| void | init_from_hse (int lev) |
| void | init_thin_body (int lev, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) |
| void | FillForecastStateMultiFabs (const int lev, const std::string &filename, const std::unique_ptr< amrex::MultiFab > &z_phys_nd, amrex::Vector< amrex::Vector< amrex::MultiFab >> &forecast_state) |
| void | FillSurfaceStateMultiFabs (const int lev, const std::string &filename, amrex::Vector< amrex::MultiFab > &surface_state) |
| void | WeatherDataInterpolation (const int nlevs, const double time, amrex::Vector< std::unique_ptr< amrex::MultiFab >> &z_phys_nd, bool regrid_forces_file_read) |
| void | SurfaceDataInterpolation (const int nlevs, const double time, amrex::Vector< std::unique_ptr< amrex::MultiFab >> &z_phys_nd, bool regrid_forces_file_read) |
| void | create_background_state_for_ensemble (int lev, amrex::MultiFab &mf_cc_pert, amrex::MultiFab &cons_pert, amrex::MultiFab &xvel_pert, amrex::MultiFab &yvel_pert, amrex::MultiFab &zvel_pert) |
| void | create_random_perturbations (const int lev, amrex::MultiFab &mf_cc_pert) |
| void | apply_gaussian_smoothing_to_perturbations (const int lev, amrex::MultiFab &mf_cc_pert) |
| void | ComputeAndWriteEnsemblePerturbations (const int da_iter) |
| void | PerformDataAssimilation (int da_iter) |
| void | SetDirsForPlotfilesAndCheckpointsForDA (const int da_iter, const int ens_no) |
| void | GetEnsembleCheckpointName (int da_iter, int ens_no) |
| void | init_custom (int lev) |
| void | fill_from_bndryregs (const amrex::Vector< amrex::MultiFab * > &mfs, double time) |
| void | MakeEBGeometry () |
| void | make_eb_box () |
| void | make_eb_regular () |
| void | AverageDownTo (int crse_lev, int scomp, int ncomp, bool do_perturbational_and_momenta=true) |
| void | AverageDownMoistStateTo (int crse_lev) |
| Conservation-preserving fine-to-coarse average of RhoTheta and the active moist conserved components using detJ/mfac weighting, reusing AverageDownTo with perturbational-state and momentum handling disabled. More... | |
| void | WriteCheckpointFile () const |
| void | ReadCheckpointFile () |
| void | ReadVelsOnlyFromCheckpointFile (int lev_to_fill, std::string &chkfile) |
| void | ReadCheckpointFileSurfaceLayer () |
| void | fill_terrain_surface (int lev, amrex::MultiFab &z_phys, double elapsed_time) |
| void | init_zphys (int lev, double elapsed_time) |
| void | remake_zphys (int lev, amrex::Real time, std::unique_ptr< amrex::MultiFab > &temp_zphys_nd) |
| void | update_terrain_arrays (int lev) |
| void | writeJobInfo (const std::string &dir, erf_provenance::ArtifactType artifact_type, int artifact_step, double artifact_time_seconds) const |
Static Public Member Functions | |
| static bool | is_it_time_for_action (int nstep, double time, double dt, int action_interval, double action_per) |
| static void | writeBuildInfo (std::ostream &os) |
| static void | print_banner (MPI_Comm, std::ostream &) |
| static void | print_usage (MPI_Comm, std::ostream &) |
| static void | print_error (MPI_Comm, const std::string &msg) |
| static void | print_summary (std::ostream &) |
| static void | print_tpls (std::ostream &) |
Public Attributes | |
| amrex::Vector< std::array< amrex::Real, 2 > > | hurricane_track_xy |
| amrex::Vector< std::array< amrex::Real, 2 > > | hurricane_eye_track_xy |
| amrex::Vector< std::array< amrex::Real, 2 > > | hurricane_eye_track_latlon |
| amrex::Vector< std::array< amrex::Real, 2 > > | hurricane_maxvel_vs_time |
| amrex::Vector< std::array< amrex::Real, 2 > > | hurricane_minpressure_vs_time |
| amrex::Vector< std::array< amrex::Real, 2 > > | hurricane_tracker_circle |
| amrex::Vector< amrex::MultiFab > | weather_forecast_data_1 |
| amrex::Vector< amrex::MultiFab > | weather_forecast_data_2 |
| amrex::Vector< amrex::Vector< amrex::MultiFab > > | forecast_state_1 |
| amrex::Vector< amrex::Vector< amrex::MultiFab > > | forecast_state_2 |
| amrex::Vector< amrex::Vector< amrex::MultiFab > > | forecast_state_interp |
| amrex::Vector< amrex::MultiFab > | surface_state_1 |
| amrex::Vector< amrex::MultiFab > | surface_state_2 |
| amrex::Vector< amrex::MultiFab > | surface_state_interp |
| amrex::Vector< amrex::Vector< amrex::MultiFab > > | bckgnd_state |
| std::string | pp_prefix {"erf"} |
| std::set< std::string > | user_specified_inputs |
| bool | m_driver_has_atm2ocn_coupling = false |
| bool | m_driver_uses_two_way_coupling = false |
| bool | m_driver_atm2ocn_uses_state_contract = true |
| std::unique_ptr< amrex::MultiFab > | m_coupled_sst |
| std::unique_ptr< amrex::iMultiFab > | m_coupled_sst_valid |
| bool | m_warned_coupled_sst_declined = false |
Private Member Functions | |
| void | ReadParameters () |
| void | ParameterSanityChecks () |
| bool | has_surface_layer_inputs (const std::string &prefix) const |
| void | AverageDown () |
| void | update_diffusive_arrays (int lev, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) |
| void | Construct_ERFFillPatchers (int lev) |
| void | Define_ERFFillPatchers (int lev) |
| void | init1DArrays () |
| void | init_bcs () |
| void | init_phys_bcs (bool &read_prim_theta) |
| void | init_stuff (int lev, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm, amrex::Vector< amrex::MultiFab > &lev_new, amrex::Vector< amrex::MultiFab > &lev_old, amrex::MultiFab &tmp_base_state, std::unique_ptr< amrex::MultiFab > &tmp_zphys_nd) |
| void | turbPert_update (const int lev, const double dt) |
| void | turbPert_amplitude (const int lev) |
| void | turbPert_amplitude_w (const int lev) |
| void | initialize_integrator (int lev, amrex::MultiFab &cons_mf, amrex::MultiFab &vel_mf) |
| void | make_physbcs (int lev) |
| void | make_lsm_at_level (int lev, bool from_regrid[[maybe_unused]]=false) |
| void | initializeMicrophysics (const int &) |
| void | initializeEB () |
| void | FillPatchCrseLevel (int lev, double time, const amrex::Vector< amrex::MultiFab * > &mfs_vel, bool cons_only=false) |
| void | FillPatchFineLevel (int lev, double time, const amrex::Vector< amrex::MultiFab * > &mfs_vel, const amrex::Vector< amrex::MultiFab * > &mfs_mom, const amrex::MultiFab &old_base_state, const amrex::MultiFab &new_base_state, bool fillset=true, bool cons_only=false) |
| void | FillIntermediatePatch (int lev, double time, const amrex::Vector< amrex::MultiFab * > &mfs_vel, const amrex::Vector< amrex::MultiFab * > &mfs_mom, int ng_cons, int ng_vel, bool cons_only, int icomp_cons, int ncomp_cons) |
| void | FillCoarsePatch (int lev, double time) |
| void | timeStep (int lev, double time, int iteration) |
| void | Advance (int lev, double time, double dt_lev, int iteration, int ncycle) |
| void | initHSE () |
| Initialize HSE. More... | |
| void | initHSE (int lev) |
| void | interp_base_state_from_coarse (int lev) |
| void | initRayleigh_at_level (const int &lev) |
| Initialize Rayleigh damping profiles at a level. More... | |
| void | initSponge () |
| Initialize sponge profiles. More... | |
| void | setRayleighRefFromSounding (bool restarting) |
| Set Rayleigh mean profiles from input sounding. More... | |
| void | setSpongeRefFromSounding (bool restarting) |
| Set sponge mean profiles from input sounding. More... | |
| void | ComputeDt (int step=-1, double cur_time_d=0.0) |
| std::string | PlotFileName (int lev) const |
| void | setPlotVariables (const std::string &pp_plot_var_names, amrex::Vector< std::string > &plot_var_names) |
| void | canonicalizePlot3DVariables (amrex::Vector< std::string > &plot_var_names) |
| void | appendPlot3DVariables (const amrex::Vector< std::string > &plot_var_names, amrex::Vector< std::string > &a_plot_var_names) |
| void | setPlotVariables2D (const std::string &pp_plot_var_names, amrex::Vector< std::string > &plot_var_names) |
| void | appendPlotVariables (const std::string &pp_plot_var_names, amrex::Vector< std::string > &plot_var_names) |
| void | setSubVolVariables (const std::string &pp_subvol_var_names, amrex::Vector< std::string > &subvol_var_names) |
| void | init_Dirichlet_bc_data (const std::string input_file) |
| void | InitializeFromFile () |
| void | InitializeLevelFromData (int lev, const amrex::MultiFab &initial_data) |
| void | post_update (amrex::MultiFab &state_mf, double time, const amrex::Geometry &geom) |
| void | fill_rhs (amrex::MultiFab &rhs_mf, const amrex::MultiFab &state_mf, double time, const amrex::Geometry &geom) |
| void | define_column_kextent (int lev, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) |
| void | init_geo_wind_profile (const std::string input_file, amrex::Vector< amrex::Real > &u_geos, amrex::Gpu::DeviceVector< amrex::Real > &u_geos_d, amrex::Vector< amrex::Real > &v_geos, amrex::Gpu::DeviceVector< amrex::Real > &v_geos_d, const amrex::Geometry &lgeom, const amrex::Vector< amrex::Real > &zlev_stag) |
| void | refinement_criteria_setup () |
| AMREX_FORCE_INLINE amrex::YAFluxRegister * | getAdvFluxReg (int lev) |
| AMREX_FORCE_INLINE std::ostream & | DataLog (int i) |
| AMREX_FORCE_INLINE std::ostream & | DerDataLog (int i) |
| AMREX_FORCE_INLINE int | NumDataLogs () noexcept |
| AMREX_FORCE_INLINE int | NumDerDataLogs () noexcept |
| AMREX_FORCE_INLINE std::ostream & | SamplePointLog (int i) |
| AMREX_FORCE_INLINE int | NumSamplePointLogs () noexcept |
| AMREX_FORCE_INLINE std::ostream & | SampleLineLog (int i) |
| AMREX_FORCE_INLINE int | NumSampleLineLogs () noexcept |
| amrex::IntVect & | SamplePoint (int i) |
| AMREX_FORCE_INLINE int | NumSamplePoints () noexcept |
| amrex::IntVect & | SampleLine (int i) |
| AMREX_FORCE_INLINE int | NumSampleLines () noexcept |
| void | setRecordDataInfo (int i, const std::string &filename) |
| void | setRecordDerDataInfo (int i, const std::string &filename) |
| void | setRecordEnergyDataInfo (int i, const std::string &filename) |
| void | setRecordSamplePointInfo (int i, int lev, amrex::IntVect &cell, const std::string &filename) |
| void | setRecordSampleLineInfo (int i, int lev, amrex::IntVect &cell, const std::string &filename) |
| std::string | DataLogName (int i) const noexcept |
| The filename of the ith datalog file. More... | |
| std::string | DerDataLogName (int i) const noexcept |
| std::string | SamplePointLogName (int i) const noexcept |
| The filename of the ith sampleptlog file. More... | |
| std::string | SampleLineLogName (int i) const noexcept |
| The filename of the ith samplelinelog file. More... | |
| eb_ const & | get_eb (int lev) const noexcept |
| amrex::EBFArrayBoxFactory const & | EBFactory (int lev) const noexcept |
Static Private Member Functions | |
| static amrex::Vector< std::string > | PlotFileVarNames (amrex::Vector< std::string > plot_var_names) |
| static void | GotoNextLine (std::istream &is) |
| static bool | grids_are_split_in_z (const amrex::BoxArray &ba) |
| static AMREX_FORCE_INLINE int | ComputeGhostCells (const SolverChoice &sc) |
| static double | getCPUTime () |
| static int | nghost_eb_basic () |
| static int | nghost_eb_volume () |
| static int | nghost_eb_full () |
Private Attributes | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | lat_m |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | lon_m |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | sinPhi_m |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | cosPhi_m |
| InputSoundingData | input_sounding_data |
| InputSpongeData | input_sponge_data |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | xvel_bc_data |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | yvel_bc_data |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | zvel_bc_data |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | th_bc_data |
| amrex::Vector< amrex::TableData< amrex::Real, 1 > > | r_plane_avg |
| amrex::Vector< amrex::TableData< amrex::Real, 1 > > | t_plane_avg |
| std::unique_ptr< ProblemBase > | prob = nullptr |
| amrex::Vector< int > | num_boxes_at_level |
| amrex::Vector< int > | num_files_at_level |
| amrex::Vector< amrex::Vector< amrex::Box > > | boxes_at_level |
| amrex::Vector< int > | istep |
| amrex::Vector< int > | nsubsteps |
| amrex::Vector< int > | rad_interp_from_coarse_pending |
| amrex::Vector< double > | t_new |
| amrex::Vector< double > | t_old |
| amrex::Vector< double > | dt |
| amrex::Vector< long > | dt_mri_ratio |
| amrex::Vector< amrex::Vector< amrex::MultiFab > > | vars_new |
| amrex::Vector< amrex::Vector< amrex::MultiFab > > | vars_old |
| amrex::Vector< amrex::Vector< amrex::MultiFab > > | gradp |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vel_t_avg |
| amrex::Vector< double > | t_avg_cnt |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | interval_means |
| amrex::Vector< double > | t_mean_cnt |
| int | mean_vars_time_reset_done {0} |
| amrex::Vector< std::unique_ptr< MRISplitIntegrator< amrex::Vector< amrex::MultiFab > > > > | mri_integrator_mem |
| amrex::Vector< amrex::MultiFab > | pp_inc |
| amrex::Vector< amrex::MultiFab > | lagged_delta_rt |
| amrex::Vector< amrex::MultiFab > | avg_xmom |
| amrex::Vector< amrex::MultiFab > | avg_ymom |
| amrex::Vector< amrex::MultiFab > | avg_zmom |
| amrex::Vector< std::unique_ptr< ERFPhysBCFunct_cons > > | physbcs_cons |
| amrex::Vector< std::unique_ptr< ERFPhysBCFunct_u > > | physbcs_u |
| amrex::Vector< std::unique_ptr< ERFPhysBCFunct_v > > | physbcs_v |
| amrex::Vector< std::unique_ptr< ERFPhysBCFunct_w > > | physbcs_w |
| amrex::Vector< std::unique_ptr< ERFPhysBCFunct_base > > | physbcs_base |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | Theta_prim |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | Qv_prim |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | Qr_prim |
| amrex::Vector< amrex::MultiFab > | rU_old |
| amrex::Vector< amrex::MultiFab > | rU_new |
| amrex::Vector< amrex::MultiFab > | rV_old |
| amrex::Vector< amrex::MultiFab > | rV_new |
| amrex::Vector< amrex::MultiFab > | rW_old |
| amrex::Vector< amrex::MultiFab > | rW_new |
| amrex::Vector< amrex::MultiFab > | zmom_crse_rhs |
| std::unique_ptr< Microphysics > | micro |
| std::unique_ptr< CloudChamberBudget > | cloud_chamber_budget |
| erf_cloud_chamber::Config | cloud_chamber_config |
| amrex::Vector< amrex::Vector< amrex::MultiFab * > > | qmoist |
| LandSurface | lsm |
| amrex::Vector< std::string > | lsm_data_name |
| amrex::Vector< amrex::Vector< amrex::MultiFab * > > | lsm_data |
| amrex::Vector< std::string > | lsm_flux_name |
| amrex::Vector< amrex::Vector< amrex::MultiFab * > > | lsm_flux |
| LargeScaleForcingData | lsf |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | nudge_data |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | lsf_data |
| amrex::Vector< std::unique_ptr< IRadiation > > | rad |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | qheating_rates |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | rad_fluxes |
| TwoStreamRadiation | two_stream_rad |
| amrex::Vector< std::unique_ptr< ShocDriver > > | native_shoc_driver |
| bool | plot_rad = false |
| int | rad_datalog_int = -1 |
| int | cf_width {0} |
| int | cf_set_width {0} |
| amrex::Vector< ERFFillPatcher > | FPr_c |
| amrex::Vector< ERFFillPatcher > | FPr_u |
| amrex::Vector< ERFFillPatcher > | FPr_v |
| amrex::Vector< ERFFillPatcher > | FPr_w |
| amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > | Tau |
| amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > | Tau_corr |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | eddyDiffs_lev |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | SmnSmn_lev |
| amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > | sst_lev |
| amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > | tsk_lev |
| amrex::Vector< amrex::Vector< std::unique_ptr< amrex::iMultiFab > > > | lmask_lev |
| amrex::Vector< amrex::Vector< std::unique_ptr< amrex::iMultiFab > > > | land_type_lev |
| amrex::Vector< amrex::Vector< std::unique_ptr< amrex::iMultiFab > > > | soil_type_lev |
| amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > | urb_frac_lev |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | SFS_hfx1_lev |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | SFS_hfx2_lev |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | SFS_hfx3_lev |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | SFS_diss_lev |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | SFS_q1fx1_lev |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | SFS_q1fx2_lev |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | SFS_q1fx3_lev |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | SFS_q2fx3_lev |
| amrex::Vector< amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > > | Tau_EB |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | hfx3_EB |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | qfx3_EB |
| amrex::Vector< amrex::Vector< amrex::Real > > | zlevels_stag |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | z_phys_nd |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | z_phys_cc |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | detJ_cc |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | ax |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | ay |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | az |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | z_phys_nd_src |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | z_phys_cc_src |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | detJ_cc_src |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | ax_src |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | ay_src |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | az_src |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | z_phys_nd_new |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | detJ_cc_new |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | z_t_rk |
| IBSEBParams | ibseb_params |
| amrex::Vector< std::unique_ptr< IBFaceSet > > | m_ibseb |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | terrain_blanking |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | terrain_blanking_xface |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | terrain_blanking_yface |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | terrain_blanking_zface |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | walldist |
| amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > | mapfac |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | fine_mask |
| amrex::Vector< amrex::Vector< amrex::Real > > | stretched_dz_h |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | stretched_dz_d |
| amrex::Vector< amrex::MultiFab > | base_state |
| amrex::Vector< amrex::MultiFab > | base_state_new |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | Hwave |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | Lwave |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | Hwave_onegrid |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | Lwave_onegrid |
| bool | finished_wave = false |
| amrex::Vector< amrex::YAFluxRegister * > | advflux_reg |
| amrex::Vector< amrex::BCRec > | domain_bcs_type |
| amrex::Gpu::DeviceVector< amrex::BCRec > | domain_bcs_type_d |
| amrex::Array< std::string, 2 *AMREX_SPACEDIM > | domain_bc_type |
| amrex::Array< amrex::Array< amrex::Real, AMREX_SPACEDIM *2 >, AMREX_SPACEDIM+NBCVAR_max > | m_bc_extdir_vals |
| amrex::Array< amrex::Array< amrex::Real, AMREX_SPACEDIM *2 >, AMREX_SPACEDIM+NBCVAR_max > | m_bc_neumann_vals |
| amrex::Array< amrex::Array< erf_wall_scalar_bc::WallScalarBCIntent, AMREX_SPACEDIM *2 >, NBCVAR_max > | m_wall_scalar_bc_intent {} |
| amrex::Array< bool, AMREX_SPACEDIM *2 > | m_bc_nonreflecting = {{false}} |
| amrex::GpuArray< ERF_BC, AMREX_SPACEDIM *2 > | phys_bc_type |
| amrex::Vector< std::unique_ptr< amrex::iMultiFab > > | xflux_imask |
| amrex::Vector< std::unique_ptr< amrex::iMultiFab > > | yflux_imask |
| amrex::Vector< std::unique_ptr< amrex::iMultiFab > > | zflux_imask |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | thin_xforce |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | thin_yforce |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | thin_zforce |
| amrex::Vector< int > | last_subvol_step |
| amrex::Vector< double > | last_subvol_time |
| const int | datwidth = 14 |
| const int | datprecision = 6 |
| const int | timeprecision = 13 |
| int | max_step = -1 |
| bool | use_datetime = false |
| const std::string | datetime_format = "%Y-%m-%d %H:%M:%S" |
| std::string | restart_chkfile = "" |
| erf_provenance::ExecutionProvenance | execution_provenance |
| amrex::Vector< double > | fixed_dt |
| amrex::Vector< double > | fixed_fast_dt |
| int | regrid_int = -1 |
| bool | regrid_level_0_on_restart = false |
| std::string | plot3d_file_1 {"plt_1_"} |
| std::string | plot3d_file_2 {"plt_2_"} |
| std::string | plot2d_file_1 {"plt2d_1_"} |
| std::string | plot2d_file_2 {"plt2d_2_"} |
| std::string | subvol_file {"subvol"} |
| bool | m_expand_plotvars_to_unif_rr = false |
| int | m_plot3d_int_1 = -1 |
| int | m_plot3d_int_2 = -1 |
| int | m_plot2d_int_1 = -1 |
| int | m_plot2d_int_2 = -1 |
| amrex::Vector< int > | m_subvol_int |
| amrex::Vector< double > | m_subvol_per |
| double | m_plot3d_per_1 = -1.0 |
| double | m_plot3d_per_2 = -1.0 |
| double | m_plot2d_per_1 = -1.0 |
| double | m_plot2d_per_2 = -1.0 |
| bool | m_plot_face_vels = false |
| bool | m_plot_face_terrain_blanking = false |
| bool | plot_lsm = false |
| int | profile_int = -1 |
| bool | destag_profiles = true |
| std::string | check_file {"chk"} |
| int | m_check_int = -1 |
| double | m_check_per = -1.0 |
| amrex::Vector< std::string > | subvol3d_var_names |
| amrex::Vector< std::string > | plot3d_var_names_1 |
| amrex::Vector< std::string > | plot3d_var_names_2 |
| amrex::Vector< std::string > | plot2d_var_names_1 |
| amrex::Vector< std::string > | plot2d_var_names_2 |
| const amrex::Vector< std::string > | cons_names |
| const amrex::Vector< std::string > | derived_names |
| const amrex::Vector< std::string > | derived_subvol_names |
| TurbulentPerturbation | turbPert |
| int | file_name_digits = 5 |
| bool | use_real_time_in_pltname = false |
| int | real_width {0} |
| bool | real_extrap_w {true} |
| bool | metgrid_debug_quiescent {false} |
| bool | metgrid_debug_isothermal {false} |
| bool | metgrid_debug_dry {false} |
| bool | metgrid_debug_psfc {false} |
| bool | metgrid_debug_msf {false} |
| bool | metgrid_interp_theta {false} |
| bool | metgrid_basic_linear {false} |
| bool | metgrid_use_below_sfc {true} |
| bool | metgrid_use_sfc {true} |
| bool | metgrid_retain_sfc {false} |
| amrex::Real | metgrid_proximity {amrex::Real(500.0)} |
| int | metgrid_order {2} |
| int | metgrid_force_sfc_k {6} |
| bool | write_erfbdy {false} |
| bool | use_erfbdy {false} |
| std::string | erfbdy_file {"erfbdy"} |
| int | nvars_erfbdy {0} |
| amrex::Vector< amrex::BoxArray > | ba1d |
| amrex::Vector< amrex::BoxArray > | ba2d |
| amrex::Vector< std::unique_ptr< amrex::iMultiFab > > | column_kextent |
| BaseStateParams | wrf_bsp |
| std::unique_ptr< amrex::MultiFab > | wrf_C1H |
| std::unique_ptr< amrex::MultiFab > | wrf_C2H |
| std::unique_ptr< amrex::MultiFab > | wrf_MUB |
| std::unique_ptr< amrex::MultiFab > | wrf_RDNW |
| std::unique_ptr< amrex::MultiFab > | wrf_PHB |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | mf_PSFC |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | rhotheta_src |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | rhoqt_src |
| amrex::Vector< amrex::Vector< amrex::Real > > | h_w_subsid |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | d_w_subsid |
| amrex::Vector< amrex::Vector< amrex::Real > > | h_u_geos |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | d_u_geos |
| amrex::Vector< amrex::Vector< amrex::Real > > | h_v_geos |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | d_v_geos |
| amrex::Vector< amrex::Vector< amrex::Vector< amrex::Real > > > | h_rayleigh_ptrs |
| amrex::Vector< amrex::Vector< amrex::Vector< amrex::Real > > > | h_sponge_ptrs |
| amrex::Vector< amrex::Vector< amrex::Real > > | h_sinesq_ptrs |
| amrex::Vector< amrex::Vector< amrex::Real > > | h_sinesq_stag_ptrs |
| amrex::Vector< amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > > | d_rayleigh_ptrs |
| amrex::Vector< amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > > | d_sponge_ptrs |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | d_sinesq_ptrs |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | d_sinesq_stag_ptrs |
| amrex::Vector< amrex::Real > | h_havg_density |
| amrex::Vector< amrex::Real > | h_havg_temperature |
| amrex::Vector< amrex::Real > | h_havg_pressure |
| amrex::Vector< amrex::Real > | h_havg_qv |
| amrex::Vector< amrex::Real > | h_havg_qc |
| amrex::Gpu::DeviceVector< amrex::Real > | d_havg_density |
| amrex::Gpu::DeviceVector< amrex::Real > | d_havg_temperature |
| amrex::Gpu::DeviceVector< amrex::Real > | d_havg_pressure |
| amrex::Gpu::DeviceVector< amrex::Real > | d_havg_qv |
| amrex::Gpu::DeviceVector< amrex::Real > | d_havg_qc |
| std::unique_ptr< WriteBndryPlanes > | m_w2d = nullptr |
| std::unique_ptr< ReadBndryPlanes > | m_r2d = nullptr |
| amrex::Vector< std::unique_ptr< SurfaceLayer > > | m_SurfaceLayer |
| amrex::Vector< std::unique_ptr< ForestDrag > > | m_forest_drag |
| amrex::Vector< amrex::Vector< amrex::BoxArray > > | subdomains |
| amrex::Vector< amrex::Real > | dz_min |
| int | line_sampling_interval = -1 |
| int | plane_sampling_interval = -1 |
| amrex::Real | line_sampling_per = -one |
| amrex::Real | plane_sampling_per = -one |
| std::unique_ptr< LineSampler > | line_sampler = nullptr |
| std::unique_ptr< PlaneSampler > | plane_sampler = nullptr |
| int | station_sampling_interval = -1 |
| amrex::Real | station_sampling_per = -one |
| std::unique_ptr< StationSampler > | station_sampler = nullptr |
| amrex::Vector< std::string > | station_vars_3d |
| amrex::Vector< std::string > | station_vars_2d |
| amrex::Vector< std::unique_ptr< std::fstream > > | datalog |
| amrex::Vector< std::unique_ptr< std::fstream > > | der_datalog |
| amrex::Vector< std::unique_ptr< std::fstream > > | tot_e_datalog |
| amrex::Vector< std::string > | datalogname |
| amrex::Vector< std::string > | der_datalogname |
| amrex::Vector< std::string > | tot_e_datalogname |
| amrex::Vector< std::unique_ptr< std::fstream > > | sampleptlog |
| amrex::Vector< std::string > | sampleptlogname |
| amrex::Vector< amrex::IntVect > | samplepoint |
| amrex::Vector< std::unique_ptr< std::fstream > > | samplelinelog |
| amrex::Vector< std::string > | samplelinelogname |
| amrex::Vector< amrex::IntVect > | sampleline |
| amrex::Vector< std::unique_ptr< eb_ > > | eb |
Static Private Attributes | |
| static int | last_plot3d_file_step_1 = -1 |
| static int | last_plot3d_file_step_2 = -1 |
| static int | last_plot2d_file_step_1 = -1 |
| static int | last_plot2d_file_step_2 = -1 |
| static int | last_check_file_step = -1 |
| static double | last_plot3d_file_time_1 = 0.0 |
| static double | last_plot3d_file_time_2 = 0.0 |
| static double | last_plot2d_file_time_1 = 0.0 |
| static double | last_plot2d_file_time_2 = 0.0 |
| static double | last_check_file_time = 0.0 |
| static bool | plot_file_on_restart = true |
| static double | start_time = 0.0 |
| static double | stop_time = std::numeric_limits<double>::max() |
| static amrex::Real | cfl = Real(0.8) |
| static amrex::Real | sub_cfl = one |
| static amrex::Real | init_shrink = one |
| static amrex::Real | change_max = Real(1.1) |
| static double | dt_max_initial = static_cast<double>(bogus_large_value) |
| static double | dt_max = 1.0e9 |
| static int | fixed_mri_dt_ratio = 0 |
| static SolverChoice | solverChoice |
| static int | verbose = 0 |
| static int | mg_verbose = 0 |
| static bool | use_fft = false |
| static int | check_for_nans = 0 |
| static int | sum_interval = -1 |
| static int | pert_interval = -1 |
| static double | sum_per = -1.0 |
| static PlotFileType | plotfile3d_type_1 = PlotFileType::None |
| static PlotFileType | plotfile3d_type_2 = PlotFileType::None |
| static PlotFileType | plotfile2d_type_1 = PlotFileType::None |
| static PlotFileType | plotfile2d_type_2 = PlotFileType::None |
| static StateInterpType | interpolation_type |
| static amrex::Vector< amrex::Vector< std::string > > | nc_init_file = {{""}} |
| static amrex::Vector< amrex::Vector< int > > | have_read_nc_init_file = {{0}} |
| static std::string | nc_bdy_file |
| static std::string | nc_low_file |
| static constexpr int | column_kextent_lo_sentinel = std::numeric_limits<int>::min()/2 |
| static constexpr int | column_kextent_hi_sentinel = std::numeric_limits<int>::max()/2 |
| static int | output_1d_column = 0 |
| static int | column_interval = -1 |
| static double | column_per = -1.0 |
| static amrex::Real | column_loc_x = zero |
| static amrex::Real | column_loc_y = zero |
| static std::string | column_file_name = "column_data.nc" |
| static int | output_bndry_planes = 0 |
| static int | bndry_output_planes_interval = -1 |
| static double | bndry_output_planes_per = -1.0 |
| static double | bndry_output_planes_start_time = 0.0 |
| static int | input_bndry_planes = 0 |
| static int | ng_dens_hse |
| static int | ng_pres_hse |
| static amrex::Vector< amrex::AMRErrorTag > | ref_tags |
| static amrex::Vector< std::string > | ref_tag_indicator_names |
| static double | startCPUTime = 0.0 |
| static double | previousCPUTimeUsed = 0.0 |
| ERF::ERF | ( | ) |
|
overridedefault |
|
deletenoexcept |
|
delete |
|
private |
Function that advances the solution at one level for a single time step – this does some preliminaries then calls erf_advance
| [in] | lev | level of refinement (coarsest level is 0) |
| [in] | time | start time for time advance |
| [in] | dt_lev | time step for this time advance |

| void ERF::advance_dycore | ( | int | level, |
| amrex::Vector< amrex::MultiFab > & | state_old, | ||
| amrex::Vector< amrex::MultiFab > & | state_new, | ||
| amrex::MultiFab & | xvel_old, | ||
| amrex::MultiFab & | yvel_old, | ||
| amrex::MultiFab & | zvel_old, | ||
| amrex::MultiFab & | xvel_new, | ||
| amrex::MultiFab & | yvel_new, | ||
| amrex::MultiFab & | zvel_new, | ||
| amrex::MultiFab & | source, | ||
| amrex::MultiFab & | xmom_src, | ||
| amrex::MultiFab & | ymom_src, | ||
| amrex::MultiFab & | zmom_src, | ||
| amrex::MultiFab & | buoyancy, | ||
| amrex::Geometry | fine_geom, | ||
| double | dt, | ||
| double | time | ||
| ) |
Function that advances the solution at one level for a single time step – this sets up the multirate time integrator and calls the integrator's advance function
| [in] | level | level of refinement (coarsest level is 0) |
| [in] | state_old | old-time conserved variables |
| [in] | state_new | new-time conserved variables |
| [in] | xvel_old | old-time x-component of velocity |
| [in] | yvel_old | old-time y-component of velocity |
| [in] | zvel_old | old-time z-component of velocity |
| [in] | xvel_new | new-time x-component of velocity |
| [in] | yvel_new | new-time y-component of velocity |
| [in] | zvel_new | new-time z-component of velocity |
| [in] | cc_src | source term for conserved variables |
| [in] | xmom_src | source term for x-momenta |
| [in] | ymom_src | source term for y-momenta |
| [in] | zmom_src | source term for z-momenta |
| [in] | fine_geom | container for geometry information at current level |
| [in] | dt_advance | time step for this time advance |
| [in] | old_time | old time for this time advance |

| void ERF::advance_lsm | ( | int | lev, |
| amrex::MultiFab & | cons_in, | ||
| amrex::MultiFab & | xvel_in, | ||
| amrex::MultiFab & | yvel_in, | ||
| const double & | time, | ||
| const double & | dt_advance | ||
| ) |

| void ERF::advance_microphysics | ( | int | lev, |
| amrex::MultiFab & | cons_in, | ||
| const double & | dt_advance, | ||
| const int & | iteration, | ||
| const double & | time | ||
| ) |

| void ERF::advance_radiation | ( | int | lev, |
| amrex::MultiFab & | cons_in, | ||
| const double & | dt_advance | ||
| ) |
Advance radiation diagnostics and heating rates for one time step.
Temporal semantics
This function is called exactly once per ERF::Advance() invocation, after the SurfaceLayer and LSM updates and before the dycore slow and fast substeps. It operates on the old state (t^n) at the beginning of the slow step.
Source-term application
The computed qheating_rates are injected into the RhoTheta source term in ERF_MakeSources.cpp only while the slow RHS is being built (is_slow_step is true), which ensures:
Key contracts
| [in] | lev | Level of refinement (coarsest level is 0) |
| [in,out] | cons | Conservative quantities (Rho, RhoTheta, RhoQ*, RhoRE) |
| [in] | dt_advance | Time step for this slow-step stage [seconds] |

|
private |
|
private |

| void ERF::apply_gaussian_smoothing_to_perturbations | ( | const int | lev, |
| amrex::MultiFab & | mf_cc_pert | ||
| ) |
Apply 3D isotropic/anisotropic Gaussian smoothing to cell-centered perturbations.
| lev | Integer specifying the current level |
| mf_cc_pert | MultiFab containing perturbations to smooth in place |

| void ERF::ApplyOceanSurfaceState | ( | const amrex::Vector< amrex::MultiFab * > & | state, |
| double | time, | ||
| const amrex::iMultiFab * | erf_coverage = nullptr |
||
| ) |

|
private |

| void ERF::AverageDownMoistStateTo | ( | int | crse_lev | ) |
Conservation-preserving fine-to-coarse average of RhoTheta and the active moist conserved components using detJ/mfac weighting, reusing AverageDownTo with perturbational-state and momentum handling disabled.

| void ERF::AverageDownTo | ( | int | crse_lev, |
| int | scomp, | ||
| int | ncomp, | ||
| bool | do_perturbational_and_momenta = true |
||
| ) |

| void ERF::build_fine_mask | ( | int | lev, |
| amrex::MultiFab & | fine_mask | ||
| ) |
Helper function for constructing a fine mask, that is, a MultiFab masking coarser data at a lower level by zeroing out covered cells in the fine mask MultiFab we compute.
| level | Fine level index which masks underlying coarser data |

| void ERF::BuildPlot3DScratch | ( | const amrex::Vector< std::string > & | plot_var_names, |
| Plot3DScratch & | scratch, | ||
| int | max_lev = -1, |
||
| bool | sync_solution = true |
||
| ) |

|
private |

| void ERF::check_for_low_temp | ( | amrex::MultiFab & | S | ) |

| void ERF::check_for_negative_theta | ( | amrex::MultiFab & | S | ) |

| void ERF::check_mesh_type | ( | int | lev | ) |

| void ERF::check_state_for_nans | ( | amrex::MultiFab const & | S | ) |

| void ERF::check_vels_for_nans | ( | amrex::MultiFab const & | xvel, |
| amrex::MultiFab const & | yvel, | ||
| amrex::MultiFab const & | zvel | ||
| ) |
|
override |
| Real ERF::cloud_fraction | ( | double | time | ) |
| void ERF::compute_divergence | ( | int | lev, |
| amrex::MultiFab & | rhs, | ||
| amrex::Array< amrex::MultiFab const *, AMREX_SPACEDIM > | rho0_u_const, | ||
| amrex::MultiFab const & | mf_mx, | ||
| amrex::MultiFab const & | mf_my, | ||
| amrex::MultiFab const & | mf_vx, | ||
| amrex::MultiFab const & | mf_uy, | ||
| amrex::MultiFab const & | ax_in, | ||
| amrex::MultiFab const & | ay_in, | ||
| amrex::MultiFab const & | dJ_in, | ||
| amrex::Geometry const & | geom_at_lev | ||
| ) |
Project the single-level velocity field to enforce incompressibility Note that the level may or may not be level zero
| lev | Level index for the projection data |
| rhs | Cell-centered divergence field to be filled |
| rho0_u_const | Face-centered momentum components to differentiate |
| geom_at_lev | Geometry for the level being projected |

| void ERF::compute_max_buoyancy_gradp_diagnostic | ( | int | lev | ) |

| void ERF::compute_max_pressure_gradient_diagnostic | ( | int | lev | ) |

| void ERF::compute_native_shoc_tendencies | ( | int | lev, |
| amrex::MultiFab * | cons, | ||
| amrex::MultiFab * | xvel, | ||
| amrex::MultiFab * | yvel, | ||
| amrex::MultiFab * | zvel, | ||
| amrex::Real * | w_subsid, | ||
| amrex::MultiFab * | tau13, | ||
| amrex::MultiFab * | tau23, | ||
| amrex::MultiFab * | hfx3, | ||
| amrex::MultiFab * | qfx3, | ||
| amrex::MultiFab * | eddyDiffs, | ||
| amrex::MultiFab * | z_phys_nd, | ||
| const double & | dt_advance | ||
| ) |

| void ERF::ComputeAndWriteEnsemblePerturbations | ( | const int | da_iter | ) |
|
private |
Function that calls estTimeStep for each level
Referenced by EvolveOneStep().

|
inlinestaticprivate |
| void ERF::ComputeGlobalMinLocation | ( | const SolverChoice & | sc, |
| const amrex::Geometry & | geom, | ||
| const amrex::Vector< amrex::MultiFab > & | S_data, | ||
| amrex::Real * | d_val_min_ptr, | ||
| int * | d_i_min_ptr, | ||
| int * | d_j_min_ptr, | ||
| amrex::Real & | global_val_min, | ||
| int & | global_i_min, | ||
| int & | global_j_min | ||
| ) |
Compute the global minimum and its location across all ranks.
| [in] | sc | Solver choices |
| [in] | lev_geom | Geometry of the current level |
| [in] | S_data | Conservative state data |
| [in] | d_val_min_ptr | Device pointer to local minimum value |
| [in] | d_i_min_ptr | Device pointer to local minimum i-index |
| [in] | d_j_min_ptr | Device pointer to local minimum j-index |
| [out] | global_val_min | Global minimum value |
| [out] | global_i_min | Global minimum i-index |
| [out] | global_j_min | Global minimum j-index |

| void ERF::ConfigureDriverAtmosToOceanCoupling | ( | bool | use_coupling_driver, |
| bool | use_two_way_coupling, | ||
| bool | use_state_contract | ||
| ) |
|
private |
| void ERF::create_background_state_for_ensemble | ( | int | lev, |
| amrex::MultiFab & | mf_cc_pert, | ||
| amrex::MultiFab & | cons_pert, | ||
| amrex::MultiFab & | xvel_pert, | ||
| amrex::MultiFab & | yvel_pert, | ||
| amrex::MultiFab & | zvel_pert | ||
| ) |
Build ensemble background perturbation MultiFabs from custom coarse data.
| lev | Integer specifying the current level |
| mf_cc_pert | Cell-centered perturbations to apply to the background |
| cons_pert | Conserved-state perturbation MultiFab to fill |
| xvel_pert | x-face velocity perturbation MultiFab to fill |
| yvel_pert | y-face velocity perturbation MultiFab to fill |
| zvel_pert | z-face velocity perturbation MultiFab to fill |

| void ERF::create_random_perturbations | ( | const int | lev, |
| amrex::MultiFab & | mf_cc_pert | ||
| ) |
Create a cell-centered MultiFab of random perturbations for one AMR level.
| lev | Integer specifying the current level |
| mf_cc_pert | MultiFab filled with random perturbation components |

|
inlineprivate |
|
inlineprivatenoexcept |
The filename of the ith datalog file.
|
private |
Build the map of the vertical extent of the grid column over each (i,j).
The implicit vertical diffusion solves invert one tridiagonal system per column, so they are only well posed if each column lives in a single box. We enforce that here, then record each column's [klo,khi] on a z-slab with a one-cell halo in x and y; a box can then read the vertical extent of the column on the other side of any of its faces, which is what the staggered (u,v) solves need to agree with their neighbors.
| [in] | lev | level of refinement |
| [in] | ba | BoxArray at this level |
| [in] | dm | DistributionMapping at this level |
|
private |
|
inlineprivate |
|
inlineprivatenoexcept |
| void ERF::derive_diag_profiles | ( | double | time, |
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_u, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_v, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_w, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_rho, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_th, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_ksgs, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_Kmv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_Khv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qc, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qr, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_wqv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_wqc, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_wqr, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qi, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qs, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qg, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_uu, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_uv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_uw, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_vv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_vw, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_ww, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_uth, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_vth, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_wth, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_thth, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_ku, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_kv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_kw, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_p, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_pu, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_pv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_pw, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_wthv | ||
| ) |
Computes the profiles for diagnostic quantities.
| time | Current simulation time |
| h_avg_u | Profile for x-velocity on Host |
| h_avg_v | Profile for y-velocity on Host |
| h_avg_w | Profile for z-velocity on Host |
| h_avg_rho | Profile for density on Host |
| h_avg_th | Profile for potential temperature on Host |
| h_avg_ksgs | Profile for Kinetic Energy on Host |
| h_avg_Kmv | Profile for vertical turbulent viscosity on Host |
| h_avg_Khv | Profile for vertical scalar diffusivity on Host |
| h_avg_qv | Profile for water vapor on Host |
| h_avg_qc | Profile for cloud water on Host |
| h_avg_qr | Profile for rain water on Host |
| h_avg_wqv | Profile for vertical velocity * water vapor on Host |
| h_avg_wqc | Profile for vertical velocity * cloud water on Host |
| h_avg_wqr | Profile for vertical velocity * rain water on Host |
| h_avg_qi | Profile for cloud ice on Host |
| h_avg_qs | Profile for snow on Host |
| h_avg_qg | Profile for graupel on Host |
| h_avg_uu | Profile for x-velocity squared on Host |
| h_avg_uv | Profile for x-velocity * y-velocity on Host |
| h_avg_uw | Profile for x-velocity * z-velocity on Host |
| h_avg_vv | Profile for y-velocity squared on Host |
| h_avg_vw | Profile for y-velocity * z-velocity on Host |
| h_avg_ww | Profile for z-velocity squared on Host |
| h_avg_uth | Profile for x-velocity * potential temperature on Host |
| h_avg_vth | Profile for y-velocity * potential temperature on Host |
| h_avg_wth | Profile for z-velocity * potential temperature on Host |
| h_avg_thth | Profile for potential temperature squared on Host The definition also carries u_i*u_i velocity triple-product accumulators. |
| h_avg_ku | Profile for resolved x-momentum kinetic-energy flux on Host |
| h_avg_kv | Profile for resolved y-momentum kinetic-energy flux on Host |
| h_avg_kw | Profile for resolved z-momentum kinetic-energy flux on Host |
| h_avg_p | Profile for pressure perturbation on Host |
| h_avg_pu | Profile for pressure perturbation * x-velocity on Host |
| h_avg_pv | Profile for pressure perturbation * y-velocity on Host |
| h_avg_pw | Profile for pressure perturbation * z-velocity on Host |
| h_avg_wthv | Profile for vertical velocity * virtual potential temperature on Host |

| void ERF::derive_diag_profiles_stag | ( | double | time, |
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_u, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_v, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_w, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_rho, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_th, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_ksgs, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_Kmv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_Khv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qc, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qr, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_wqv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_wqc, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_wqr, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qi, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qs, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qg, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_uu, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_uv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_uw, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_vv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_vw, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_ww, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_uth, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_vth, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_wth, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_thth, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_ku, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_kv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_kw, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_p, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_pu, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_pv, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_pw, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_wthv | ||
| ) |
Computes the profiles for diagnostic quantities at staggered heights.
| time | Current simulation time |
| h_avg_u | Profile for x-velocity on Host |
| h_avg_v | Profile for y-velocity on Host |
| h_avg_w | Profile for z-velocity on Host |
| h_avg_rho | Profile for density on Host |
| h_avg_th | Profile for potential temperature on Host |
| h_avg_ksgs | Profile for Kinetic Energy on Host |
| h_avg_Kmv | Profile for vertical turbulent viscosity on Host |
| h_avg_Khv | Profile for vertical scalar diffusivity on Host |
| h_avg_qv | Profile for water vapor on Host |
| h_avg_qc | Profile for cloud water on Host |
| h_avg_qr | Profile for rain water on Host |
| h_avg_wqv | Profile for vertical velocity * water vapor on Host |
| h_avg_wqc | Profile for vertical velocity * cloud water on Host |
| h_avg_wqr | Profile for vertical velocity * rain water on Host |
| h_avg_qi | Profile for cloud ice on Host |
| h_avg_qs | Profile for snow on Host |
| h_avg_qg | Profile for graupel on Host |
| h_avg_uu | Profile for x-velocity squared on Host |
| h_avg_uv | Profile for x-velocity * y-velocity on Host |
| h_avg_uw | Profile for x-velocity * z-velocity on Host |
| h_avg_vv | Profile for y-velocity squared on Host |
| h_avg_vw | Profile for y-velocity * z-velocity on Host |
| h_avg_ww | Profile for z-velocity squared on Host |
| h_avg_uth | Profile for x-velocity * potential temperature on Host |
| h_avg_vth | Profile for y-velocity * potential temperature on Host |
| h_avg_wth | Profile for z-velocity * potential temperature on Host |
| h_avg_thth | Profile for potential temperature squared on Host The definition also carries u_i*u_i velocity triple-product accumulators. |
| h_avg_ku | Profile for resolved x-momentum kinetic-energy flux on Host |
| h_avg_kv | Profile for resolved y-momentum kinetic-energy flux on Host |
| h_avg_kw | Profile for resolved z-momentum kinetic-energy flux on Host |
| h_avg_p | Profile for pressure perturbation on Host |
| h_avg_pu | Profile for pressure perturbation * x-velocity on Host |
| h_avg_pv | Profile for pressure perturbation * y-velocity on Host |
| h_avg_pw | Profile for pressure perturbation * z-velocity on Host |
| h_avg_wthv | Profile for vertical velocity * virtual potential temperature on Host |

| void ERF::derive_forcing_profiles_stag | ( | amrex::Gpu::HostVector< amrex::Real > & | h_avg_ttend, |
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qtend, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_wsub, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_thtend, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qhtend, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tvtend, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qvtend, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qcvtend, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tnudge, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_qnudge, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_unudge, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_vnudge | ||
| ) |
| void ERF::derive_stress_profiles | ( | amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau11, |
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau12, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau13, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau22, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau23, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau33, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_hfx3, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_q1fx3, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_q2fx3, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_diss | ||
| ) |
| void ERF::derive_stress_profiles_stag | ( | amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau11, |
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau12, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau13, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau22, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau23, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_tau33, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_hfx3, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_q1fx3, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_q2fx3, | ||
| amrex::Gpu::HostVector< amrex::Real > & | h_avg_diss | ||
| ) |

| void ERF::derive_upwp | ( | amrex::Vector< amrex::Real > & | h_havg | ) |
|
inlineprivatenoexcept |
| void ERF::erf_enforce_hse | ( | int | lev, |
| amrex::MultiFab & | dens, | ||
| amrex::MultiFab & | pres, | ||
| amrex::MultiFab & | pi, | ||
| amrex::MultiFab & | th, | ||
| amrex::MultiFab & | qv, | ||
| std::unique_ptr< amrex::MultiFab > & | z_cc | ||
| ) |
Enforces hydrostatic equilibrium when using terrain.
| [in] | lev | Integer specifying the current level |
| [out] | dens | MultiFab storing base state density |
| [out] | pres | MultiFab storing base state pressure |
| [out] | pi | MultiFab storing base state Exner function |
| [out] | th | MultiFab storing base state potential temperature |
| [out] | qv | MultiFab storing base state water vapor mixing ratio |
| [in] | z_cc | Pointer to MultiFab storing cell centered z-coordinates |

| void ERF::ERF_shared | ( | ) |

|
override |
Function to tag cells for refinement – this overrides the pure virtual function in AmrCore
| [in] | levc | level of refinement at which we tag cells (0 is coarsest level) |
| [out] | tags | array of tagged cells |
| [in] | time | current time |
| [in] | ngrow | number of ghost cells (not used here) |

| double ERF::estTimeStep | ( | int | level, |
| long & | dt_fast_ratio | ||
| ) | const |
Function that calls estTimeStep for each level
| [in] | level | level of refinement (coarsest level i 0) |
| [out] | dt_fast_ratio | ratio of slow to fast time step |

| void ERF::Evolve | ( | ) |
Referenced by main().


| double ERF::EvolveOneStep | ( | double | time, |
| double | dt_request | ||
| ) |

| void ERF::fill_from_bndryregs | ( | const amrex::Vector< amrex::MultiFab * > & | mfs, |
| double | time | ||
| ) |
Impose boundary conditions using data read in as BndryRegisters from a previous ERF run
| [in,out] | mfs | Vector of MultiFabs to be filled |
| [in] | time | time at which the data should be filled |

|
private |
| void ERF::fill_terrain_surface | ( | int | lev, |
| amrex::MultiFab & | z_phys, | ||
| double | elapsed_time | ||
| ) |
| void ERF::FillBdyCCVels | ( | amrex::MultiFab & | mf_cc_vel, |
| amrex::Geometry & | lev_geom | ||
| ) |
Fill boundary ghost cells for cell-centered velocities.
| [in,out] | mf_cc_vel | cell-centered velocity MultiFab to be filled |
| [in] | lev_geom | geometry for the level being filled |

|
private |
Fill valid and ghost data. This version fills an entire MultiFab by interpolating from the coarser level – this is used only when a new level of refinement is being created during a run (i.e not at initialization) This will never be used with static refinement.
| [in] | lev | level of refinement at which to fill the data |
| [in] | time | time at which the data should be filled |

| void ERF::FillForecastStateMultiFabs | ( | const int | lev, |
| const std::string & | filename, | ||
| const std::unique_ptr< amrex::MultiFab > & | z_phys_nd, | ||
| amrex::Vector< amrex::Vector< amrex::MultiFab >> & | forecast_state | ||
| ) |
Fill forecast state MultiFabs by interpolating from binary forecast files.
| [in] | lev | Level index. |
| [in] | filename | Path to the binary forecast data file. |
| [in] | a_z_phys_nd | Nodal physical height field. |
| [out] | forecast_state | MultiFabs to be filled with interpolated forecast data. |

|
private |
Fill valid and ghost data This version fills mfs in valid regions with the values in "mfs" when it is passed in; it is used only to compute ghost values for intermediate stages of a time integrator.
| [in] | lev | level of refinement at which to fill the data |
| [in] | time_d | time at which the data should be filled |
| [in,out] | mfs_vel | Vector of MultiFabs to be filled containing, in order: cons, xvel, yvel, and zvel |
| [in,out] | mfs_mom | Vector of MultiFabs to be filled containing, in order: cons, xmom, ymom, and zmom |
| [in] | ng_cons | number of ghost cells to be filled for conserved variables |
| [in] | ng_vel | number of ghost cells to be filled for velocity components |
| [in] | cons_only | if true then only fill conserved variables |
| [in] | icomp_cons | starting component for conserved variables |
| [in] | ncomp_cons | number of components for conserved variables |

|
private |
Fill valid and ghost data on the coarse level with state data at the given time.
| [in] | lev | coarse level to fill |
| [in] | time_d | time at which the data should be filled |
| [in,out] | mfs_vel | Vector of MultiFabs to be filled containing cons, xvel, yvel, and zvel |
| [in] | cons_only | whether to fill only conserved variables |

|
private |
Fill valid and ghost data with the "state data" at the given time NOTE: THIS OPERATES ON VELOCITY (MOMENTA ARE JUST TEMPORARIES)
| [in] | lev | level of refinement at which to fill the data |
| [in] | time_d | time at which the data should be filled |
| [in,out] | mfs_vel | Vector of MultiFabs to be filled containing, in order: cons, xvel, yvel, and zvel |
| [in,out] | mfs_mom | Vector of MultiFabs to be filled containing, in order: cons, xmom, ymom, and zmom |
| [in] | old_base_state | base-state data at the old time |
| [in] | new_base_state | base-state data at the new time |
| [in] | fillset | whether to fill the coarse-fine set region before standard fillpatch |
| [in] | cons_only | whether to fill only conserved variables |

| void ERF::FillPlot2DVars | ( | int | lev, |
| const amrex::Vector< std::string > & | plot_var_names, | ||
| const amrex::Vector< std::string > & | varnames, | ||
| const amrex::Vector< plotfile2d::Plotfile2DOutputDescriptor > & | output_descriptors, | ||
| amrex::MultiFab & | mf_dst, | ||
| int | ncomp_mf | ||
| ) |

| void ERF::FillPlot3DVars | ( | int | lev, |
| const amrex::Vector< std::string > & | plot_var_names, | ||
| Plot3DScratch & | scratch, | ||
| amrex::MultiFab & | mf_dst, | ||
| int | ncomp_mf, | ||
| amrex::Real | tnew | ||
| ) |

| void ERF::FillSurfaceStateMultiFabs | ( | const int | lev, |
| const std::string & | filename, | ||
| amrex::Vector< amrex::MultiFab > & | surface_state | ||
| ) |
Read surface state data from a binary file and interpolate onto MultiFabs.
| [in] | lev | Current level. |
| [in] | filename | Path to the binary data file. |
| [out] | surface_state | MultiFabs to be filled with interpolated surface data. |

| bool ERF::FindInitialEye | ( | int | lev, |
| const amrex::MultiFab & | cc_vel, | ||
| const amrex::Real | velmag_threshold, | ||
| amrex::Real & | eye_x, | ||
| amrex::Real & | eye_y | ||
| ) |
Locate the initial position of the hurricane eye.
| levc | Current level. | |
| mf_cc_vel | MultiFab containing cell-centered velocity. | |
| velmag_threshold | Velocity magnitude threshold for eye identification. | |
| [out] | eye_x | Found x-coordinate of the eye. |
| [out] | eye_y | Found y-coordinate of the eye. |

| void ERF::flush_stations | ( | ) | const |
|
inlineprivatenoexcept |
|
inlineprivate |
|
inlinestaticprivate |
| void ERF::GetEnsembleCheckpointName | ( | int | da_iter, |
| int | ens_no | ||
| ) |
| void ERF::GetFillableAtmosToOceanLanes | ( | bool | state_contract, |
| amrex::Vector< int > & | can_fill | ||
| ) | const |

| void ERF::GetLandMask | ( | const amrex::iMultiFab *& | lmask | ) | const |
| void ERF::GetOceanToAtmosCellCenterLonLat | ( | const amrex::MultiFab *& | lon_cc, |
| const amrex::MultiFab *& | lat_cc | ||
| ) | const |
| void ERF::GetOceanToAtmosSurfaceLayout | ( | amrex::BoxArray & | ba, |
| amrex::DistributionMapping & | dm | ||
| ) |
Referenced by ApplyOceanSurfaceState().


|
staticprivate |
|
staticprivate |
Is any (i,j) column of this BoxArray covered by more than one box?
Projecting every box onto a common z index turns "two boxes stacked in z" into "two overlapping 2D boxes", so a non-disjoint projection is exactly the test for a grid that has been decomposed in the vertical.
| [in] | ba | BoxArray to test |
| bool ERF::has_own_init_file | ( | int | lev | ) | const |
|
private |
Whether the user wrote any surface-layer input under the given prefix.
This asks the snapshot taken in ReadParameters, not the live ParmParse table. The live table cannot answer the question: ERF_InputSoundingData.H queries erf.most.surf_temp and erf.most.surf_moist with queryAdd while reading the sounding, which runs during InitData_pre and leaves both keys in the table holding their negative sentinels. Testing the live table would therefore report unqualified MOST inputs for every input_sounding run, whether or not the user wrote any.
| [in] | prefix | the prefix to test, e.g. "erf" or "erf.zlo" |
|
inline |
|
inline |
Referenced by GetFillableAtmosToOceanLanes(), and PackAtmosphericStates().

| void ERF::HurricaneEyeTracker | ( | const SolverChoice & | sc | ) |
Wrapper to track the hurricane eye position over time.
| [in] | sc | Solver choices |
| void ERF::HurricaneEyeTrackerInitial | ( | const SolverChoice & | sc, |
| const amrex::Geometry & | geom, | ||
| const amrex::Vector< amrex::MultiFab > & | S_data, | ||
| const amrex::Real & | hurricane_eye_latitude, | ||
| const amrex::Real & | hurricane_eye_longitude | ||
| ) |
Initialize the hurricane eye tracker using a given latitude and longitude.
| [in] | sc | Solver choices |
| [in] | lev_geom | Geometry of the current level |
| [in] | S_data | Conservative state data |
| [in] | hurricane_eye_latitude | Target latitude for the eye |
| [in] | hurricane_eye_longitude | Target longitude for the eye |

| void ERF::HurricaneEyeTrackerNotInitial | ( | const SolverChoice & | sc, |
| const amrex::Geometry & | geom, | ||
| const amrex::Vector< amrex::MultiFab > & | S_data, | ||
| MoistureType | moisture_type | ||
| ) |
Track the hurricane eye by searching for minimum pressure near the previous position.
| [in] | sc | Solver choices |
| [in] | lev_geom | Geometry of the current level |
| [in] | S_data | Conservative state data |
| [in] | moisture_type | Moisture model type |

| void ERF::HurricaneMaxVelTracker | ( | const amrex::Geometry & | geom, |
| const amrex::MultiFab & | mf_cc_vel, | ||
| const double & | time | ||
| ) |
Compute and track the maximum wind velocity near the hurricane eye.
| [in] | lev_geom | Geometry of the current level |
| [in] | mf_cc_vel | MultiFab containing cell-centered velocity |
| [in] | time | Current simulation time |

| void ERF::HurricaneMinPressureTracker | ( | MoistureType | moisture_type, |
| const amrex::Geometry & | geom, | ||
| const amrex::MultiFab & | mf_cons_var, | ||
| const double & | time | ||
| ) |
Compute and track the minimum pressure near the hurricane eye.
| [in] | moisture_type | Moisture model type |
| [in] | lev_geom | Geometry of the current level |
| [in] | mf_cons_var | MultiFab containing conservative variables |
| [in] | time | Current simulation time |

| void ERF::HurricaneTracker | ( | int | lev, |
| double | time, | ||
| const amrex::MultiFab & | cc_vel, | ||
| const amrex::Real | velmag_threshold, | ||
| amrex::TagBoxArray * | tags = nullptr |
||
| ) |
Track the hurricane eye and tag cells for refinement.
| levc | Current level. | |
| time | Current simulation time. | |
| mf_cc_vel | MultiFab containing cell-centered velocity. | |
| velmag_threshold | Velocity magnitude threshold for eye identification. | |
| [out] | tags | TagBoxArray to be filled for refinement. |

| void ERF::HurricaneTrackerCircle | ( | ) |
| void ERF::ibseb_advance | ( | int | lev, |
| amrex::Real | time, | ||
| amrex::Real | dt_lev, | ||
| const amrex::MultiFab & | cons, | ||
| const amrex::MultiFab & | xvel, | ||
| const amrex::MultiFab & | yvel, | ||
| const amrex::MultiFab & | zvel | ||
| ) |
Per-step update of one level, called at the start of ERF::Advance() with the state at the start of the step: shortwave, longwave and the wall function on the faces, then either the prognostic balance (which finds the skin temperature at the end of the step and advances the slab with it) or, with erf.ibseb.prognostic = false, the slab alone under the fixed skin. The sensible flux left in the set is what add_heat_flux_to_source() deposits at every slow stage of the step, so the air receives exactly the H of the closed balance. The atmosphere is seen at the start of the step and the skin is implicit within it, the usual coupling of a land-surface model.
| [in] | lev | AMR level to update; a no-op if it has no face set. |
| [in] | time | Time at the start of the step [s], at which the sun position of the shortwave is taken. |
| [in] | dt_lev | Length of the level's step [s], over which the slab is advanced and within which the skin is implicit. |
| [in] | cons | Conserved state at the start of the step: the air temperature of the longwave and the wall function, and the profile of the bulk Richardson depth. |
| [in] | xvel | Face-centred x velocity at the start of the step. |
| [in] | yvel | Face-centred y velocity at the start of the step. |
| [in] | zvel | Face-centred z velocity at the start of the step; the three together drive the wall function of the sensible flux. |
| Real ERF::ibseb_bulk_richardson_height | ( | int | lev, |
| const amrex::MultiFab & | cons, | ||
| const amrex::MultiFab & | xvel, | ||
| const amrex::MultiFab & | yvel | ||
| ) |
Mixed-layer depth of a level by the bulk Richardson method on the horizontal-mean profile (Troen and Mahrt; Vogelezang and Holtslag).
With the first level as the reference, Ri_b(z) = g (z - z_1) (theta(z)
erf.ibseb.ri_crit, or the domain depth when it never does (a neutral profile); both are heights above the domain bottom. The profile is the plane average of the conserved state and the face velocities, uniform vertical spacing assumed as elsewhere in the balance; called once per step and level when the convective velocity scale is on and z_i is not fixed, also as the fallback of the pblh mode.| [in] | lev | AMR level whose horizontal-mean profile is taken. |
| [in] | cons | Conserved state of the level; the Rho_comp and RhoTheta_comp averages give the mean potential temperature. |
| [in] | xvel | Face-centred x velocity, for the mean wind profile. |
| [in] | yvel | Face-centred y velocity, for the mean wind profile. |
Ri_b never exceeds erf.ibseb.ri_crit. 
| void ERF::ibseb_report | ( | int | nstep, |
| amrex::Real | time | ||
| ) |
Periodic report from ERF::post_timestep(), with nstep the number of completed steps (the plotfiles' numbering; the initial state is the step-0 report of init_ibseb()): after every erf.ibseb.csv_int-th step, print the summary of each level and append its CSV rows. A non-positive interval disables both.
| [in] | nstep | Number of completed steps, tested against erf.ibseb.csv_int and written to the CSV rows. |
| [in] | time | Simulation time at the end of the step [s], written to the summary and the CSV rows. |
| void ERF::ibseb_write_checkpoint | ( | const std::string & | checkpointname, |
| int | lev | ||
| ) | const |
Write the face state of one level into the checkpoint as IBSEBState, a field on the blocks around the buildings (IBFaceSet::state_boxarray()) clipped to the cells that own faces, so it scales with the shell of the buildings rather than with the level. Called inside the level loop of ERF::WriteCheckpointFile(); a no-op unless the balance is on and the level has faces.
| [in] | checkpointname | Path of the checkpoint directory being written. |
| [in] | lev | AMR level whose face state is written, as the IBSEBState field of its Level_ group. |
| void ERF::ImposeBCsOnPhi | ( | int | lev, |
| amrex::MultiFab & | phi, | ||
| const amrex::Box & | subdomain | ||
| ) |
Impose bc's on the pressure that comes out of the solve
| lev | Level index for the pressure field |
| phi | Pressure increment with ghost cells to fill |
| subdomain | Subdomain over which the solve was performed |

|
private |
|
private |
Initialize ERF physical and component boundary condition data.
| void ERF::init_custom | ( | int | lev | ) |
Wrapper for custom problem-specific initialization routines that can be defined by the user as they set up a new problem in ERF. This wrapper handles all the overhead of defining the perturbation as well as initializing the random seed if needed.
This wrapper calls a user function to customize initialization on a per-Fab level inside an MFIter loop, so all the MultiFab operations are hidden from the user.
| lev | Integer specifying the current level |

|
private |
Read vertical Dirichlet boundary data and interpolate it to ERF levels.
| input_file | Path to the Dirichlet input profile file |

| void ERF::init_from_hse | ( | int | lev | ) |
Initialize the background flow to have the calculated HSE density and rho*theta calculated from the HSE pressure. In general, the hydrostatically balanced density and pressure (r_hse and p_hse from base_state) used here may be calculated through a solver path such as:
ERF::initHSE(lev)
| lev | Integer specifying the current level |

| void ERF::init_from_input_sounding | ( | int | lev | ) |
High level wrapper for initializing scalar and velocity level data from input sounding data.
| lev | Integer specifying the current level |

|
private |
Read and interpolate a geostrophic wind profile onto ERF vertical levels.
| input_file | Path to the geostrophic wind profile |
| u_geos | Host vector storing interpolated geostrophic x-wind |
| u_geos_d | Device vector storing interpolated geostrophic x-wind |
| v_geos | Host vector storing interpolated geostrophic y-wind |
| v_geos_d | Device vector storing interpolated geostrophic y-wind |
| lgeom | Geometry defining the vertical domain |
| zlev_stag | Optional stretched-grid staggered height levels |

| void ERF::init_ibseb | ( | ) |
Build the face set of every level from the blanking and, on a restart, refill its state from the checkpoint.
Called from ERF::InitData_post() after restart(), which is the first point where both paths (fresh start and restart) have the blanking of every level built and ghost-filled. The face list is always rebuilt from the blanking rather than read back, so the checkpoint carries only the state (IBSEBState, see IBFaceSet::state_ncomp()) and a restart on a different number of ranks works. A checkpoint from a run without the balance has no such field; the initial state is kept and a note is printed.
| void ERF::init_immersed_forcing | ( | int | lev | ) |
Set velocities in cells that are immersed to be 0 (or a very small number)
| lev | Integer specifying the current level |

| void ERF::init_only | ( | int | lev, |
| double | time | ||
| ) |

|
private |
Initializes data structures in the ERF class that specify which boundary conditions we are implementing on each face of the domain.
This function also maps the selected boundary condition types (e.g. Outflow, Inflow, InflowOutflow, Periodic, Dirichlet, ...) to the specific implementation needed for each variable.
Stores this information in both host and device vectors so it is available for GPU kernels.
| [in,out] | read_prim_theta | Whether external Dirichlet theta values should be read as primitive theta. |

| void ERF::init_stations | ( | ) |

|
private |

| void ERF::init_thin_body | ( | int | lev, |
| const amrex::BoxArray & | ba, | ||
| const amrex::DistributionMapping & | dm | ||
| ) |
| void ERF::init_zphys | ( | int | lev, |
| double | elapsed_time | ||
| ) |

| void ERF::InitData | ( | ) |
| void ERF::InitData_post | ( | ) |

| void ERF::InitData_pre | ( | ) |
|
private |
Initialize HSE.
Initialize density and pressure base state on every active AMR level.
|
private |
Initialize density and pressure base state in hydrostatic equilibrium.
| lev | Integer specifying the current level |

|
private |
|
private |
Referenced by ERF_shared().

|
private |
|
private |
|
private |
| a_nlevsmax | number of AMR levels |
Referenced by ERF_shared().


|
private |
Initialize Rayleigh damping profiles at a level.
Initialization function for host and device vectors used to store averaged quantities when calculating the effects of Rayleigh Damping.
| lev | Integer specifying the current level |
|
private |
Initialize sponge profiles.
Initialization function for host and device vectors used to store the effects of sponge Damping.
| void ERF::input_sponge | ( | int | lev | ) |
High level wrapper for sponge x and y velocities level data from input sponge data.
| lev | Integer specifying the current level |
| void ERF::Interp2DArrays | ( | int | lev, |
| const amrex::BoxArray & | my_ba2d, | ||
| const amrex::DistributionMapping & | my_dm | ||
| ) |

|
private |
Fill base_state[lev] by conservative interpolation from the next coarser level and then apply the base-state physical boundary conditions.
This is what gives values to the part of a fine level that lies inside the domain but outside the fine grids, and to the fine ghost cells. Any construction that writes only the fine grids – initHSE's vertical integration, or the analytic WRF profile – must run after this, not before.
| lev | Integer specifying the current level; must be > 0 |

| void ERF::interp_land_masks_from_coarse | ( | int | lev | ) |

| void ERF::interp_mapfac_from_coarse | ( | int | lev | ) |

| void ERF::interp_psfc_from_coarse | ( | int | lev | ) |

|
static |
Helper function which uses the current step number, time, and timestep to determine whether it is time to take an action specified at every interval of timesteps.
| nstep | Timestep number |
| time | Current time |
| dtlev | Timestep for the current level |
| action_interval | Interval in number of timesteps for taking action |
| action_per | Interval in simulation time for taking action |
| void ERF::make_eb_box | ( | ) |
| void ERF::make_eb_regular | ( | ) |
|
private |
|
private |

| void ERF::make_subdomains | ( | const amrex::BoxList & | ba, |
| amrex::Vector< amrex::BoxArray > & | bins | ||
| ) |
Group a list of boxes into subdomains based on adjacency.
| [in] | bl | List of boxes to partition. |
| [out] | bins | Vector of BoxArrays containing the grouped subdomains. |

| void ERF::MakeDiagnosticAverage | ( | amrex::Vector< amrex::Real > & | h_havg, |
| amrex::MultiFab & | S, | ||
| int | n | ||
| ) |

| void ERF::MakeEBGeometry | ( | ) |
| std::string ERF::MakeFilename_EyeTracker_latlon | ( | int | nstep | ) |
| std::string ERF::MakeFilename_EyeTracker_maxvel | ( | int | nstep | ) |
| std::string ERF::MakeFilename_EyeTracker_minpressure | ( | int | nstep | ) |
| void ERF::MakeHorizontalAverages | ( | ) |

|
override |

|
override |

| std::string ERF::MakeVTKFilename | ( | int | nstep | ) |
| std::string ERF::MakeVTKFilename_EyeTracker_xy | ( | int | nstep | ) |
| std::string ERF::MakeVTKFilename_TrackerCircle | ( | int | nstep | ) |
|
inlineprivatenoexcept |
|
inlineprivatenoexcept |
|
inlineprivatenoexcept |
|
inlineprivatenoexcept |
|
inlineprivatenoexcept |
|
inlineprivatenoexcept |
| void ERF::PackAtmosphericStates | ( | amrex::Vector< amrex::MultiFab * > & | states, |
| double | time, | ||
| const amrex::Vector< const amrex::MultiFab * > & | weight_mf, | ||
| const amrex::Vector< const amrex::iMultiFab * > & | index_mf, | ||
| int | max_stencil_size, | ||
| const amrex::MultiFab * | dst_mskr = nullptr, |
||
| const amrex::MultiFab * | dst_msku = nullptr, |
||
| const amrex::MultiFab * | dst_mskv = nullptr |
||
| ) |

|
private |

| void ERF::PerformDataAssimilation | ( | int | da_iter | ) |
|
private |
|
staticprivate |
| void ERF::poisson_wall_dist | ( | int | lev | ) |
Calculate wall distances using the Poisson equation
The zlo boundary is assumed to correspond to the land surface. If there are no boundary walls, then the other use case is to calculate wall distances for immersed boundaries (embedded or thin body).
See Tucker, P. G. (2003). Differential equation-based wall distance computation for DES and RANS. Journal of Computational Physics, 190(1), 229–Real(248.) https://doi.org/Real(10.1016)/S0021-9991(03)00272-9
| lev | Level index for the wall-distance solve |

| void ERF::post_timestep | ( | int | nstep, |
| double | time, | ||
| double | dt_lev | ||
| ) |
Referenced by EvolveOneStep().


|
private |
|
static |
Referenced by main().

|
static |
|
static |
|
static |
|
static |
| void ERF::project_initial_velocity | ( | int | lev, |
| double | time, | ||
| double | l_dt | ||
| ) |
Project the single-level velocity field to enforce the anelastic constraint Note that the level may or may not be level zero
| lev | Level index for the velocity projection |
| time | Time at which coarse data are registered |
| l_dt | Time step used for coarse data registration |

| void ERF::project_momenta | ( | int | lev, |
| double | l_time, | ||
| double | l_dt, | ||
| amrex::Vector< amrex::MultiFab > & | vars | ||
| ) |
Project the single-level momenta to enforce the anelastic constraint Note that the level may or may not be level zero
| lev | Level index for the momentum projection |
| l_time | Time used for coarse-fine momentum fills |
| l_dt | Time step used in the projection update |
| vars | Conserved density and face-centered momenta to project |

| void ERF::project_velocity_tb | ( | int | lev, |
| double | dt, | ||
| amrex::Vector< amrex::MultiFab > & | vars | ||
| ) |
Project the single-level velocity field to enforce incompressibility with a thin body
| lev | Level index for the thin-body projection |
| dt | Time step used in the projection update |
| vars | State MultiFabs containing the velocity fields to project |

| void ERF::read_box_for_refinement | ( | std::string & | ref_prefix, |
| int & | lev_for_box, | ||
| amrex::RealBox & | real_box | ||
| ) |
Read the refinement box from the inputs file.
| [in] | ref_prefix | Prefix for parsing input parameters. |
| [out] | lev_for_box | Level associated with the refinement box. |
| [out] | real_box | Real-space coordinates of the refinement box. |

| void ERF::ReadCheckpointFile | ( | ) |
ERF function for reading data from a checkpoint file during restart.

| void ERF::ReadCheckpointFileSurfaceLayer | ( | ) |
ERF function for reading additional data for MOST from a checkpoint file during restart.
This is called after the ABLMost object is instantiated.
|
private |
Referenced by ERF_shared().


| void ERF::ReadStormTrackerRestart | ( | ) |
Read hurricane tracking history from restart files.
| void ERF::ReadVelsOnlyFromCheckpointFile | ( | int | lev_to_fill, |
| std::string & | chkfile_for_vels | ||
| ) |
ERF function for reading data from a checkpoint file during restart.

|
private |
Function to define the refinement criteria based on user input
Referenced by ERF_shared().


| void ERF::remake_zphys | ( | int | lev, |
| amrex::Real | time, | ||
| std::unique_ptr< amrex::MultiFab > & | temp_zphys_nd | ||
| ) |

|
override |

| void ERF::ResetIntervalMeans | ( | ) |
| void ERF::ResetIntervalMeansAfter3DPlotfileBatch | ( | int | plotfiles_written, |
| bool | interval_diagnostic_consumed | ||
| ) |

| void ERF::resolve_station_positions | ( | ) |

| void ERF::resolve_station_stencils | ( | ) |

| void ERF::restart | ( | ) |
| void ERF::sample_lines | ( | int | lev, |
| double | time, | ||
| amrex::IntVect | cell, | ||
| amrex::MultiFab & | mf | ||
| ) |
Utility function for sampling data along a line along the z-dimension at the (x,y) indices specified and writes it to an output file.
| lev | Current level |
| time | Current time |
| cell | IntVect containing the x,y-dimension indices to sample along z |
| mf | MultiFab from which we sample the data |
| void ERF::sample_points | ( | int | lev, |
| double | time, | ||
| amrex::IntVect | cell, | ||
| amrex::MultiFab & | mf | ||
| ) |
Utility function for sampling MultiFab data at a specified cell index.
| lev | Level for the associated MultiFab data |
| time | Current time |
| cell | IntVect containing the indexes for the cell where we want to sample |
| mf | MultiFab from which we wish to sample data |
| void ERF::sample_stations | ( | amrex::Real | time | ) |

|
inlineprivate |
|
inlineprivate |
|
inlineprivatenoexcept |
The filename of the ith samplelinelog file.
|
inlineprivate |
|
inlineprivate |
|
inlineprivatenoexcept |
The filename of the ith sampleptlog file.
| void ERF::SetDirsForPlotfilesAndCheckpointsForDA | ( | const int | da_iter, |
| const int | ens_no | ||
| ) |
| void ERF::SetDriverAtmosToOceanStateContract | ( | bool | use_state_contract | ) |
|
private |
Referenced by ERF_shared().


|
private |

|
private |
Set Rayleigh mean profiles from input sounding.
Sets the Rayleigh Damping averaged quantities from an externally supplied input sounding data file.
| [in] | restarting | Boolean parameter that indicates whether we are currently restarting from a checkpoint file. |

|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
private |
Set sponge mean profiles from input sounding.
Sets the sponge damping averaged quantities from an externally supplied input sponge data file.
| [in] | restarting | Boolean parameter that indicates whether we are currently restarting from a checkpoint file. |

|
private |
Referenced by ERF_shared().


| void ERF::solve_with_gmres | ( | int | lev, |
| const amrex::Box & | subdomain, | ||
| amrex::MultiFab & | rhs, | ||
| amrex::MultiFab & | p, | ||
| amrex::Array< amrex::MultiFab, AMREX_SPACEDIM > & | fluxes, | ||
| amrex::MultiFab & | ax_sub, | ||
| amrex::MultiFab & | ay_sub, | ||
| amrex::MultiFab & | az_sub, | ||
| amrex::MultiFab & | , | ||
| amrex::MultiFab & | znd_sub | ||
| ) |
Solve the Poisson equation using FFT-preconditioned GMRES
| lev | Level index for the solve |
| subdomain | Box over which the solve is performed |
| rhs | Right-hand side field for the Poisson solve |
| p | Solution field to fill |
| fluxes | Face-centered gradient fluxes to fill |
| ax_sub | Terrain metric coefficient on x-faces |
| ay_sub | Terrain metric coefficient on y-faces |
| az_sub | Terrain metric coefficient on z-faces |
| znd_sub | Node-centered physical height field |
The unnamed metric argument in the class declaration is the cell-centered Jacobian determinant.

| void ERF::sum_derived_quantities | ( | double | time | ) |

| void ERF::sum_energy_quantities | ( | double | time | ) |
| void ERF::sum_integrated_quantities | ( | double | time | ) |
Computes the integrated quantities on the grid such as the total scalar and total mass quantities. Prints and writes to output file.
| time | Current time |
| void ERF::SurfaceDataInterpolation | ( | const int | lev, |
| const double | time, | ||
| amrex::Vector< std::unique_ptr< amrex::MultiFab >> & | a_z_phys_nd, | ||
| bool | regrid_forces_file_read | ||
| ) |
Interpolate weather forecast surface data in time and space onto the simulation grid.
| [in] | lev | Current level. |
| [in] | time | Current simulation time. |
| [in] | a_z_phys_nd | Physical height MultiFabs. |
| [in] | regrid_forces_file_read | Flag indicating if a regrid requires a file read. |
|
private |
Function that coordinates the evolution across levels – this calls Advance to do the actual advance at this level, then recursively calls itself at finer levels
| [in] | lev | level of refinement (coarsest level is 0) |
| [in] | time | start time for time advance |
| [in] | iteration | time step counter |
Referenced by EvolveOneStep().


|
private |
|
private |
|
private |
Update turbulent perturbation timing and amplitudes for one AMR level.
| lev | Integer specifying the current level |
| local_dt | Local timestep used to update the perturbation state |
| void ERF::update_box_for_refinement | ( | std::string & | ref_prefix, |
| int & | lev_for_box, | ||
| amrex::RealBox & | real_box, | ||
| const double | time | ||
| ) |
Update the refinement box position for moving grids.
| [in] | ref_prefix | Prefix for parsing input parameters. |
| [out] | lev_for_box | Level associated with the refinement box. |
| [out] | real_box | Updated real-space coordinates of the refinement box. |
| [in] | time | Current simulation time. |
|
private |
| void ERF::update_terrain_arrays | ( | int | lev | ) |

| void ERF::volWgtColumnSum | ( | int | lev, |
| const amrex::MultiFab & | mf, | ||
| int | comp, | ||
| amrex::MultiFab & | mf_2d, | ||
| const amrex::MultiFab & | dJ | ||
| ) |
Compute a volume-weighted column sum of MultiFab data.
| lev | Current level. | |
| [in] | mf_to_be_summed | MultiFab to be summed. |
| [in] | comp | Component index to be summed. |
| [out] | mf_2d | MultiFab to store the resulting column sums. |
| [in] | dJ | Volume weighting due to metric terms. |

| Real ERF::volWgtSumMF | ( | int | lev, |
| const amrex::MultiFab & | mf, | ||
| int | comp, | ||
| const amrex::MultiFab & | dJ, | ||
| const amrex::MultiFab & | mfx, | ||
| const amrex::MultiFab & | mfy, | ||
| bool | finemask, | ||
| bool | local = true |
||
| ) |
Utility function for computing a volume weighted sum of MultiFab data for a single component
| lev | Current level |
| mf_to_be_summed | : MultiFab on which we do the volume weighted sum |
| dJ | : volume weighting due to metric terms |
| mfmx | : map factor in x-direction at cell centers |
| mfmy | : map factor in y-direction at cell centers |
| comp | : Index of the component we want to sum |
| finemask | : If a finer level is available, determines whether we mask fine data |
| local | : Boolean sets whether or not to reduce the sum over the domain (false) or compute sums local to each MPI rank (true) |

| void ERF::WeatherDataInterpolation | ( | const int | lev, |
| const double | time, | ||
| amrex::Vector< std::unique_ptr< amrex::MultiFab >> & | a_z_phys_nd, | ||
| bool | regrid_forces_file_read | ||
| ) |
Interpolate weather forecast data onto the simulation mesh.
| [in] | lev | Level index. |
| [in] | time | Current simulation time. |
| [in] | a_z_phys_nd | Nodal physical height fields across all levels. |
| [in] | regrid_forces_file_read | Flag to force reading of forecast files during regridding. |
| void ERF::Write2DPlotFile | ( | int | which, |
| PlotFileType | plotfile_type, | ||
| amrex::Vector< std::string > | plot_var_names | ||
| ) |

| bool ERF::Write3DPlotFile | ( | int | which, |
| PlotFileType | plotfile_type, | ||
| amrex::Vector< std::string > | plot_var_names | ||
| ) |

| void ERF::write_1D_profiles | ( | double | time | ) |
Writes 1-dimensional averaged quantities as profiles to output log files at the given time.
| time | Current time |
| void ERF::write_1D_profiles_stag | ( | double | time | ) |
Writes 1-dimensional averaged quantities as profiles to output log files at the given time.
Quantities are output at their native grid locations. Therefore, w and associated flux quantities <(•)'w'>, tau13, and tau23 (where '•' includes u, v, p, theta, ...) will be output at staggered heights (i.e., coincident with z faces) rather than cell-center heights to avoid performing additional averaging. Unstaggered (i.e., cell-centered) quantities are output alongside staggered quantities at the lower cell faces in the log file; these quantities will have a zero value at the big end, corresponding to k=Nz+one
The structure of file should follow ERF_Write1DProfiles.cpp
| time | Current time |
| void ERF::WriteAtFinalTime | ( | ) |

| void ERF::WriteAtIntermediateTime | ( | int | nstep, |
| double | time | ||
| ) |
Referenced by EvolveOneStep().


|
static |
Referenced by main().


| void ERF::WriteCheckpointFile | ( | ) | const |
ERF function for writing a checkpoint file.

| void ERF::WriteGenericPlotfileHeaderWithTerrain | ( | std::ostream & | HeaderFile, |
| int | nlevels, | ||
| const amrex::Vector< amrex::BoxArray > & | bArray, | ||
| const amrex::Vector< std::string > & | varnames, | ||
| const amrex::Vector< amrex::Geometry > & | my_geom, | ||
| double | time, | ||
| const amrex::Vector< int > & | level_steps, | ||
| const amrex::Vector< amrex::IntVect > & | my_ref_ratio, | ||
| const std::string & | versionName, | ||
| const std::string & | levelPrefix, | ||
| const std::string & | mfPrefix | ||
| ) | const |

| void ERF::writeJobInfo | ( | const std::string & | dir, |
| erf_provenance::ArtifactType | artifact_type, | ||
| int | artifact_step, | ||
| double | artifact_time_seconds | ||
| ) | const |

| void ERF::WriteLinePlot | ( | const std::string & | filename, |
| amrex::Vector< std::array< amrex::Real, 2 >> & | points_xy | ||
| ) |
| void ERF::WriteMultiLevelPlotfileWithTerrain | ( | const std::string & | plotfilename, |
| int | nlevels, | ||
| const amrex::Vector< const amrex::MultiFab * > & | mf, | ||
| const amrex::Vector< const amrex::MultiFab * > & | mf_nd, | ||
| const amrex::Vector< std::string > & | varnames, | ||
| const amrex::Vector< amrex::Geometry > & | my_geom, | ||
| double | time, | ||
| const amrex::Vector< int > & | level_steps, | ||
| const amrex::Vector< amrex::IntVect > & | my_ref_ratio, | ||
| const std::string & | versionName = "HyperCLaw-V1.1", |
||
| const std::string & | levelPrefix = "Level_", |
||
| const std::string & | mfPrefix = "Cell", |
||
| const amrex::Vector< std::string > & | extra_dirs = amrex::Vector<std::string>() |
||
| ) | const |

| void ERF::WriteMyEBSurface | ( | ) |
| bool ERF::writeNow | ( | double | cur_time, |
| const int | nstep, | ||
| const int | plot_int, | ||
| const double | plot_per, | ||
| const double | dt_0, | ||
| double & | last_file_time | ||
| ) |
| void ERF::WriteSubvolume | ( | int | isub, |
| amrex::Vector< std::string > | subvol_var_names | ||
| ) |

| void ERF::WriteVTKPolyline | ( | const std::string & | filename, |
| amrex::Vector< std::array< amrex::Real, 2 >> & | points_xy | ||
| ) |
|
private |
Referenced by ERF_shared(), and getAdvFluxReg().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared(), GetOceanToAtmosSurfaceLayout(), and PackAtmosphericStates().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
| amrex::Vector<amrex::Vector<amrex::MultiFab> > ERF::bckgnd_state |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
private |
|
private |
|
private |
|
private |
|
staticprivate |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
staticprivate |
|
staticprivate |
|
private |
Referenced by ERF_shared().
|
staticconstexprprivate |
|
staticconstexprprivate |
|
staticprivate |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by DataLog(), NumDataLogs(), and setRecordDataInfo().
|
private |
Referenced by DataLogName().
|
private |
|
private |
|
private |
|
private |
Referenced by DerDataLog(), NumDerDataLogs(), and setRecordDerDataInfo().
|
private |
Referenced by DerDataLogName().
|
private |
|
private |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
private |
Referenced by ERF_shared(), and EvolveOneStep().
|
staticprivate |
|
staticprivate |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
Referenced by EBFactory(), ERF_shared(), and get_eb().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
Referenced by ERF_shared().
|
private |
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
staticprivate |
| amrex::Vector<amrex::Vector<amrex::MultiFab> > ERF::forecast_state_1 |
Referenced by ERF_shared().
| amrex::Vector<amrex::Vector<amrex::MultiFab> > ERF::forecast_state_2 |
Referenced by ERF_shared().
| amrex::Vector<amrex::Vector<amrex::MultiFab> > ERF::forecast_state_interp |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
private |
|
staticprivate |
|
private |
Referenced by ERF_shared().
| amrex::Vector<std::array<amrex::Real, 2> > ERF::hurricane_eye_track_latlon |
| amrex::Vector<std::array<amrex::Real, 2> > ERF::hurricane_eye_track_xy |
| amrex::Vector<std::array<amrex::Real, 2> > ERF::hurricane_maxvel_vs_time |
| amrex::Vector<std::array<amrex::Real, 2> > ERF::hurricane_minpressure_vs_time |
| amrex::Vector<std::array<amrex::Real, 2> > ERF::hurricane_track_xy |
| amrex::Vector<std::array<amrex::Real, 2> > ERF::hurricane_tracker_circle |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
|
staticprivate |
|
private |
|
private |
|
staticprivate |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by EvolveOneStep().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
private |
|
private |
|
private |
Referenced by ERF_shared(), and GetOceanToAtmosCellCenterLonLat().
|
private |
|
private |
|
private |
|
private |
Referenced by ERF_shared(), and GetLandMask().
|
private |
Referenced by ERF_shared(), and GetOceanToAtmosCellCenterLonLat().
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
Referenced by ERF_shared().
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
private |
|
private |
| std::unique_ptr<amrex::MultiFab> ERF::m_coupled_sst |
Referenced by ApplyOceanSurfaceState().
| std::unique_ptr<amrex::iMultiFab> ERF::m_coupled_sst_valid |
Referenced by ApplyOceanSurfaceState().
| bool ERF::m_driver_atm2ocn_uses_state_contract = true |
Referenced by ConfigureDriverAtmosToOceanCoupling(), and SetDriverAtmosToOceanStateContract().
| bool ERF::m_driver_has_atm2ocn_coupling = false |
Referenced by ConfigureDriverAtmosToOceanCoupling().
| bool ERF::m_driver_uses_two_way_coupling = false |
Referenced by ConfigureDriverAtmosToOceanCoupling().
|
private |
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by ApplyOceanSurfaceState(), and ERF_shared().
|
private |
|
private |
| bool ERF::m_warned_coupled_sst_declined = false |
Referenced by ApplyOceanSurfaceState().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by ERF_shared().
|
staticprivate |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
staticprivate |
|
private |
|
private |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
private |
Referenced by ERF_shared().
| std::string ERF::pp_prefix {"erf"} |
|
staticprivate |
Referenced by getCPUTime().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared(), HasRadiation(), and PackAtmosphericStates().
|
private |
|
private |
|
private |
|
staticprivate |
|
staticprivate |
|
private |
|
private |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by NumSampleLines(), and SampleLine().
|
private |
Referenced by NumSampleLineLogs(), SampleLineLog(), and setRecordSampleLineInfo().
|
private |
Referenced by SampleLineLogName().
|
private |
Referenced by NumSamplePoints(), and SamplePoint().
|
private |
Referenced by NumSamplePointLogs(), SamplePointLog(), and setRecordSamplePointInfo().
|
private |
Referenced by SamplePointLogName().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared(), GetFillableAtmosToOceanLanes(), and PackAtmosphericStates().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared(), GetFillableAtmosToOceanLanes(), and PackAtmosphericStates().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
staticprivate |
Referenced by ApplyOceanSurfaceState(), ERF_shared(), GetFillableAtmosToOceanLanes(), HasCloudWater(), and PackAtmosphericStates().
|
private |
Referenced by ERF_shared().
|
staticprivate |
Referenced by EvolveOneStep().
|
staticprivate |
Referenced by getCPUTime().
|
private |
|
private |
|
private |
|
private |
|
private |
|
staticprivate |
Referenced by EvolveOneStep().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
Referenced by ERF_shared().
|
private |
|
staticprivate |
|
staticprivate |
| amrex::Vector<amrex::MultiFab> ERF::surface_state_1 |
Referenced by ERF_shared().
| amrex::Vector<amrex::MultiFab> ERF::surface_state_2 |
Referenced by ERF_shared().
| amrex::Vector<amrex::MultiFab> ERF::surface_state_interp |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared(), and EvolveOneStep().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared(), GetFillableAtmosToOceanLanes(), and PackAtmosphericStates().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
Referenced by setRecordEnergyDataInfo().
|
private |
|
private |
Referenced by ERF_shared().
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
|
private |
|
staticprivate |
|
private |
| std::set<std::string> ERF::user_specified_inputs |
|
private |
Referenced by ERF_shared(), and PackAtmosphericStates().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
staticprivate |
Referenced by PackAtmosphericStates().
|
private |
Referenced by ERF_shared().
| amrex::Vector<amrex::MultiFab> ERF::weather_forecast_data_1 |
| amrex::Vector<amrex::MultiFab> ERF::weather_forecast_data_2 |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().
|
private |
Referenced by ERF_shared().