1#ifndef _REMORA_PROBCOMMON_H_
2#define _REMORA_PROBCOMMON_H_
8#include <AMReX_Geometry.H>
9#include <AMReX_FArrayBox.H>
28 const amrex::Geometry& ,
35 amrex::Error(
"Initialization set to analytic but init_analytic_prob not defined in prob.cpp");
40 int ,
const amrex::Geometry& ,
44 amrex::Error(
"Doing analytic bathymetry, but not defined in prob.cpp");
49 int ,
const amrex::Geometry& ,
52 amrex::MultiFab& , amrex::MultiFab& ) {
53 amrex::Error(
"Doing analytic grid scale (pm, pn), but not defined in prob.cpp");
58 int ,
const amrex::Geometry& ,
63 amrex::Error(
"Doing analytic sea surface height (zeta), but not defined in prob.cpp");
68 int ,
const amrex::Geometry& ,
72 amrex::Error(
"Doing analytic Coriolis forcing, but not defined in prob.cpp");
77 int ,
const amrex::Geometry& ,
82 amrex::Error(
"Doing analytic vertical mixing, but not defined in prob.cpp");
87 int ,
const amrex::Geometry& ,
93 amrex::Error(
"Doing analytic horizontal mixing, but not defined in prob.cpp");
98 int ,
const amrex::Geometry& ,
103 amrex::Error(
"Doing analytic surface momentum flux, but not defined in prob.cpp");
108 int ,
const amrex::Geometry& ,
121 amrex::Error(
"Doing analytic surface variables (used to calculate bulk-flux atmospheric forcing, but not defined in prob.cpp");
126 int ,
const amrex::Geometry& ,
130 amrex::Error(
"Doing analytic masks, but not defined in prob.cpp");
135 int ,
const amrex::Geometry& ,
140 amrex::Error(
"Doing analytic biology but not defined in prob.cpp");
mf_h setVal(geomdata.ProbHi(2))
std::unique_ptr< ProblemBase > amrex_probinit(const amrex_real *problo, const amrex_real *probhi) AMREX_ATTRIBUTE_WEAK
Function to init the physical bounds of the domain and instantiate a Problem derived from ProblemBase...
virtual void init_analytic_hmix(int, const amrex::Geometry &, SolverChoice const &, REMORA const &, amrex::MultiFab &, amrex::MultiFab &, amrex::MultiFab &)
virtual void init_analytic_coriolis(int, const amrex::Geometry &, SolverChoice const &, REMORA const &, amrex::MultiFab &)
virtual void init_analytic_grid_scale(int, const amrex::Geometry &, SolverChoice const &, REMORA const &, amrex::MultiFab &, amrex::MultiFab &)
virtual void init_analytic_zeta(int, const amrex::Geometry &, SolverChoice const &, REMORA const &, ProbCoords const &, amrex::MultiFab &)
virtual void init_analytic_vmix(int, const amrex::Geometry &, SolverChoice const &, REMORA const &, amrex::MultiFab &, amrex::MultiFab &)
virtual void init_analytic_surface_var(int, const amrex::Geometry &, SolverChoice const &, REMORA const &, amrex::MultiFab &, amrex::MultiFab &, amrex::MultiFab &, amrex::MultiFab &, amrex::MultiFab &, amrex::MultiFab &, amrex::MultiFab &, amrex::MultiFab &, amrex::MultiFab &, amrex::MultiFab &)
virtual ~ProblemBase()=default
Virtual destructor to avoid data leakage with derived class.
virtual void init_analytic_prob(int, const amrex::Geometry &, SolverChoice const &, REMORA const &, ProbCoords const &, amrex::MultiFab &, amrex::MultiFab &, amrex::MultiFab &)
virtual void init_analytic_masks(int, const amrex::Geometry &, SolverChoice const &, REMORA const &, amrex::MultiFab &)
virtual void init_analytic_biology(int, const amrex::Geometry &, SolverChoice const &, REMORABiology::FennelParameters const &, REMORA const &, amrex::MultiFab &)
virtual void init_analytic_smflux(int, const amrex::Geometry &, SolverChoice const &, REMORA const &, amrex::MultiFab &, amrex::MultiFab &)
virtual void init_analytic_bathymetry(int, const amrex::Geometry &, SolverChoice const &, REMORA const &, amrex::MultiFab &)
Class that stores all relevant simulation state data with methods for time stepping.
Coordinates a prob function reads, on the BoxArray and DistributionMapping of the MultiFab it fills.