24#include <CD_NamespaceHeader.H>
76 advance(
const Real a_dt,
const bool a_zeroPhi =
false);
86 advance(
const Real a_dt, EBAMRCellData& a_phi,
const bool a_zeroPhi =
false);
97 advance(
const Real a_dt, EBAMRCellData& a_phi,
const EBAMRCellData& a_source,
const bool a_zeroPhi =
false) = 0;
104 setRealm(
const std::string& a_realm);
111 setRtSpecies(
const RefCountedPtr<RtSpecies>& a_RtSpecies);
130 computeLoads(Vector<long long>& a_loads,
const DisjointBoxLayout& a_dbl,
const int a_level)
const noexcept;
137 setAmr(
const RefCountedPtr<AmrMesh>& a_amr);
162 setTime(
const int a_step,
const Real a_time,
const Real a_dt);
210 computeFlux(EBAMRCellData& a_flux,
const EBAMRCellData& a_phi) = 0;
240 preRegrid(
const int a_lbase,
const int a_oldFinestLevel) = 0;
249 regrid(
const int a_lmin,
const int a_oldFinestLevel,
const int a_newFinestLevel) = 0;
269 setSource(
const EBAMRCellData& a_source);
283 setSource(
const std::function<Real(
const RealVect a_pos)>& a_source);
302 virtual Vector<std::string>
316 const std::string& a_outputRealm,
317 const int a_level)
const noexcept;
326 writeCheckpointLevel(HDF5Handle& a_handle,
const int a_level)
const = 0;
336 readCheckpointLevel(HDF5Handle& a_handle,
const int a_level) = 0;
357 virtual EBAMRCellData&
364 virtual EBAMRCellData&
371 virtual EBAMRFluxData&
385 virtual RefCountedPtr<RtSpecies>&
534 writeData(LevelData<EBCellFAB>& a_output,
536 const EBAMRCellData& a_data,
537 const std::
string& a_outputRealm,
539 const
bool a_interpToCentroids,
540 const
bool a_interpGhost) const noexcept;
543#include <CD_NamespaceFooter.H>
Declaration of core class for handling AMR-related operations (with embedded boundaries)
Declaration of base class for defining geometries.
Declaration of cell positions.
Declaration of a class which supplies a user interface to radiative transfer code.
Abstract RTE solver class for doing various kinds of radiative transfer equations....
Definition CD_RtSolver.H:31
virtual void setRealm(const std::string &a_realm)
Set realm where this solver lives.
Definition CD_RtSolver.cpp:80
virtual void setAmr(const RefCountedPtr< AmrMesh > &a_amr)
Set the amr object.
Definition CD_RtSolver.cpp:154
EBAMRFluxData m_kappa
Absorption coefficient.
Definition CD_RtSolver.H:466
void setEbIndexSpace(const RefCountedPtr< EBIndexSpace > &a_ebis)
Set ebis.
Definition CD_RtSolver.cpp:143
virtual void computeDensity(EBAMRCellData &a_isotropic, const EBAMRCellData &a_phi)=0
Get isotropic part.
virtual Real getTime() const
Get current time.
Definition CD_RtSolver.cpp:393
virtual phase::which_phase getPhase()
Get the RTE phase.
Definition CD_RtSolver.cpp:404
RtSolver()
Constructor.
Definition CD_RtSolver.cpp:25
virtual EBAMRCellData & getPhi()
Get solver state.
Definition CD_RtSolver.cpp:415
virtual std::string getRealm() const
Get the realm where the solver lives.
Definition CD_RtSolver.cpp:42
virtual void computeLoads(Vector< long long > &a_loads, const DisjointBoxLayout &a_dbl, const int a_level) const noexcept
Get computational loads for a specific grid level.
Definition CD_RtSolver.cpp:458
virtual void deallocate()=0
Deallocate internal storage.
static constexpr int m_nComp
Default number of components.
Definition CD_RtSolver.H:397
EBAMRCellData m_source
Source term.
Definition CD_RtSolver.H:461
std::string m_realm
Realm where this solver lives.
Definition CD_RtSolver.H:407
void parseVerbosity() noexcept
Parse verbosity.
Definition CD_RtSolver.cpp:445
virtual RefCountedPtr< RtSpecies > & getSpecies()
Get species.
Definition CD_RtSolver.cpp:439
virtual void computeDomainFlux(EBAMRIFData &a_domainflux, const EBAMRCellData &a_phi)=0
Compute the domain flux given a state (a_phi will be different for different RTE approximations)
RefCountedPtr< AmrMesh > m_amr
AMR; needed for grid stuff.
Definition CD_RtSolver.H:427
EBAMRIVData m_kappaEB
Absorption coefficient on EB faces.
Definition CD_RtSolver.H:471
virtual void setRtSpecies(const RefCountedPtr< RtSpecies > &a_RtSpecies)
Set the radiative transfer species (RtSpecies)
Definition CD_RtSolver.cpp:91
virtual bool advance(const Real a_dt, EBAMRCellData &a_phi, const EBAMRCellData &a_source, const bool a_zeroPhi=false)=0
Advance method. Advances one time step.
virtual void setPhase(phase::which_phase a_phase=phase::gas)
Set phase.
Definition CD_RtSolver.cpp:103
virtual void allocate()=0
Allocate internal storage.
virtual int getNumberOfPlotVariables() const
Get number of output fields.
Definition CD_RtSolver.cpp:257
virtual void setVerbosity(const int a_verbosity)
Set verbosity.
Definition CD_RtSolver.cpp:189
Real m_dt
Time increment.
Definition CD_RtSolver.H:481
virtual EBAMRIVData & getKappaEb()
Get the absorption coefficient on irregular EB faces.
Definition CD_RtSolver.cpp:433
virtual void computeFlux(EBAMRCellData &a_flux, const EBAMRCellData &a_phi)=0
Compute the flux.
virtual EBAMRFluxData & getKappa()
Get the absorption length.
Definition CD_RtSolver.cpp:427
bool m_plotSource
Output source term.
Definition CD_RtSolver.H:496
virtual void writeData(LevelData< EBCellFAB > &a_output, int &a_comp, const EBAMRCellData &a_data, const std::string &a_outputRealm, const int a_level, const bool a_interpToCentroids, const bool a_interpGhost) const noexcept
Write data to output. Convenience function.
Definition CD_RtSolver.cpp:319
virtual void sanityCheck()
Sanity check.
Definition CD_RtSolver.cpp:114
virtual void setTime(const int a_step, const Real a_time, const Real a_dt)
Set the time for this solver.
Definition CD_RtSolver.cpp:165
virtual void computeBoundaryFlux(EBAMRIVData &a_ebFlux, const EBAMRCellData &a_phi)=0
Compute the boundary flux given a state (a_phi will be different for different RTE approximations)
virtual void writePlotData(LevelData< EBCellFAB > &a_output, int &a_comp, const std::string &a_outputRealm, const int a_level) const noexcept
Write output data to a_output.
Definition CD_RtSolver.cpp:297
virtual void parseOptions()=0
Parse options.
virtual ~RtSolver()
Constructor (does nothing)
Definition CD_RtSolver.cpp:30
virtual Vector< std::string > getPlotVariableNames() const
Get output plot names.
Definition CD_RtSolver.cpp:277
EBAMRCellData m_phi
Internal state.
Definition CD_RtSolver.H:454
std::string m_name
Name for this solver.
Definition CD_RtSolver.H:437
RefCountedPtr< ComputationalGeometry > m_computationalGeometry
Computational geometry.
Definition CD_RtSolver.H:422
virtual void writePlotFile()=0
Write plot file.
phase::which_phase m_phase
Phase.
Definition CD_RtSolver.H:432
bool m_plotPhi
Output state.
Definition CD_RtSolver.H:491
virtual void initialData()
Fill solver with initial data. By default, this sets internal data to zero.
Definition CD_RtSolver.cpp:246
virtual void setComputationalGeometry(const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry)
Set computational geometry.
Definition CD_RtSolver.cpp:128
virtual void preRegrid(const int a_lbase, const int a_oldFinestLevel)=0
Perform pre-regrid operations.
virtual EBAMRCellData & getSource()
Get multifluid source.
Definition CD_RtSolver.cpp:421
EBAMRCellData m_cachePhi
Cached state used for regridding.
Definition CD_RtSolver.H:447
virtual bool isStationary()
Check if solver is stationary.
Definition CD_RtSolver.cpp:48
virtual void registerOperators()=0
Register operators.
std::string m_className
Class name – needed because inherited classes will be named different.
Definition CD_RtSolver.H:442
int m_verbosity
Verbosity.
Definition CD_RtSolver.H:502
virtual void setStationary(const bool a_stationary)
Set stationary solver or not.
Definition CD_RtSolver.cpp:178
virtual void regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel)=0
Regrid this solver.
Real m_time
Time.
Definition CD_RtSolver.H:476
RefCountedPtr< EBIndexSpace > m_ebis
EBIndexSpace for this solver.
Definition CD_RtSolver.H:412
Location::Cell m_dataLocation
Data location.
Definition CD_RtSolver.H:402
virtual void setSource(const EBAMRCellData &a_source)
Set source term.
Definition CD_RtSolver.cpp:200
static constexpr int m_comp
Default component that we solve for.
Definition CD_RtSolver.H:392
virtual void parseRuntimeOptions()=0
Parse runtime options.
RefCountedPtr< RtSpecies > m_rtSpecies
Radiative transfer species (contains meta-information like initial conditions)
Definition CD_RtSolver.H:417
virtual std::string getName()
Get solver name.
Definition CD_RtSolver.cpp:36
int m_timeStep
Time step.
Definition CD_RtSolver.H:507
bool m_stationary
Stationary solver or not.
Definition CD_RtSolver.H:486
virtual bool advance(const Real a_dt, const bool a_zeroPhi=false)
Advance equation one time step.
Definition CD_RtSolver.cpp:54
Cell
Enum for distinguishing between cell locations.
Definition CD_Location.H:31
which_phase
Enumeration of supported phases.
Definition CD_MultiFluidIndexSpace.H:38
@ gas
Gas phase.
Definition CD_MultiFluidIndexSpace.H:39