12 #include <AMReX_AmrCore.H>
13 #include <AMReX_BCRec.H>
14 #include <AMReX_Print.H>
16 #include <AMReX_ParallelDescriptor.H>
17 #include <AMReX_ParmParse.H>
18 #include <AMReX_MultiFabUtil.H>
19 #include <AMReX_FillPatchUtil.H>
20 #include <AMReX_VisMF.H>
21 #include <AMReX_PhysBCFunct.H>
22 #include <AMReX_YAFluxRegister.H>
23 #include <AMReX_ErrorList.H>
24 #include <AMReX_EBFabFactory.H>
25 #include <AMReX_EBMultiFabUtil.H>
32 #include <AMReX_FFT_Poisson.H>
35 #ifdef AMREX_MEM_PROFILING
36 #include <AMReX_MemProfiler.H>
58 #ifdef ERF_USE_PARTICLES
66 #ifdef ERF_USE_WINDFARM
72 #ifdef ERF_USE_EAMXX_SHOC
79 #include "ERF_P3Interface.H"
85 #include <AMReX_Lazy.H>
89 using amrex::MPI_COMM_WORLD;
90 using amrex::MPI_Comm;
93 #ifdef ERF_USE_MULTIBLOCK
94 class MultiBlockContainer;
101 FullState, Perturbational
116 :
public amrex::AmrCore
135 ERF& operator=(
ERF&& other) noexcept = delete;
141 ERF& operator=(const
ERF& other) = delete;
148 bool use_two_way_coupling,
149 bool use_state_contract);
155 amrex::DistributionMapping& dm);
170 const
amrex::MultiFab& cc_vel,
172 amrex::TagBoxArray* tags =
nullptr);
175 const
amrex::MultiFab& cc_vel,
211 const
amrex::Geometry& geom,
213 const
amrex::
Real& hurricane_eye_latitude,
214 const
amrex::
Real& hurricane_eye_longitude);
217 const
amrex::Geometry& geom,
219 MoistureType moisture_type);
222 const
amrex::Geometry& geom,
232 const
amrex::MultiFab& mf_cc_vel,
236 const
amrex::Geometry& geom,
237 const
amrex::MultiFab& mf_cons_var,
260 amrex::Geometry const& geom_at_lev);
275 void build_fft_solvers (
int lev);
276 void solve_with_fft (
int lev,
int isub,
const amrex::Box& subdomain,
277 amrex::MultiFab& rhs, amrex::MultiFab&
p,
278 amrex::Array<amrex::MultiFab,AMREX_SPACEDIM>& fluxes);
281 amrex::MultiFab& rhs, amrex::MultiFab&
p,
282 amrex::Array<amrex::MultiFab,AMREX_SPACEDIM>& fluxes,
283 amrex::MultiFab& ax_sub, amrex::MultiFab& ay_sub,
284 amrex::MultiFab& az_sub,
285 amrex::MultiFab& , amrex::MultiFab& znd_sub);
287 void ImposeBCsOnPhi (
int lev, amrex::MultiFab& phi,
const amrex::Box& subdomain);
307 bool writeNow (
double cur_time,
const int nstep,
const int plot_int,
308 const double plot_per,
const double dt_0,
double& last_file_time);
330 void FillBdyCCVels (amrex::MultiFab& mf_cc_vel, amrex::Geometry& lev_geom);
332 void sample_points (
int lev,
double time, amrex::IntVect cell, amrex::MultiFab& mf);
333 void sample_lines (
int lev,
double time, amrex::IntVect cell, amrex::MultiFab& mf);
336 amrex::Gpu::HostVector<amrex::Real>& h_avg_u , amrex::Gpu::HostVector<amrex::Real>& h_avg_v,
337 amrex::Gpu::HostVector<amrex::Real>& h_avg_w , amrex::Gpu::HostVector<amrex::Real>& h_avg_rho,
338 amrex::Gpu::HostVector<amrex::Real>& h_avg_th , amrex::Gpu::HostVector<amrex::Real>& h_avg_ksgs,
339 amrex::Gpu::HostVector<amrex::Real>& h_avg_Kmv , amrex::Gpu::HostVector<amrex::Real>& h_avg_Khv,
340 amrex::Gpu::HostVector<amrex::Real>& h_avg_qv , amrex::Gpu::HostVector<amrex::Real>& h_avg_qc,
341 amrex::Gpu::HostVector<amrex::Real>& h_avg_qr ,
342 amrex::Gpu::HostVector<amrex::Real>& h_avg_wqv , amrex::Gpu::HostVector<amrex::Real>& h_avg_wqc,
343 amrex::Gpu::HostVector<amrex::Real>& h_avg_wqr ,
344 amrex::Gpu::HostVector<amrex::Real>& h_avg_qi , amrex::Gpu::HostVector<amrex::Real>& h_avg_qs,
345 amrex::Gpu::HostVector<amrex::Real>& h_avg_qg ,
346 amrex::Gpu::HostVector<amrex::Real>& h_avg_uu , amrex::Gpu::HostVector<amrex::Real>& h_avg_uv,
347 amrex::Gpu::HostVector<amrex::Real>& h_avg_uw,
348 amrex::Gpu::HostVector<amrex::Real>& h_avg_vv , amrex::Gpu::HostVector<amrex::Real>& h_avg_vw,
349 amrex::Gpu::HostVector<amrex::Real>& h_avg_ww,
350 amrex::Gpu::HostVector<amrex::Real>& h_avg_uth , amrex::Gpu::HostVector<amrex::Real>& h_avg_vth,
351 amrex::Gpu::HostVector<amrex::Real>& h_avg_wth, amrex::Gpu::HostVector<amrex::Real>& h_avg_thth,
352 amrex::Gpu::HostVector<amrex::Real>& h_avg_ku, amrex::Gpu::HostVector<amrex::Real>& h_avg_kv,
353 amrex::Gpu::HostVector<amrex::Real>& h_avg_kw,
354 amrex::Gpu::HostVector<amrex::Real>& h_avg_p,
355 amrex::Gpu::HostVector<amrex::Real>& h_avg_pu, amrex::Gpu::HostVector<amrex::Real>& h_avg_pv,
356 amrex::Gpu::HostVector<amrex::Real>& h_avg_pw, amrex::Gpu::HostVector<amrex::Real>& h_avg_wthv);
358 amrex::Gpu::HostVector<amrex::Real>& h_avg_u , amrex::Gpu::HostVector<amrex::Real>& h_avg_v,
359 amrex::Gpu::HostVector<amrex::Real>& h_avg_w , amrex::Gpu::HostVector<amrex::Real>& h_avg_rho,
360 amrex::Gpu::HostVector<amrex::Real>& h_avg_th , amrex::Gpu::HostVector<amrex::Real>& h_avg_ksgs,
361 amrex::Gpu::HostVector<amrex::Real>& h_avg_Kmv , amrex::Gpu::HostVector<amrex::Real>& h_avg_Khv,
362 amrex::Gpu::HostVector<amrex::Real>& h_avg_qv , amrex::Gpu::HostVector<amrex::Real>& h_avg_qc,
363 amrex::Gpu::HostVector<amrex::Real>& h_avg_qr ,
364 amrex::Gpu::HostVector<amrex::Real>& h_avg_wqv , amrex::Gpu::HostVector<amrex::Real>& h_avg_wqc,
365 amrex::Gpu::HostVector<amrex::Real>& h_avg_wqr ,
366 amrex::Gpu::HostVector<amrex::Real>& h_avg_qi , amrex::Gpu::HostVector<amrex::Real>& h_avg_qs,
367 amrex::Gpu::HostVector<amrex::Real>& h_avg_qg ,
368 amrex::Gpu::HostVector<amrex::Real>& h_avg_uu , amrex::Gpu::HostVector<amrex::Real>& h_avg_uv,
369 amrex::Gpu::HostVector<amrex::Real>& h_avg_uw,
370 amrex::Gpu::HostVector<amrex::Real>& h_avg_vv , amrex::Gpu::HostVector<amrex::Real>& h_avg_vw,
371 amrex::Gpu::HostVector<amrex::Real>& h_avg_ww,
372 amrex::Gpu::HostVector<amrex::Real>& h_avg_uth , amrex::Gpu::HostVector<amrex::Real>& h_avg_vth,
373 amrex::Gpu::HostVector<amrex::Real>& h_avg_wth, amrex::Gpu::HostVector<amrex::Real>& h_avg_thth,
374 amrex::Gpu::HostVector<amrex::Real>& h_avg_ku, amrex::Gpu::HostVector<amrex::Real>& h_avg_kv,
375 amrex::Gpu::HostVector<amrex::Real>& h_avg_kw,
376 amrex::Gpu::HostVector<amrex::Real>& h_avg_p,
377 amrex::Gpu::HostVector<amrex::Real>& h_avg_pu, amrex::Gpu::HostVector<amrex::Real>& h_avg_pv,
378 amrex::Gpu::HostVector<amrex::Real>& h_avg_pw, amrex::Gpu::HostVector<amrex::Real>& h_avg_wthv);
380 void derive_stress_profiles (amrex::Gpu::HostVector<amrex::Real>& h_avg_tau11, amrex::Gpu::HostVector<amrex::Real>& h_avg_tau12,
381 amrex::Gpu::HostVector<amrex::Real>& h_avg_tau13, amrex::Gpu::HostVector<amrex::Real>& h_avg_tau22,
382 amrex::Gpu::HostVector<amrex::Real>& h_avg_tau23, amrex::Gpu::HostVector<amrex::Real>& h_avg_tau33,
383 amrex::Gpu::HostVector<amrex::Real>& h_avg_hfx3, amrex::Gpu::HostVector<amrex::Real>& h_avg_q1fx3,
384 amrex::Gpu::HostVector<amrex::Real>& h_avg_q2fx3, amrex::Gpu::HostVector<amrex::Real>& h_avg_diss);
385 void derive_stress_profiles_stag (amrex::Gpu::HostVector<amrex::Real>& h_avg_tau11, amrex::Gpu::HostVector<amrex::Real>& h_avg_tau12,
386 amrex::Gpu::HostVector<amrex::Real>& h_avg_tau13, amrex::Gpu::HostVector<amrex::Real>& h_avg_tau22,
387 amrex::Gpu::HostVector<amrex::Real>& h_avg_tau23, amrex::Gpu::HostVector<amrex::Real>& h_avg_tau33,
388 amrex::Gpu::HostVector<amrex::Real>& h_avg_hfx3, amrex::Gpu::HostVector<amrex::Real>& h_avg_q1fx3,
389 amrex::Gpu::HostVector<amrex::Real>& h_avg_q2fx3, amrex::Gpu::HostVector<amrex::Real>& h_avg_diss);
393 volWgtSumMF (
int lev,
const amrex::MultiFab& mf,
int comp,
394 const amrex::MultiFab& dJ,
const amrex::MultiFab& mfx,
const amrex::MultiFab& mfy,
395 bool finemask,
bool local =
true);
399 amrex::MultiFab& mf_2d,
const amrex::MultiFab& dJ);
403 int action_interval,
double action_per);
409 const amrex::DistributionMapping& dm)
override;
415 const amrex::DistributionMapping& dm)
override;
425 const amrex::DistributionMapping& dm)
override;
428 double estTimeStep (
int lev,
long& dt_fast_ratio)
const;
430 #ifdef ERF_USE_WW3_COUPLING
432 void send_to_ww3(
int lev);
434 void read_waves(
int lev);
443 amrex::Vector<amrex::MultiFab>& state_old,
444 amrex::Vector<amrex::MultiFab>& state_new,
445 amrex::MultiFab& xvel_old, amrex::MultiFab& yvel_old, amrex::MultiFab& zvel_old,
446 amrex::MultiFab& xvel_new, amrex::MultiFab& yvel_new, amrex::MultiFab& zvel_new,
447 amrex::MultiFab& source, amrex::MultiFab& xmom_src,
448 amrex::MultiFab& ymom_src, amrex::MultiFab& zmom_src,
449 amrex::MultiFab& buoyancy, amrex::Geometry fine_geom,
450 double dt,
double time);
453 amrex::MultiFab& cons_in,
454 const double& dt_advance,
455 const int& iteration,
459 amrex::MultiFab& cons_in,
460 amrex::MultiFab& xvel_in,
461 amrex::MultiFab& yvel_in,
463 const double& dt_advance);
466 amrex::MultiFab& cons_in,
467 const double& dt_advance);
469 #ifdef ERF_USE_EAMXX_SHOC
470 void compute_shoc_tendencies (
int lev,
471 amrex::MultiFab*
cons,
472 amrex::MultiFab*
xvel,
473 amrex::MultiFab*
yvel,
474 amrex::MultiFab*
zvel,
476 amrex::MultiFab*
tau13,
477 amrex::MultiFab*
tau23,
478 amrex::MultiFab* hfx3,
479 amrex::MultiFab* qfx3,
480 amrex::MultiFab* eddyDiffs,
482 const double& dt_advance);
486 amrex::MultiFab*
cons,
487 amrex::MultiFab*
xvel,
488 amrex::MultiFab*
yvel,
489 amrex::MultiFab*
zvel,
491 amrex::MultiFab*
tau13,
492 amrex::MultiFab*
tau23,
493 amrex::MultiFab* hfx3,
494 amrex::MultiFab* qfx3,
495 amrex::MultiFab* eddyDiffs,
497 const double& dt_advance);
500 void compute_p3_tendencies (
int lev,
501 amrex::MultiFab& cons_in,
502 amrex::MultiFab& source,
503 const double& dt_advance);
513 void Write3DPlotFile (
int which, PlotFileType plotfile_type, amrex::Vector<std::string> plot_var_names);
514 void Write2DPlotFile (
int which, PlotFileType plotfile_type, amrex::Vector<std::string> plot_var_names);
521 const amrex::Vector<const amrex::MultiFab*> &mf,
522 const amrex::Vector<const amrex::MultiFab*> &mf_nd,
523 const amrex::Vector<std::string> &varnames,
524 const amrex::Vector<amrex::Geometry>& my_geom,
526 const amrex::Vector<int> &level_steps,
527 const amrex::Vector<amrex::IntVect>& my_ref_ratio,
528 const std::string &versionName =
"HyperCLaw-V1.1",
529 const std::string &levelPrefix =
"Level_",
530 const std::string &mfPrefix =
"Cell",
531 const amrex::Vector<std::string>& extra_dirs = amrex::Vector<std::string>())
const;
536 const amrex::Vector<amrex::BoxArray> &bArray,
537 const amrex::Vector<std::string> &varnames,
538 const amrex::Vector<amrex::Geometry>& my_geom,
540 const amrex::Vector<int> &level_steps,
541 const amrex::Vector<amrex::IntVect>& my_ref_ratio,
542 const std::string &versionName,
543 const std::string &levelPrefix,
544 const std::string &mfPrefix)
const;
547 amrex::MultiFab&
dens, amrex::MultiFab&
pres, amrex::MultiFab&
pi,
548 amrex::MultiFab& th, amrex::MultiFab&
qv,
549 std::unique_ptr<amrex::MultiFab>& z_cc);
551 #ifdef ERF_USE_NETCDF
553 void writeToNCColumnFile (
int lev,
566 void init_thin_body (
int lev,
const amrex::BoxArray& ba,
const amrex::DistributionMapping& dm);
569 const std::string& filename,
570 const std::unique_ptr<amrex::MultiFab>&
z_phys_nd,
571 amrex::Vector<amrex::Vector<amrex::MultiFab>>& forecast_state);
574 const std::string& filename,
575 amrex::Vector<amrex::MultiFab>& surface_state);
580 amrex::Vector<std::unique_ptr<amrex::MultiFab>>&
z_phys_nd,
581 bool regrid_forces_file_read);
585 amrex::Vector<std::unique_ptr<amrex::MultiFab>>&
z_phys_nd,
586 bool regrid_forces_file_read);
589 amrex::MultiFab& mf_cc_pert,
590 amrex::MultiFab& cons_pert,
591 amrex::MultiFab& xvel_pert,
592 amrex::MultiFab& yvel_pert,
593 amrex::MultiFab& zvel_pert);
596 amrex::MultiFab& mf_cc_pert);
599 amrex::MultiFab& mf_cc_pert);
607 #ifdef ERF_USE_MULTIBLOCK
610 ERF (
const amrex::RealBox& rb,
int max_level_in,
611 const amrex::Vector<int>& n_cell_in,
int coord,
612 const amrex::Vector<amrex::IntVect>& ref_ratio,
613 const amrex::Array<int,AMREX_SPACEDIM>& is_per,
617 void Evolve_MB (
int MBstep,
int max_block_step);
623 void SetMultiBlockPointer (MultiBlockContainer *mbc) { m_mbc = mbc; }
626 std::vector<amrex::Box> domain_p;
629 amrex::Vector<amrex::Vector<amrex::MultiFab> >
vars_new;
630 amrex::Vector<amrex::Vector<amrex::MultiFab> >
vars_old;
633 amrex::Vector<amrex::Vector<amrex::MultiFab> >
gradp;
636 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
vel_t_avg;
645 #ifdef ERF_USE_NETCDF
647 void fill_from_realbdy (
const amrex::Vector<amrex::MultiFab*>& mfs,
652 amrex::IntVect ngvect_cons,
653 amrex::IntVect ngvect_vels);
656 #ifdef ERF_USE_NETCDF
657 void init_from_wrfinput (
int lev, amrex::MultiFab&
mf_PSFC);
658 void init_from_metgrid (
int lev);
659 void init_from_ncfile (
int lev);
662 #ifdef ERF_USE_WINDFARM
663 void init_windfarm(
int lev);
664 void advance_windfarm (
const amrex::Geometry& a_geom,
665 const double& dt_advance,
666 amrex::MultiFab& cons_in,
667 amrex::MultiFab& U_old,
668 amrex::MultiFab& V_old,
669 amrex::MultiFab& W_old,
670 amrex::MultiFab& mf_vars_windfarm,
671 const amrex::MultiFab& mf_Nturb,
672 const amrex::MultiFab& mf_SMark,
684 bool do_perturbational_and_momenta =
true);
703 void init_zphys (
int lev,
double elapsed_time);
704 void remake_zphys (
int lev, std::unique_ptr<amrex::MultiFab>& temp_zphys_nd);
735 void init_stuff (
int lev,
const amrex::BoxArray& ba,
const amrex::DistributionMapping& dm,
736 amrex::Vector<amrex::MultiFab>& lev_new, amrex::Vector<amrex::MultiFab>& lev_old,
737 amrex::MultiFab& tmp_base_state,
738 std::unique_ptr<amrex::MultiFab>& tmp_zphys_nd);
754 #ifdef ERF_USE_WINDFARM
756 void initializeWindFarm (
const int&);
765 const amrex::Vector<amrex::MultiFab*>& mfs_vel,
766 bool cons_only=
false);
770 const amrex::Vector<amrex::MultiFab*>& mfs_vel,
771 const amrex::Vector<amrex::MultiFab*>& mfs_mom,
772 const amrex::MultiFab& old_base_state,
773 const amrex::MultiFab& new_base_state,
774 bool fillset=
true,
bool cons_only=
false);
785 const amrex::Vector<amrex::MultiFab*>& mfs_vel,
786 const amrex::Vector<amrex::MultiFab*>& mfs_mom,
787 int ng_cons,
int ng_vel,
bool cons_only,
int icomp_cons,
int ncomp_cons);
795 void timeStep (
int lev,
double time,
int iteration);
798 void Advance (
int lev,
double time,
double dt_lev,
int iteration,
int ncycle);
817 void ComputeDt (
int step = -1,
double cur_time_d = 0.0);
823 static amrex::Vector<std::string>
PlotFileVarNames (amrex::Vector<std::string> plot_var_names);
826 void setPlotVariables (
const std::string& pp_plot_var_names, amrex::Vector<std::string>& plot_var_names);
827 void setPlotVariables2D (
const std::string& pp_plot_var_names, amrex::Vector<std::string>& plot_var_names);
829 void appendPlotVariables (
const std::string& pp_plot_var_names, amrex::Vector<std::string>& plot_var_names);
831 void setSubVolVariables (
const std::string& pp_subvol_var_names, amrex::Vector<std::string>& subvol_var_names);
833 #ifdef ERF_USE_NETCDF
835 void createNCColumnFile (
int lev,
839 void init_from_wrfbdy (amrex::Vector<amrex::FArrayBox*> x_vel_lateral,
840 amrex::Vector<amrex::FArrayBox*> y_vel_lateral,
841 amrex::Vector<amrex::FArrayBox*> z_vel_lateral,
842 amrex::Vector<amrex::FArrayBox*> T_lateral);
844 static double start_bdy_time;
845 static double final_bdy_time;
847 static double start_low_time;
848 static double final_low_time;
850 static double bdy_time_interval;
851 static double low_time_interval;
863 amrex::Vector<amrex::Vector<amrex::FArrayBox>> bdy_data_xlo;
864 amrex::Vector<amrex::Vector<amrex::FArrayBox>> bdy_data_xhi;
865 amrex::Vector<amrex::Vector<amrex::FArrayBox>> bdy_data_ylo;
866 amrex::Vector<amrex::Vector<amrex::FArrayBox>> bdy_data_yhi;
868 amrex::Vector<amrex::Vector<amrex::FArrayBox>> low_data_zlo;
875 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
lat_m,
lon_m;
889 amrex::Vector<amrex::Gpu::DeviceVector<amrex::Real>>
th_bc_data;
906 void post_update (amrex::MultiFab& state_mf,
double time,
const amrex::Geometry& geom);
907 void fill_rhs (amrex::MultiFab& rhs_mf,
const amrex::MultiFab& state_mf,
double time,
const amrex::Geometry& geom);
912 std::unique_ptr<ProblemBase>
prob =
nullptr;
924 amrex::Vector<double>
dt;
927 #ifndef ERF_USE_MULTIBLOCK
930 amrex::Vector<amrex::Vector<amrex::MultiFab> >
vars_new;
931 amrex::Vector<amrex::Vector<amrex::MultiFab> >
vars_old;
934 amrex::Vector<amrex::Vector<amrex::MultiFab> >
gradp;
937 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
vel_t_avg;
940 amrex::Vector<std::unique_ptr<MRISplitIntegrator<amrex::Vector<amrex::MultiFab> > > >
mri_integrator_mem;
953 amrex::Vector<std::unique_ptr<ERFPhysBCFunct_u>>
physbcs_u;
954 amrex::Vector<std::unique_ptr<ERFPhysBCFunct_v>>
physbcs_v;
955 amrex::Vector<std::unique_ptr<ERFPhysBCFunct_w>>
physbcs_w;
960 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
Qv_prim;
961 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
Qr_prim;
975 std::unique_ptr<Microphysics>
micro;
978 amrex::Vector<amrex::Vector<amrex::MultiFab*>>
qmoist;
982 #ifdef ERF_USE_WINDFARM
983 std::unique_ptr<WindFarm> windfarm;
984 amrex::Vector<amrex::MultiFab> Nturb;
985 amrex::Vector<amrex::MultiFab> vars_windfarm;
988 amrex::Vector<amrex::MultiFab> SMark;
995 amrex::Vector<amrex::Vector<amrex::MultiFab*>>
lsm_data;
997 amrex::Vector<amrex::Vector<amrex::MultiFab*>>
lsm_flux;
999 amrex::Vector<std::unique_ptr<IRadiation>>
rad;
1002 #ifdef ERF_USE_EAMXX_SHOC
1003 amrex::Vector<std::unique_ptr<SHOCInterface>> eamxx_shoc_interface;
1009 amrex::Vector<std::unique_ptr<P3Interface>> p3_interface;
1024 amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab>>>
Tau;
1025 amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab>>>
Tau_corr;
1030 amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab>>>
sst_lev;
1031 amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab>>>
tsk_lev;
1032 amrex::Vector<amrex::Vector<std::unique_ptr<amrex::iMultiFab>>>
lmask_lev;
1037 amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab>>>
urb_frac_lev;
1047 amrex::Vector<amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab>>>>
Tau_EB;
1048 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
hfx3_EB;
1049 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
qfx3_EB;
1058 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
detJ_cc;
1059 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
ax;
1060 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
ay;
1061 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
az;
1066 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
ax_src;
1067 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
ay_src;
1068 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
az_src;
1073 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
z_t_rk;
1079 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
walldist;
1082 amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab>>>
mapfac;
1094 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
Hwave;
1095 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
Lwave;
1121 amrex::Array<amrex::Array<erf_wall_scalar_bc::WallScalarBCIntent, AMREX_SPACEDIM*2>,
NBCVAR_max>
1243 const amrex::Vector<std::string>
cons_names {
"density",
"rhotheta",
"rhoKE",
"rhoadv_0",
1244 "rhoQ1",
"rhoQ2",
"rhoQ3",
1245 "rhoQ4",
"rhoQ5",
"rhoQ6",
1246 "rhoQ7",
"rhoQ8",
"rhoQ9",
1247 "rhoQ10",
"rhoQ11"};
1252 const amrex::Vector<std::string>
derived_names {
"temp",
"theta",
"KE",
"scalar",
"soundspeed",
1253 "reflectivity",
"max_reflectivity",
"precipitable",
"mucape",
1254 "vorticity_x",
"vorticity_y",
"vorticity_z",
1255 "helicity",
"local_helicity",
1257 "pres_hse",
"dens_hse",
"theta_hse",
"qv_hse",
1258 "pressure",
"pert_pres",
"pert_dens",
1259 "buoyancy",
"eq_pot_temp",
"VPD",
1260 #ifdef ERF_USE_WINDFARM
1261 "num_turb",
"SMark0",
"SMark1",
1263 "dpdx",
"dpdy",
"dpdz",
"pres_hse_x",
"pres_hse_y",
1264 "z_phys",
"detJ",
"mapfac",
"lat_m",
"lon_m",
1266 "u_t_avg",
"v_t_avg",
"w_t_avg",
"umag_t_avg",
1276 "pblh",
"shoc_cldfrac",
"shoc_ql",
"shoc_ql2",
"shoc_cond",
1277 "wqls_sec",
"wthv_sec",
"w_sec",
1278 "thl_sec",
"qw_sec",
"qwthl_sec",
"wthl_sec",
"wqw_sec",
"w3",
1279 "brunt",
"isotropy",
"shear_prod",
"buoy_prod",
"diss_tke",
1285 "moist_density",
"qv",
"qc",
"qi",
"qrain",
"qsnow",
"qgraup",
1286 "qt",
"qn",
"qp",
"qsat",
"nc",
"ni",
"nr",
"ns",
"ng",
1287 "rain_accum",
"snow_accum",
"graup_accum",
1288 "rel_humidity",
"condensation_rate",
1293 #ifdef ERF_COMPUTE_ERROR
1295 ,
"xvel_err",
"yvel_err",
"zvel_err",
"pp_err"
1297 ,
"qsrc_sw",
"qsrc_lw"
1311 #ifdef ERF_USE_PARTICLES
1313 ParticleData particleData;
1316 bool m_use_tracer_particles;
1319 void readTracersParams();
1322 void initializeTracers ( amrex::ParGDBBase*,
1323 const amrex::Vector<std::unique_ptr<amrex::MultiFab>>&,
1327 void restartTracers ( amrex::ParGDBBase*,
const std::string& );
1330 void evolveTracers(
int,
1332 amrex::Vector<amrex::Vector<amrex::MultiFab>>&,
1333 const amrex::Vector<std::unique_ptr<amrex::MultiFab>>& );
1337 #ifdef ERF_USE_MULTIBLOCK
1338 MultiBlockContainer *m_mbc =
nullptr;
1396 amrex::Vector<amrex::BoxArray>
ba1d;
1397 amrex::Vector<amrex::BoxArray>
ba2d;
1405 amrex::Vector<std::unique_ptr<amrex::MultiFab>>
mf_PSFC;
1432 amrex::Vector<amrex::Gpu::DeviceVector<amrex::Real> >
d_w_subsid;
1435 amrex::Vector<amrex::Gpu::DeviceVector<amrex::Real> >
d_u_geos;
1438 amrex::Vector<amrex::Gpu::DeviceVector<amrex::Real> >
d_v_geos;
1442 amrex::Vector<amrex::Real>& u_geos,
1443 amrex::Gpu::DeviceVector<amrex::Real>& u_geos_d,
1444 amrex::Vector<amrex::Real>& v_geos,
1445 amrex::Gpu::DeviceVector<amrex::Real>& v_geos_d,
1446 const amrex::Geometry& lgeom,
1447 const amrex::Vector<amrex::Real>& zlev_stag);
1459 amrex::Vector<amrex::Vector<amrex::Gpu::DeviceVector<amrex::Real> > >
d_sponge_ptrs;
1479 std::unique_ptr<WriteBndryPlanes>
m_w2d =
nullptr;
1480 std::unique_ptr<ReadBndryPlanes>
m_r2d =
nullptr;
1493 static AMREX_FORCE_INLINE
1587 return static_cast<int>(
datalog.size());
1658 int numCores = amrex::ParallelDescriptor::NProcs();
1660 numCores = numCores * omp_get_max_threads();
1664 numCores * (amrex::ParallelDescriptor::second() -
startCPUTime) +
1672 if (amrex::ParallelDescriptor::IOProcessor())
1674 datalog[i] = std::make_unique<std::fstream>();
1677 amrex::FileOpenFailed(filename);
1680 amrex::ParallelDescriptor::Barrier(
"ERF::setRecordDataInfo");
1685 if (amrex::ParallelDescriptor::IOProcessor())
1687 der_datalog[i] = std::make_unique<std::fstream>();
1690 amrex::FileOpenFailed(filename);
1693 amrex::ParallelDescriptor::Barrier(
"ERF::setRecordDerDataInfo");
1698 if (amrex::ParallelDescriptor::IOProcessor())
1703 amrex::FileOpenFailed(filename);
1706 amrex::ParallelDescriptor::Barrier(
"ERF::setRecordEnergyDataInfo");
1711 amrex::MultiFab dummy(grids[lev],dmap[lev],1,0);
1712 for (amrex::MFIter mfi(dummy); mfi.isValid(); ++mfi)
1714 const amrex::Box& bx = mfi.validbox();
1715 if (bx.contains(cell)) {
1716 sampleptlog[i] = std::make_unique<std::fstream>();
1719 amrex::FileOpenFailed(filename);
1723 amrex::ParallelDescriptor::Barrier(
"ERF::setRecordSamplePointInfo");
1728 amrex::MultiFab dummy(grids[lev],dmap[lev],1,0);
1729 for (amrex::MFIter mfi(dummy); mfi.isValid(); ++mfi)
1731 const amrex::Box& bx = mfi.validbox();
1732 if (bx.contains(cell)) {
1736 amrex::FileOpenFailed(filename);
1740 amrex::ParallelDescriptor::Barrier(
"ERF::setRecordSampleLineInfo");
1751 amrex::Vector<std::unique_ptr<std::fstream> >
datalog;
1777 amrex::Vector<std::unique_ptr<eb_>>
eb;
1780 AMREX_ASSERT(lev >= 0 && lev <
eb.size() &&
eb[lev] !=
nullptr);
1784 [[nodiscard]] amrex::EBFArrayBoxFactory
const&
1786 return *(
eb[lev]->get_const_factory());
1801 amrex::Vector<amrex::Vector<std::unique_ptr<amrex::FFT::Poisson<amrex::MultiFab>>>> m_3D_poisson;
1802 amrex::Vector<amrex::Vector<std::unique_ptr<amrex::FFT::PoissonHybrid<amrex::MultiFab>>>> m_2D_poisson;
1809 double artifact_time_seconds)
const;
1813 static void print_usage(MPI_Comm , std::ostream& );
1814 static void print_error(MPI_Comm ,
const std::string& msg);
AMREX_ENUM(StateInterpType, FullState, Perturbational)
constexpr amrex::Real one
Definition: ERF_Constants.H:9
constexpr amrex::Real zero
Definition: ERF_Constants.H:8
@ tau23
Definition: ERF_DataStruct.H:38
@ tau13
Definition: ERF_DataStruct.H:38
Declares the embedded-boundary factory manager used by ERF levels.
Contains the Eulerian microphysics class.
#define NBCVAR_max
Definition: ERF_IndexDefines.H:29
Real T
Definition: ERF_InitCustomPert_Bubble.H:106
Contains the Lagrangian microphysics class.
std::string name
Definition: ERF_Plotfile2DCatalog.cpp:101
amrex::Real Real
Definition: ERF_ShocInterface.H:19
void MakeHorizontalAverages()
Definition: ERF.cpp:2602
amrex::Vector< amrex::MultiFab > rU_new
Definition: ERF.H:965
static int last_check_file_step
Definition: ERF.H:1145
amrex::Vector< std::unique_ptr< amrex::MultiFab > > walldist
Definition: ERF.H:1079
void ConfigureDriverAtmosToOceanCoupling(bool use_coupling_driver, bool use_two_way_coupling, bool use_state_contract)
Definition: ERF_Coupling.cpp:118
amrex::Vector< amrex::Vector< amrex::Vector< amrex::Real > > > h_sponge_ptrs
Definition: ERF.H:1451
void GetOceanToAtmosSurfaceLayout(amrex::BoxArray &ba, amrex::DistributionMapping &dm)
Definition: ERF_Coupling.cpp:134
bool metgrid_basic_linear
Definition: ERF.H:1382
amrex::Vector< amrex::Vector< amrex::Box > > boxes_at_level
Definition: ERF.H:916
amrex::Vector< std::string > samplelinelogname
Definition: ERF.H:1763
int max_step
Definition: ERF.H:1168
void HurricaneTracker(int lev, double time, const amrex::MultiFab &cc_vel, const amrex::Real velmag_threshold, amrex::TagBoxArray *tags=nullptr)
Definition: ERF_RefineHurricane.cpp:109
bool metgrid_debug_msf
Definition: ERF.H:1380
AMREX_FORCE_INLINE std::ostream & DerDataLog(int i)
Definition: ERF.H:1578
amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > mapfac
Definition: ERF.H:1082
void setRayleighRefFromSounding(bool restarting)
Set Rayleigh mean profiles from input sounding.
Definition: ERF_InitRayleigh.cpp:85
void init_only(int lev, double time)
Definition: ERF.cpp:1820
void turbPert_amplitude_w(const int lev)
Definition: ERF_InitTurbPert.cpp:72
amrex::Vector< std::unique_ptr< MRISplitIntegrator< amrex::Vector< amrex::MultiFab > > > > mri_integrator_mem
Definition: ERF.H:940
amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > d_sinesq_stag_ptrs
Definition: ERF.H:1463
void check_vels_for_nans(amrex::MultiFab const &xvel, amrex::MultiFab const &yvel, amrex::MultiFab const &zvel)
Definition: ERF.cpp:2894
void Evolve()
Definition: ERF.cpp:136
amrex::Vector< amrex::MultiFab > avg_xmom
Definition: ERF.H:947
amrex::Vector< amrex::MultiFab > pp_inc
Definition: ERF.H:943
amrex::Vector< ERFFillPatcher > FPr_u
Definition: ERF.H:1019
amrex::Vector< amrex::IntVect > sampleline
Definition: ERF.H:1764
amrex::Vector< std::string > subvol3d_var_names
Definition: ERF.H:1237
amrex::Vector< std::unique_ptr< amrex::MultiFab > > SFS_q1fx3_lev
Definition: ERF.H:1042
amrex::Vector< double > t_new
Definition: ERF.H:922
amrex::Vector< std::unique_ptr< amrex::MultiFab > > Hwave_onegrid
Definition: ERF.H:1096
amrex::Vector< amrex::Vector< amrex::MultiFab > > vars_new
Definition: ERF.H:930
void FillCoarsePatch(int lev, double time)
Definition: ERF_FillCoarsePatch.cpp:20
void WriteAtIntermediateTime(int nstep, double time)
Definition: ERF.cpp:233
ERF(ERF &&) noexcept=delete
bool writeNow(double cur_time, const int nstep, const int plot_int, const double plot_per, const double dt_0, double &last_file_time)
Definition: ERF.cpp:2806
static double startCPUTime
Definition: ERF.H:1652
void FillBdyCCVels(amrex::MultiFab &mf_cc_vel, amrex::Geometry &lev_geom)
Definition: ERF_FillBdyCCVels.cpp:17
AMREX_FORCE_INLINE int NumSampleLineLogs() noexcept
Definition: ERF.H:1621
static double last_plot2d_file_time_1
Definition: ERF.H:1149
static void print_tpls(std::ostream &)
Definition: ERF_ConsoleIO.cpp:140
amrex::Vector< amrex::Real > dz_min
Definition: ERF.H:1491
amrex::Vector< amrex::MultiFab > lagged_delta_rt
Definition: ERF.H:946
amrex::Real plane_sampling_per
Definition: ERF.H:1747
std::string DataLogName(int i) const noexcept
The filename of the ith datalog file.
Definition: ERF.H:1767
std::string plot2d_file_2
Definition: ERF.H:1209
void remake_zphys(int lev, std::unique_ptr< amrex::MultiFab > &temp_zphys_nd)
Definition: ERF_MakeNewArrays.cpp:816
double m_plot3d_per_2
Definition: ERF.H:1221
static double bndry_output_planes_per
Definition: ERF.H:1418
amrex::Vector< std::unique_ptr< amrex::MultiFab > > thin_yforce
Definition: ERF.H:1138
void SetDriverAtmosToOceanStateContract(bool use_state_contract)
Definition: ERF_Coupling.cpp:128
void ErrorEst(int lev, amrex::TagBoxArray &tags, amrex::Real time, int ngrow) override
Definition: ERF_Tagging.cpp:25
amrex::Vector< std::unique_ptr< amrex::MultiFab > > SFS_hfx3_lev
Definition: ERF.H:1040
amrex::Vector< amrex::Vector< amrex::Real > > h_w_subsid
Definition: ERF.H:1431
static void print_banner(MPI_Comm, std::ostream &)
Definition: ERF_ConsoleIO.cpp:63
void volWgtColumnSum(int lev, const amrex::MultiFab &mf, int comp, amrex::MultiFab &mf_2d, const amrex::MultiFab &dJ)
Definition: ERF_VolWgtSum.cpp:82
amrex::Vector< std::unique_ptr< ShocDriver > > native_shoc_driver
Definition: ERF.H:1006
amrex::Vector< std::unique_ptr< std::fstream > > datalog
Definition: ERF.H:1751
std::string MakeFilename_EyeTracker_maxvel(int nstep)
Definition: ERF_TrackerOutput.cpp:69
amrex::Vector< ERFFillPatcher > FPr_v
Definition: ERF.H:1020
int cf_set_width
Definition: ERF.H:1017
std::unique_ptr< amrex::MultiFab > wrf_MUB
Definition: ERF.H:1401
void setPlotVariables(const std::string &pp_plot_var_names, amrex::Vector< std::string > &plot_var_names)
Definition: ERF_Plotfile.cpp:18
amrex::Gpu::DeviceVector< amrex::Real > d_havg_temperature
Definition: ERF.H:1472
void post_timestep(int nstep, double time, double dt_lev)
Definition: ERF.cpp:311
std::unique_ptr< amrex::MultiFab > wrf_C1H
Definition: ERF.H:1399
std::string erfbdy_file
Definition: ERF.H:1393
static int last_plot2d_file_step_2
Definition: ERF.H:1144
const int timeprecision
Definition: ERF.H:1161
void setRecordDataInfo(int i, const std::string &filename)
Definition: ERF.H:1670
amrex::Vector< std::unique_ptr< amrex::MultiFab > > SFS_hfx1_lev
Definition: ERF.H:1040
amrex::Vector< std::array< amrex::Real, 2 > > hurricane_eye_track_xy
Definition: ERF.H:181
void SurfaceDataInterpolation(const int nlevs, const double time, amrex::Vector< std::unique_ptr< amrex::MultiFab >> &z_phys_nd, bool regrid_forces_file_read)
Definition: ERF_SurfaceDataInterpolation.cpp:142
amrex::Vector< amrex::BoxArray > ba2d
Definition: ERF.H:1397
amrex::Array< amrex::Array< amrex::Real, AMREX_SPACEDIM *2 >, AMREX_SPACEDIM+NBCVAR_max > m_bc_extdir_vals
Definition: ERF.H:1113
void init_from_input_sounding(int lev)
Definition: ERF_InitFromInputSounding.cpp:53
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)
Definition: ERF_Init1D.cpp:204
amrex::Vector< amrex::Vector< amrex::MultiFab > > gradp
Definition: ERF.H:934
std::string plot3d_file_1
Definition: ERF.H:1206
eb_ const & get_eb(int lev) const noexcept
Definition: ERF.H:1779
amrex::Gpu::DeviceVector< amrex::Real > d_havg_qv
Definition: ERF.H:1474
amrex::Vector< std::unique_ptr< amrex::MultiFab > > qfx3_EB
Definition: ERF.H:1049
static amrex::Real column_loc_y
Definition: ERF.H:1412
static bool plot_file_on_restart
Definition: ERF.H:1156
amrex::Vector< amrex::Vector< amrex::MultiFab > > bckgnd_state
Definition: ERF.H:194
static int mg_verbose
Definition: ERF.H:1342
double m_check_per
Definition: ERF.H:1235
void ReadParameters()
Definition: ERF.cpp:1964
static double sum_per
Definition: ERF.H:1350
static amrex::Vector< std::string > PlotFileVarNames(amrex::Vector< std::string > plot_var_names)
Definition: ERF_Plotfile.cpp:236
amrex::Vector< amrex::Vector< amrex::MultiFab > > forecast_state_interp
Definition: ERF.H:189
bool FindInitialEye(int lev, const amrex::MultiFab &cc_vel, const amrex::Real velmag_threshold, amrex::Real &eye_x, amrex::Real &eye_y)
Definition: ERF_RefineHurricane.cpp:11
void InitializeFromFile()
amrex::Vector< std::unique_ptr< ERFPhysBCFunct_cons > > physbcs_cons
Definition: ERF.H:952
amrex::Vector< double > dt
Definition: ERF.H:924
static double stop_time
Definition: ERF.H:1172
void advance_lsm(int lev, amrex::MultiFab &cons_in, amrex::MultiFab &xvel_in, amrex::MultiFab &yvel_in, const double &time, const double &dt_advance)
Definition: ERF_AdvanceLSM.cpp:5
amrex::Vector< std::unique_ptr< amrex::MultiFab > > mf_PSFC
Definition: ERF.H:1405
ERF()
Definition: ERF_Constructors.cpp:21
void init_Dirichlet_bc_data(const std::string input_file)
Definition: ERF_InitBCs.cpp:703
amrex::Vector< std::unique_ptr< amrex::MultiFab > > z_phys_nd_src
Definition: ERF.H:1063
amrex::Vector< std::unique_ptr< amrex::MultiFab > > detJ_cc
Definition: ERF.H:1058
amrex::Vector< std::string > lsm_flux_name
Definition: ERF.H:996
amrex::Vector< std::unique_ptr< amrex::MultiFab > > z_phys_cc
Definition: ERF.H:1056
static double column_per
Definition: ERF.H:1410
amrex::Vector< std::unique_ptr< eb_ > > eb
Definition: ERF.H:1777
amrex::Vector< std::unique_ptr< amrex::MultiFab > > eddyDiffs_lev
Definition: ERF.H:1026
static SolverChoice solverChoice
Definition: ERF.H:1306
amrex::Vector< std::unique_ptr< amrex::MultiFab > > hfx3_EB
Definition: ERF.H:1048
amrex::Vector< ERFFillPatcher > FPr_c
Definition: ERF.H:1018
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
Definition: ERF_Plotfile.cpp:2090
void update_box_for_refinement(std::string &ref_prefix, int &lev_for_box, amrex::RealBox &real_box, const double time)
Definition: ERF_RefineBox.cpp:336
bool plot_rad
Definition: ERF.H:1012
amrex::Vector< std::array< amrex::Real, 2 > > hurricane_tracker_circle
Definition: ERF.H:185
static bool use_fft
Definition: ERF.H:1343
bool m_plot_face_vels
Definition: ERF.H:1224
amrex::Vector< std::array< amrex::Real, 2 > > hurricane_maxvel_vs_time
Definition: ERF.H:183
void turbPert_update(const int lev, const double dt)
Definition: ERF_InitTurbPert.cpp:18
void sum_derived_quantities(double time)
Definition: ERF_WriteScalarProfiles.cpp:181
amrex::Vector< amrex::MultiFab > base_state_new
Definition: ERF.H:1091
std::string plot3d_file_2
Definition: ERF.H:1207
amrex::Vector< std::unique_ptr< amrex::MultiFab > > az
Definition: ERF.H:1061
int regrid_int
Definition: ERF.H:1199
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)
Definition: ERF_Write1DProfiles.cpp:210
bool write_erfbdy
Definition: ERF.H:1391
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)
Definition: ERF_SolveWithGMRES.cpp:28
amrex::Vector< amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > > d_sponge_ptrs
Definition: ERF.H:1459
amrex::Vector< long > dt_mri_ratio
Definition: ERF.H:925
amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > Tau
Definition: ERF.H:1024
amrex::Vector< std::unique_ptr< amrex::MultiFab > > vel_t_avg
Definition: ERF.H:937
amrex::Vector< std::unique_ptr< amrex::MultiFab > > SFS_q2fx3_lev
Definition: ERF.H:1043
void HurricaneEyeTrackerNotInitial(const SolverChoice &sc, const amrex::Geometry &geom, const amrex::Vector< amrex::MultiFab > &S_data, MoistureType moisture_type)
Definition: ERF_HurricaneDiagnostics.cpp:250
amrex::Vector< amrex::Vector< std::unique_ptr< amrex::iMultiFab > > > lmask_lev
Definition: ERF.H:1032
AMREX_FORCE_INLINE int NumSamplePointLogs() noexcept
Definition: ERF.H:1607
amrex::Vector< amrex::Real > h_havg_pressure
Definition: ERF.H:1467
void update_diffusive_arrays(int lev, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm)
Definition: ERF_MakeNewArrays.cpp:529
std::unique_ptr< amrex::MultiFab > wrf_PHB
Definition: ERF.H:1403
static int verbose
Definition: ERF.H:1341
amrex::Vector< amrex::Real > h_havg_qc
Definition: ERF.H:1469
amrex::Vector< std::unique_ptr< ERFPhysBCFunct_w > > physbcs_w
Definition: ERF.H:955
static int nghost_eb_basic()
Definition: ERF.H:1789
void post_update(amrex::MultiFab &state_mf, double time, const amrex::Geometry &geom)
void AverageDownMoistStateTo(int crse_lev)
Conservation-preserving fine-to-coarse average of RhoTheta and the active moist conserved components ...
Definition: ERF_AverageDown.cpp:243
amrex::Vector< double > last_subvol_time
Definition: ERF.H:1154
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)
Definition: ERF_WeatherDataInterpolation.cpp:64
static std::string column_file_name
Definition: ERF.H:1413
amrex::Vector< std::unique_ptr< std::fstream > > samplelinelog
Definition: ERF.H:1762
amrex::Vector< std::unique_ptr< amrex::MultiFab > > terrain_blanking
Definition: ERF.H:1076
std::unique_ptr< Microphysics > micro
Definition: ERF.H:975
int m_plot2d_int_2
Definition: ERF.H:1215
amrex::Vector< amrex::MultiFab > base_state
Definition: ERF.H:1090
void fill_rhs(amrex::MultiFab &rhs_mf, const amrex::MultiFab &state_mf, double time, const amrex::Geometry &geom)
AMREX_FORCE_INLINE amrex::YAFluxRegister * getAdvFluxReg(int lev)
Definition: ERF.H:1564
int m_plot3d_int_1
Definition: ERF.H:1212
amrex::Vector< amrex::Real > h_havg_density
Definition: ERF.H:1465
static double last_plot2d_file_time_2
Definition: ERF.H:1150
amrex::Vector< std::unique_ptr< amrex::MultiFab > > z_phys_nd_new
Definition: ERF.H:1070
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)
Definition: ERF_Write1DProfiles_stag.cpp:316
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)
Definition: ERF_InitForEnsemble.cpp:695
const amrex::Vector< std::string > derived_subvol_names
Definition: ERF.H:1303
amrex::Vector< std::array< amrex::Real, 2 > > hurricane_minpressure_vs_time
Definition: ERF.H:184
bool metgrid_retain_sfc
Definition: ERF.H:1385
amrex::Vector< std::unique_ptr< amrex::MultiFab > > Qv_prim
Definition: ERF.H:960
static int sum_interval
Definition: ERF.H:1348
static int pert_interval
Definition: ERF.H:1349
amrex::Real line_sampling_per
Definition: ERF.H:1746
void restart()
Definition: ERF.cpp:1754
amrex::Vector< double > t_avg_cnt
Definition: ERF.H:938
static int last_plot3d_file_step_2
Definition: ERF.H:1142
amrex::Vector< std::unique_ptr< amrex::MultiFab > > SFS_q1fx2_lev
Definition: ERF.H:1042
amrex::Vector< double > fixed_fast_dt
Definition: ERF.H:1194
amrex::IntVect & SampleLine(int i)
Definition: ERF.H:1640
void build_fine_mask(int lev, amrex::MultiFab &fine_mask)
Definition: ERF_VolWgtSum.cpp:125
void HurricaneMaxVelTracker(const amrex::Geometry &geom, const amrex::MultiFab &mf_cc_vel, const double &time)
Definition: ERF_HurricaneDiagnostics.cpp:501
int file_name_digits
Definition: ERF.H:1358
amrex::Vector< amrex::MultiFab > rV_new
Definition: ERF.H:967
std::string PlotFileName(int lev) const
void initialize_integrator(int lev, amrex::MultiFab &cons_mf, amrex::MultiFab &vel_mf)
Definition: ERF_MakeNewArrays.cpp:898
amrex::Vector< std::unique_ptr< amrex::MultiFab > > thin_zforce
Definition: ERF.H:1139
amrex::Vector< std::string > plot3d_var_names_2
Definition: ERF.H:1240
void sample_points(int lev, double time, amrex::IntVect cell, amrex::MultiFab &mf)
Definition: ERF_WriteScalarProfiles.cpp:536
void WeatherDataInterpolation(const int nlevs, const double time, amrex::Vector< std::unique_ptr< amrex::MultiFab >> &z_phys_nd, bool regrid_forces_file_read)
Definition: ERF_WeatherDataInterpolation.cpp:358
amrex::Vector< amrex::BCRec > domain_bcs_type
Definition: ERF.H:1106
amrex::Vector< std::unique_ptr< amrex::MultiFab > > Qr_prim
Definition: ERF.H:961
void apply_gaussian_smoothing_to_perturbations(const int lev, amrex::MultiFab &mf_cc_pert)
Definition: ERF_InitForEnsemble.cpp:103
std::string pp_prefix
Definition: ERF.H:640
std::string SampleLineLogName(int i) const noexcept
The filename of the ith samplelinelog file.
Definition: ERF.H:1774
amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > sst_lev
Definition: ERF.H:1030
amrex::Vector< std::string > plot2d_var_names_1
Definition: ERF.H:1241
void init_phys_bcs(bool &read_prim_theta)
Definition: ERF_InitBCs.cpp:26
amrex::Vector< std::unique_ptr< amrex::MultiFab > > thin_xforce
Definition: ERF.H:1137
AMREX_FORCE_INLINE int NumSamplePoints() noexcept
Definition: ERF.H:1634
bool metgrid_use_sfc
Definition: ERF.H:1384
void sample_lines(int lev, double time, amrex::IntVect cell, amrex::MultiFab &mf)
Definition: ERF_WriteScalarProfiles.cpp:572
void setPlotVariables2D(const std::string &pp_plot_var_names, amrex::Vector< std::string > &plot_var_names)
Definition: ERF_Plotfile2D.cpp:113
void init_custom(int lev)
Definition: ERF_InitCustomPertState.cpp:26
amrex::Vector< std::unique_ptr< IRadiation > > rad
Definition: ERF.H:999
void ComputeAndWriteEnsemblePerturbations()
std::unique_ptr< ProblemBase > prob
Definition: ERF.H:912
amrex::Vector< int > num_files_at_level
Definition: ERF.H:915
static double last_plot3d_file_time_2
Definition: ERF.H:1148
void init_bcs()
Definition: ERF_InitBCs.cpp:297
int profile_int
Definition: ERF.H:1229
erf_cloud_chamber::Config cloud_chamber_config
Definition: ERF.H:977
bool metgrid_debug_quiescent
Definition: ERF.H:1376
amrex::Vector< std::unique_ptr< ERFPhysBCFunct_u > > physbcs_u
Definition: ERF.H:953
bool destag_profiles
Definition: ERF.H:1230
amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > stretched_dz_d
Definition: ERF.H:1088
amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > th_bc_data
Definition: ERF.H:889
std::string DerDataLogName(int i) const noexcept
Definition: ERF.H:1768
void compute_max_pressure_gradient_diagnostic(int lev)
Definition: ERF_Diagnostics.cpp:12
void HurricaneEyeTracker(const SolverChoice &solverChoice)
Definition: ERF_HurricaneDiagnostics.cpp:475
void project_momenta(int lev, double l_time, double l_dt, amrex::Vector< amrex::MultiFab > &vars)
Definition: ERF_PoissonSolve.cpp:115
int m_check_int
Definition: ERF.H:1234
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)
Definition: ERF_HurricaneDiagnostics.cpp:175
void ReadVelsOnlyFromCheckpointFile(int lev_to_fill, std::string &chkfile)
Definition: ERF_Checkpoint.cpp:1235
static double last_plot3d_file_time_1
Definition: ERF.H:1147
double m_plot2d_per_2
Definition: ERF.H:1223
amrex::Vector< amrex::MultiFab > surface_state_1
Definition: ERF.H:190
amrex::Vector< std::unique_ptr< amrex::MultiFab > > SFS_diss_lev
Definition: ERF.H:1041
amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > d_sinesq_ptrs
Definition: ERF.H:1462
amrex::Vector< amrex::MultiFab > rU_old
Definition: ERF.H:964
AMREX_FORCE_INLINE int NumSampleLines() noexcept
Definition: ERF.H:1647
amrex::Array< bool, AMREX_SPACEDIM *2 > m_bc_nonreflecting
Definition: ERF.H:1125
amrex::Vector< std::unique_ptr< amrex::MultiFab > > Theta_prim
Definition: ERF.H:959
static double getCPUTime()
Definition: ERF.H:1656
void write_1D_profiles(double time)
Definition: ERF_Write1DProfiles.cpp:20
amrex::Vector< std::unique_ptr< amrex::MultiFab > > z_t_rk
Definition: ERF.H:1073
static int check_for_nans
Definition: ERF.H:1345
void make_subdomains(const amrex::BoxList &ba, amrex::Vector< amrex::BoxArray > &bins)
Definition: ERF_MakeSubdomains.cpp:6
void compute_divergence(int lev, amrex::MultiFab &rhs, amrex::Array< amrex::MultiFab const *, AMREX_SPACEDIM > rho0_u_const, amrex::Geometry const &geom_at_lev)
Definition: ERF_ComputeDivergence.cpp:18
std::string MakeVTKFilename(int nstep)
Definition: ERF_TrackerOutput.cpp:14
void initRayleigh_at_level(const int &lev)
Initialize Rayleigh damping profiles at a level.
Definition: ERF_InitRayleigh.cpp:16
void appendPlotVariables(const std::string &pp_plot_var_names, amrex::Vector< std::string > &plot_var_names)
Definition: ERF_Plotfile.cpp:155
void read_box_for_refinement(std::string &ref_prefix, int &lev_for_box, amrex::RealBox &real_box)
Definition: ERF_RefineBox.cpp:6
int nvars_erfbdy
Definition: ERF.H:1394
amrex::Vector< std::unique_ptr< ERFPhysBCFunct_v > > physbcs_v
Definition: ERF.H:954
amrex::Vector< double > t_old
Definition: ERF.H:923
amrex::Vector< std::string > tot_e_datalogname
Definition: ERF.H:1756
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)
Definition: ERF_FillIntermediatePatch.cpp:26
static int output_bndry_planes
Definition: ERF.H:1416
void project_velocity_tb(int lev, double dt, amrex::Vector< amrex::MultiFab > &vars)
Definition: ERF_PoissonSolve_tb.cpp:35
amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > d_v_geos
Definition: ERF.H:1438
void update_terrain_arrays(int lev)
Definition: ERF_MakeNewArrays.cpp:881
static std::string nc_bdy_file
Definition: ERF.H:1368
bool metgrid_interp_theta
Definition: ERF.H:1381
static amrex::Vector< amrex::Vector< std::string > > nc_init_file
Definition: ERF.H:1364
static int input_bndry_planes
Definition: ERF.H:1422
static StateInterpType interpolation_type
Definition: ERF.H:1361
amrex::Gpu::DeviceVector< amrex::Real > d_havg_qc
Definition: ERF.H:1475
amrex::Real cloud_fraction(double time)
Definition: ERF_WriteScalarProfiles.cpp:460
void AverageDown()
Definition: ERF_AverageDown.cpp:16
amrex::Vector< amrex::Vector< amrex::Real > > h_v_geos
Definition: ERF.H:1437
bool regrid_level_0_on_restart
Definition: ERF.H:1203
amrex::Vector< std::unique_ptr< amrex::MultiFab > > Lwave_onegrid
Definition: ERF.H:1097
void advance_microphysics(int lev, amrex::MultiFab &cons_in, const double &dt_advance, const int &iteration, const double &time)
Definition: ERF_AdvanceMicrophysics.cpp:5
InputSoundingData input_sounding_data
Definition: ERF.H:880
void write_1D_profiles_stag(double time)
Definition: ERF_Write1DProfiles_stag.cpp:28
void ApplyOceanSurfaceState(const amrex::Vector< amrex::MultiFab * > &state, double time)
Definition: ERF_Coupling.cpp:512
amrex::Vector< amrex::Vector< amrex::Real > > h_sinesq_ptrs
Definition: ERF.H:1454
void create_random_perturbations(const int lev, amrex::MultiFab &mf_cc_pert)
Definition: ERF_InitForEnsemble.cpp:20
void Write2DPlotFile(int which, PlotFileType plotfile_type, amrex::Vector< std::string > plot_var_names)
Definition: ERF_Plotfile2D.cpp:155
amrex::Gpu::DeviceVector< amrex::Real > d_havg_density
Definition: ERF.H:1471
amrex::Vector< std::unique_ptr< amrex::MultiFab > > rhotheta_src
Definition: ERF.H:1428
void init_from_hse(int lev)
Definition: ERF_InitFromHSE.cpp:32
const std::string datetime_format
Definition: ERF.H:1175
amrex::Vector< amrex::YAFluxRegister * > advflux_reg
Definition: ERF.H:1101
void check_mesh_type(int lev)
Definition: ERF.cpp:2994
erf_provenance::ExecutionProvenance execution_provenance
Definition: ERF.H:1182
int metgrid_force_sfc_k
Definition: ERF.H:1388
void setSubVolVariables(const std::string &pp_subvol_var_names, amrex::Vector< std::string > &subvol_var_names)
Definition: ERF_WriteSubvolume.cpp:12
static int ng_pres_hse
Definition: ERF.H:1425
bool real_extrap_w
Definition: ERF.H:1370
static amrex::Real cfl
Definition: ERF.H:1185
amrex::Vector< std::unique_ptr< amrex::MultiFab > > fine_mask
Definition: ERF.H:1085
amrex::Gpu::DeviceVector< amrex::BCRec > domain_bcs_type_d
Definition: ERF.H:1107
amrex::Vector< std::unique_ptr< ForestDrag > > m_forest_drag
Definition: ERF.H:1482
const int datwidth
Definition: ERF.H:1159
amrex::Vector< amrex::BoxArray > ba1d
Definition: ERF.H:1396
InputSpongeData input_sponge_data
Definition: ERF.H:883
amrex::Vector< amrex::Vector< amrex::BoxArray > > subdomains
Definition: ERF.H:1489
void check_state_for_nans(amrex::MultiFab const &S)
Definition: ERF.cpp:2827
std::string restart_chkfile
Definition: ERF.H:1178
bool metgrid_use_below_sfc
Definition: ERF.H:1383
amrex::Vector< std::string > sampleptlogname
Definition: ERF.H:1759
amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > xvel_bc_data
Definition: ERF.H:886
void InitData_pre()
Definition: ERF.cpp:527
amrex::IntVect & SamplePoint(int i)
Definition: ERF.H:1627
bool use_datetime
Definition: ERF.H:1174
amrex::Vector< std::array< amrex::Real, 2 > > hurricane_track_xy
Definition: ERF.H:180
amrex::Vector< amrex::Vector< amrex::Real > > h_u_geos
Definition: ERF.H:1434
void InitializeLevelFromData(int lev, const amrex::MultiFab &initial_data)
std::string subvol_file
Definition: ERF.H:1210
int rad_datalog_int
Definition: ERF.H:1013
amrex::Vector< std::string > datalogname
Definition: ERF.H:1754
void initHSE()
Initialize HSE.
Definition: ERF_Init1D.cpp:184
void AverageDownTo(int crse_lev, int scomp, int ncomp, bool do_perturbational_and_momenta=true)
Definition: ERF_AverageDown.cpp:36
static amrex::Real column_loc_x
Definition: ERF.H:1411
static double dt_max
Definition: ERF.H:1190
amrex::Vector< amrex::MultiFab > surface_state_2
Definition: ERF.H:191
amrex::Vector< std::unique_ptr< amrex::MultiFab > > ax
Definition: ERF.H:1059
amrex::Vector< std::unique_ptr< amrex::MultiFab > > z_phys_nd
Definition: ERF.H:1055
void MakeDiagnosticAverage(amrex::Vector< amrex::Real > &h_havg, amrex::MultiFab &S, int n)
Definition: ERF.cpp:2708
amrex::Real metgrid_proximity
Definition: ERF.H:1386
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)
Definition: ERF_VolWgtSum.cpp:20
void setRecordDerDataInfo(int i, const std::string &filename)
Definition: ERF.H:1683
amrex::Vector< amrex::Real > h_havg_temperature
Definition: ERF.H:1466
amrex::Vector< std::unique_ptr< std::fstream > > sampleptlog
Definition: ERF.H:1758
void poisson_wall_dist(int lev)
Definition: ERF_PoissonWallDist.cpp:27
amrex::Vector< std::array< amrex::Real, 2 > > hurricane_eye_track_latlon
Definition: ERF.H:182
amrex::Vector< std::unique_ptr< amrex::MultiFab > > detJ_cc_src
Definition: ERF.H:1065
amrex::Gpu::DeviceVector< amrex::Real > d_havg_pressure
Definition: ERF.H:1473
static bool is_it_time_for_action(int nstep, double time, double dt, int action_interval, double action_per)
Definition: ERF_WriteScalarProfiles.cpp:662
std::string plot2d_file_1
Definition: ERF.H:1208
void Advance(int lev, double time, double dt_lev, int iteration, int ncycle)
Definition: ERF_Advance.cpp:20
amrex::Vector< std::string > der_datalogname
Definition: ERF.H:1755
amrex::Vector< std::unique_ptr< amrex::MultiFab > > SmnSmn_lev
Definition: ERF.H:1027
const amrex::Vector< std::string > derived_names
Definition: ERF.H:1252
void sum_integrated_quantities(double time)
Definition: ERF_WriteScalarProfiles.cpp:18
std::string MakeVTKFilename_TrackerCircle(int nstep)
Definition: ERF_TrackerOutput.cpp:27
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)
Definition: ERF_HurricaneDiagnostics.cpp:36
amrex::Vector< std::unique_ptr< amrex::MultiFab > > ay_src
Definition: ERF.H:1067
void ComputeDt(int step=-1, double cur_time_d=0.0)
Definition: ERF_ComputeTimestep.cpp:11
AMREX_FORCE_INLINE std::ostream & DataLog(int i)
Definition: ERF.H:1571
std::string MakeVTKFilename_EyeTracker_xy(int nstep)
Definition: ERF_TrackerOutput.cpp:41
amrex::Vector< double > m_subvol_per
Definition: ERF.H:1218
amrex::Vector< int > nsubsteps
Definition: ERF.H:919
amrex::Vector< std::unique_ptr< amrex::iMultiFab > > yflux_imask
Definition: ERF.H:1132
amrex::Vector< amrex::MultiFab > rW_new
Definition: ERF.H:969
amrex::Vector< amrex::MultiFab > weather_forecast_data_2
Definition: ERF.H:186
amrex::Vector< std::unique_ptr< amrex::MultiFab > > lon_m
Definition: ERF.H:875
std::unique_ptr< WriteBndryPlanes > m_w2d
Definition: ERF.H:1479
AMREX_FORCE_INLINE std::ostream & SampleLineLog(int i)
Definition: ERF.H:1614
void HurricaneMinPressureTracker(MoistureType moisture_type, const amrex::Geometry &geom, const amrex::MultiFab &mf_cons_var, const double &time)
Definition: ERF_HurricaneDiagnostics.cpp:556
amrex::Vector< amrex::Vector< amrex::MultiFab * > > lsm_flux
Definition: ERF.H:997
double EvolveOneStep(double time, double dt_request)
Definition: ERF_Coupling.cpp:92
bool use_erfbdy
Definition: ERF.H:1392
amrex::Vector< std::string > plot3d_var_names_1
Definition: ERF.H:1239
std::string SamplePointLogName(int i) const noexcept
The filename of the ith sampleptlog file.
Definition: ERF.H:1771
void InitData_post()
Definition: ERF.cpp:559
void refinement_criteria_setup()
Definition: ERF_Tagging.cpp:472
double estTimeStep(int lev, long &dt_fast_ratio) const
Definition: ERF_ComputeTimestep.cpp:60
static int nghost_eb_volume()
Definition: ERF.H:1793
bool metgrid_debug_dry
Definition: ERF.H:1378
static AMREX_FORCE_INLINE int ComputeGhostCells(const SolverChoice &sc)
Definition: ERF.H:1495
static int bndry_output_planes_interval
Definition: ERF.H:1417
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)
Definition: ERF_InitGeowind.cpp:21
void ERF_shared()
Definition: ERF_Constructors.cpp:61
amrex::Vector< std::string > plot2d_var_names_2
Definition: ERF.H:1242
amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > Tau_corr
Definition: ERF.H:1025
void FillPatchCrseLevel(int lev, double time, const amrex::Vector< amrex::MultiFab * > &mfs_vel, bool cons_only=false)
Definition: ERF_FillPatch.cpp:302
void WriteSubvolume(int isub, amrex::Vector< std::string > subvol_var_names)
Definition: ERF_WriteSubvolume.cpp:148
void sum_energy_quantities(double time)
Definition: ERF_WriteScalarProfiles.cpp:320
static int nghost_eb_full()
Definition: ERF.H:1796
void RemakeLevel(int lev, amrex::Real time, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) override
Definition: ERF_MakeNewLevel.cpp:562
static void GotoNextLine(std::istream &is)
Definition: ERF_Checkpoint.cpp:28
void MakeNewLevelFromScratch(int lev, amrex::Real time, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) override
Definition: ERF_MakeNewLevel.cpp:25
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)
Definition: ERF_MakeNewArrays.cpp:24
amrex::Vector< amrex::MultiFab > zmom_crse_rhs
Definition: ERF.H:973
void advance_radiation(int lev, amrex::MultiFab &cons_in, const double &dt_advance)
Definition: ERF_AdvanceRadiation.cpp:5
bool metgrid_debug_isothermal
Definition: ERF.H:1377
void PerformDataAssimilation(int da_iter)
amrex::Vector< std::string > lsm_data_name
Definition: ERF.H:994
amrex::Vector< std::unique_ptr< amrex::MultiFab > > rhoqt_src
Definition: ERF.H:1429
void initSponge()
Initialize sponge profiles.
Definition: ERF_InitSponge.cpp:35
std::unique_ptr< PlaneSampler > plane_sampler
Definition: ERF.H:1749
void check_for_low_temp(amrex::MultiFab &S)
Definition: ERF.cpp:2921
amrex::Vector< std::unique_ptr< std::fstream > > der_datalog
Definition: ERF.H:1752
static amrex::Vector< amrex::Vector< int > > have_read_nc_init_file
Definition: ERF.H:1365
amrex::Vector< std::unique_ptr< std::fstream > > tot_e_datalog
Definition: ERF.H:1753
amrex::Vector< std::unique_ptr< amrex::MultiFab > > sinPhi_m
Definition: ERF.H:877
static double previousCPUTimeUsed
Definition: ERF.H:1653
void writeJobInfo(const std::string &dir, erf_provenance::ArtifactType artifact_type, int artifact_step, double artifact_time_seconds) const
Definition: ERF_WriteJobInfo.cpp:15
bool m_driver_has_atm2ocn_coupling
Definition: ERF.H:707
double m_plot3d_per_1
Definition: ERF.H:1220
int real_width
Definition: ERF.H:1369
void MakeNewLevelFromCoarse(int lev, amrex::Real time, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) override
Definition: ERF_MakeNewLevel.cpp:278
amrex::Vector< int > last_subvol_step
Definition: ERF.H:1153
void fill_from_bndryregs(const amrex::Vector< amrex::MultiFab * > &mfs, double time)
Definition: ERF_BoundaryConditionsBndryReg.cpp:13
amrex::Vector< std::unique_ptr< amrex::MultiFab > > ax_src
Definition: ERF.H:1066
amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > urb_frac_lev
Definition: ERF.H:1037
amrex::Vector< std::unique_ptr< amrex::MultiFab > > z_phys_cc_src
Definition: ERF.H:1064
void input_sponge(int lev)
Definition: ERF_InitSponge.cpp:17
amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > d_u_geos
Definition: ERF.H:1435
bool m_driver_uses_two_way_coupling
Definition: ERF.H:708
void Define_ERFFillPatchers(int lev)
Definition: ERF.cpp:2780
AMREX_FORCE_INLINE int NumDataLogs() noexcept
Definition: ERF.H:1585
static PlotFileType plotfile3d_type_2
Definition: ERF.H:1354
void setRecordEnergyDataInfo(int i, const std::string &filename)
Definition: ERF.H:1696
TurbulentPerturbation turbPert
Definition: ERF.H:1309
amrex::Vector< amrex::MultiFab > rW_old
Definition: ERF.H:968
amrex::Vector< double > fixed_dt
Definition: ERF.H:1193
amrex::Vector< amrex::Vector< amrex::MultiFab > > forecast_state_2
Definition: ERF.H:188
void check_for_negative_theta(amrex::MultiFab &S)
Definition: ERF.cpp:2956
void ImposeBCsOnPhi(int lev, amrex::MultiFab &phi, const amrex::Box &subdomain)
Definition: ERF_ImposeBCsOnPhi.cpp:19
void Interp2DArrays(int lev, const amrex::BoxArray &my_ba2d, const amrex::DistributionMapping &my_dm)
Definition: ERF.cpp:1522
void ClearLevel(int lev) override
Definition: ERF_MakeNewLevel.cpp:840
std::string MakeFilename_EyeTracker_minpressure(int nstep)
Definition: ERF_TrackerOutput.cpp:83
std::unique_ptr< amrex::MultiFab > wrf_RDNW
Definition: ERF.H:1402
std::unique_ptr< SurfaceLayer > m_SurfaceLayer
Definition: ERF.H:1481
static double dt_max_initial
Definition: ERF.H:1189
static PlotFileType plotfile2d_type_2
Definition: ERF.H:1356
int plane_sampling_interval
Definition: ERF.H:1745
static amrex::Vector< amrex::AMRErrorTag > ref_tags
Definition: ERF.H:1487
void make_physbcs(int lev)
Definition: ERF_MakeNewArrays.cpp:920
amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > d_w_subsid
Definition: ERF.H:1432
amrex::Vector< ERFFillPatcher > FPr_w
Definition: ERF.H:1021
amrex::Vector< std::unique_ptr< amrex::MultiFab > > SFS_hfx2_lev
Definition: ERF.H:1040
void WriteLinePlot(const std::string &filename, amrex::Vector< std::array< amrex::Real, 2 >> &points_xy)
Definition: ERF_Write1DProfiles.cpp:607
amrex::Vector< amrex::Vector< std::unique_ptr< amrex::iMultiFab > > > soil_type_lev
Definition: ERF.H:1036
amrex::Vector< amrex::Vector< amrex::Real > > zlevels_stag
Definition: ERF.H:1052
AMREX_FORCE_INLINE int NumDerDataLogs() noexcept
Definition: ERF.H:1592
amrex::EBFArrayBoxFactory const & EBFactory(int lev) const noexcept
Definition: ERF.H:1785
amrex::Vector< amrex::Vector< amrex::MultiFab * > > lsm_data
Definition: ERF.H:995
void init_immersed_forcing(int lev)
Definition: ERF_InitImmersedForcing.cpp:15
amrex::Vector< amrex::Vector< amrex::Real > > stretched_dz_h
Definition: ERF.H:1087
bool use_real_time_in_pltname
Definition: ERF.H:1359
int m_plot2d_int_1
Definition: ERF.H:1214
void WriteCheckpointFile() const
Definition: ERF_Checkpoint.cpp:38
amrex::Array< amrex::Array< erf_wall_scalar_bc::WallScalarBCIntent, AMREX_SPACEDIM *2 >, NBCVAR_max > m_wall_scalar_bc_intent
Definition: ERF.H:1122
static int output_1d_column
Definition: ERF.H:1408
bool metgrid_debug_psfc
Definition: ERF.H:1379
void ReadStormTrackerRestart()
Definition: ERF_HurricaneDiagnostics.cpp:315
amrex::Vector< std::unique_ptr< amrex::MultiFab > > az_src
Definition: ERF.H:1068
static int fixed_mri_dt_ratio
Definition: ERF.H:1195
static amrex::Real init_shrink
Definition: ERF.H:1187
void WriteVTKPolyline(const std::string &filename, amrex::Vector< std::array< amrex::Real, 2 >> &points_xy)
Definition: ERF_TrackerOutput.cpp:97
void Write3DPlotFile(int which, PlotFileType plotfile_type, amrex::Vector< std::string > plot_var_names)
Definition: ERF_Plotfile.cpp:248
void HurricaneTrackerCircle()
Definition: ERF_HurricaneDiagnostics.cpp:149
static double last_check_file_time
Definition: ERF.H:1151
static std::string nc_low_file
Definition: ERF.H:1373
amrex::Vector< amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > > d_rayleigh_ptrs
Definition: ERF.H:1458
void InitData()
Definition: ERF.cpp:518
amrex::Vector< std::unique_ptr< amrex::MultiFab > > Lwave
Definition: ERF.H:1095
amrex::Vector< std::unique_ptr< amrex::MultiFab > > cosPhi_m
Definition: ERF.H:877
void ParameterSanityChecks()
Definition: ERF.cpp:2509
amrex::Vector< amrex::Vector< std::unique_ptr< amrex::iMultiFab > > > land_type_lev
Definition: ERF.H:1035
static double start_time
Definition: ERF.H:1171
void init_zphys(int lev, double elapsed_time)
Definition: ERF_MakeNewArrays.cpp:688
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)
Definition: ERF_Write1DProfiles.cpp:508
amrex::Vector< amrex::Vector< amrex::MultiFab > > forecast_state_1
Definition: ERF.H:187
int cf_width
Definition: ERF.H:1016
static int last_plot2d_file_step_1
Definition: ERF.H:1143
amrex::Vector< std::unique_ptr< amrex::iMultiFab > > zflux_imask
Definition: ERF.H:1133
bool m_expand_plotvars_to_unif_rr
Definition: ERF.H:1211
std::unique_ptr< CloudChamberBudget > cloud_chamber_budget
Definition: ERF.H:976
void Construct_ERFFillPatchers(int lev)
Definition: ERF.cpp:2754
amrex::Vector< int > num_boxes_at_level
Definition: ERF.H:914
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)
Definition: ERF_ShocCoupling.cpp:6
void FillSurfaceStateMultiFabs(const int lev, const std::string &filename, amrex::Vector< amrex::MultiFab > &surface_state)
Definition: ERF_SurfaceDataInterpolation.cpp:19
static amrex::Real sub_cfl
Definition: ERF.H:1186
static void print_error(MPI_Comm, const std::string &msg)
Definition: ERF_ConsoleIO.cpp:46
static int ng_dens_hse
Definition: ERF.H:1424
std::unique_ptr< ReadBndryPlanes > m_r2d
Definition: ERF.H:1480
amrex::Vector< std::unique_ptr< amrex::MultiFab > > ay
Definition: ERF.H:1060
amrex::Vector< amrex::Vector< amrex::MultiFab * > > qmoist
Definition: ERF.H:978
amrex::Vector< std::unique_ptr< amrex::MultiFab > > SFS_q1fx1_lev
Definition: ERF.H:1042
amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > zvel_bc_data
Definition: ERF.H:888
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)
Definition: ERF_Write1DProfiles_stag.cpp:638
LandSurface lsm
Definition: ERF.H:993
static amrex::Real change_max
Definition: ERF.H:1188
void setRecordSampleLineInfo(int i, int lev, amrex::IntVect &cell, const std::string &filename)
Definition: ERF.H:1726
void setSpongeRefFromSounding(bool restarting)
Set sponge mean profiles from input sounding.
Definition: ERF_InitSponge.cpp:65
amrex::Vector< amrex::MultiFab > avg_ymom
Definition: ERF.H:948
int line_sampling_interval
Definition: ERF.H:1744
amrex::Vector< amrex::Vector< amrex::Real > > h_sinesq_stag_ptrs
Definition: ERF.H:1455
amrex::Vector< std::unique_ptr< amrex::MultiFab > > detJ_cc_new
Definition: ERF.H:1071
void project_initial_velocity(int lev, double time, double dt)
Definition: ERF_PoissonSolve.cpp:39
amrex::Array< std::string, 2 *AMREX_SPACEDIM > domain_bc_type
Definition: ERF.H:1110
amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > yvel_bc_data
Definition: ERF.H:887
static void writeBuildInfo(std::ostream &os)
Definition: ERF_WriteJobInfo.cpp:178
amrex::GpuArray< ERF_BC, AMREX_SPACEDIM *2 > phys_bc_type
Definition: ERF.H:1128
std::string check_file
Definition: ERF.H:1233
amrex::Vector< amrex::IntVect > samplepoint
Definition: ERF.H:1760
amrex::Vector< amrex::MultiFab > surface_state_interp
Definition: ERF.H:192
amrex::Vector< amrex::Real > h_havg_qv
Definition: ERF.H:1468
amrex::Vector< amrex::MultiFab > weather_forecast_data_1
Definition: ERF.H:186
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)
Definition: ERF_AdvanceDycore.cpp:38
static void print_usage(MPI_Comm, std::ostream &)
Definition: ERF_ConsoleIO.cpp:29
amrex::Vector< amrex::MultiFab > rV_old
Definition: ERF.H:966
amrex::Vector< std::unique_ptr< amrex::MultiFab > > lat_m
Definition: ERF.H:875
void timeStep(int lev, double time, int iteration)
Definition: ERF_TimeStep.cpp:18
amrex::Vector< amrex::Vector< amrex::Vector< amrex::Real > > > h_rayleigh_ptrs
Definition: ERF.H:1450
static int last_plot3d_file_step_1
Definition: ERF.H:1141
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)
Definition: ERF_FillPatch.cpp:24
std::unique_ptr< LineSampler > line_sampler
Definition: ERF.H:1748
amrex::Vector< std::unique_ptr< amrex::MultiFab > > Hwave
Definition: ERF.H:1094
amrex::Vector< amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > > Tau_EB
Definition: ERF.H:1047
amrex::Vector< int > istep
Definition: ERF.H:918
const int datprecision
Definition: ERF.H:1160
amrex::Vector< std::unique_ptr< amrex::iMultiFab > > xflux_imask
Definition: ERF.H:1131
void derive_upwp(amrex::Vector< amrex::Real > &h_havg)
static PlotFileType plotfile2d_type_1
Definition: ERF.H:1355
int metgrid_order
Definition: ERF.H:1387
bool finished_wave
Definition: ERF.H:1098
void ReadCheckpointFile()
Definition: ERF_Checkpoint.cpp:523
amrex::Vector< amrex::Vector< amrex::MultiFab > > vars_old
Definition: ERF.H:931
void WriteAtFinalTime()
Definition: ERF.cpp:276
amrex::Vector< std::unique_ptr< ERFPhysBCFunct_base > > physbcs_base
Definition: ERF.H:956
void init_thin_body(int lev, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm)
Definition: ERF_MakeNewLevel.cpp:925
static PlotFileType plotfile3d_type_1
Definition: ERF.H:1353
amrex::Vector< int > m_subvol_int
Definition: ERF.H:1217
AMREX_FORCE_INLINE std::ostream & SamplePointLog(int i)
Definition: ERF.H:1600
std::string MakeFilename_EyeTracker_latlon(int nstep)
Definition: ERF_TrackerOutput.cpp:55
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
Definition: ERF_Plotfile.cpp:2003
amrex::Array< amrex::Array< amrex::Real, AMREX_SPACEDIM *2 >, AMREX_SPACEDIM+NBCVAR_max > m_bc_neumann_vals
Definition: ERF.H:1116
void PackAtmosphericStates(amrex::Vector< amrex::MultiFab * > &states, double time)
Definition: ERF_Coupling.cpp:169
bool m_driver_atm2ocn_uses_state_contract
Definition: ERF.H:709
amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > tsk_lev
Definition: ERF.H:1031
void setRecordSamplePointInfo(int i, int lev, amrex::IntVect &cell, const std::string &filename)
Definition: ERF.H:1709
static int column_interval
Definition: ERF.H:1409
static void print_summary(std::ostream &)
int m_plot3d_int_2
Definition: ERF.H:1213
amrex::Vector< std::unique_ptr< amrex::MultiFab > > qheating_rates
Definition: ERF.H:1000
void turbPert_amplitude(const int lev)
Definition: ERF_InitTurbPert.cpp:42
amrex::Vector< std::unique_ptr< amrex::MultiFab > > rad_fluxes
Definition: ERF.H:1001
void initializeMicrophysics(const int &)
Definition: ERF.cpp:1720
static double bndry_output_planes_start_time
Definition: ERF.H:1419
std::unique_ptr< amrex::MultiFab > wrf_C2H
Definition: ERF.H:1400
bool plot_lsm
Definition: ERF.H:1226
amrex::Vector< amrex::MultiFab > avg_zmom
Definition: ERF.H:949
const amrex::Vector< std::string > cons_names
Definition: ERF.H:1243
void ReadCheckpointFileSurfaceLayer()
Definition: ERF_Checkpoint.cpp:1275
double m_plot2d_per_1
Definition: ERF.H:1222
Definition: ERF_LandSurface.H:17
Owns and exposes cell-centered and face-centered EB factories.
Definition: ERF_EB.H:24
Definition: ERF_InterpolationUtils.H:16
@ pres
Definition: ERF_Kessler.H:27
@ qv
Definition: ERF_Kessler.H:30
@ xvel
Definition: ERF_IndexDefines.H:177
@ cons
Definition: ERF_IndexDefines.H:176
@ zvel
Definition: ERF_IndexDefines.H:179
@ yvel
Definition: ERF_IndexDefines.H:178
@ p
Definition: ERF_WSM6.H:191
Definition: ERF_ConsoleIO.cpp:15
ArtifactType
Definition: ERF_Provenance.H:37
real(c_double), parameter, private pi
Definition: ERF_module_mp_morr_two_moment.F90:100
integer, private isub
Definition: ERF_module_mp_morr_two_moment.F90:164
real(kind=kind_phys), parameter, private dens
Definition: ERF_module_mp_wsm6.F90:39
AdvType dycore_vert_adv_type
Vertical advection scheme for dynamical-core variables.
Definition: ERF_AdvStruct.H:442
AdvType moistscal_vert_adv_type
Vertical advection scheme for moist scalar variables.
Definition: ERF_AdvStruct.H:446
AdvType dryscal_horiz_adv_type
Horizontal advection scheme for dry scalar variables.
Definition: ERF_AdvStruct.H:443
AdvType dycore_horiz_adv_type
Horizontal advection scheme for dynamical-core variables.
Definition: ERF_AdvStruct.H:441
AdvType moistscal_horiz_adv_type
Horizontal advection scheme for moist scalar variables.
Definition: ERF_AdvStruct.H:445
AdvType dryscal_vert_adv_type
Vertical advection scheme for dry scalar variables.
Definition: ERF_AdvStruct.H:444
Definition: ERF_DataStruct.H:241
AdvChoice advChoice
Advection-related options.
Definition: ERF_DataStruct.H:1389
static TerrainType terrain_type
Terrain or immersed-boundary representation.
Definition: ERF_DataStruct.H:1368
bool use_num_diff
Whether sixth-order numerical diffusion is enabled.
Definition: ERF_DataStruct.H:1600
Runtime state and operations for turbulent perturbation forcing.
Definition: ERF_TurbPertStruct.H:25
Definition: ERF_CloudChamber.H:35
Definition: ERF_Provenance.H:66