23 #include <CD_NamespaceHeader.H>
51 virtual const std::string
72 advance(
const Real a_dt,
const bool a_zeroPhi =
false);
105 setRtSpecies(
const RefCountedPtr<RtSpecies>& a_species);
124 computeLoads(Vector<long long>& a_loads,
const DisjointBoxLayout& a_dbl,
const int a_level)
const noexcept;
131 setAmr(
const RefCountedPtr<AmrMesh>& a_amr);
139 setPhase(phase::which_phase a_phase = phase::gas);
156 setTime(
const int a_step,
const Real a_time,
const Real a_dt);
230 preRegrid(
const int a_lbase,
const int a_oldFinestLevel) = 0;
239 regrid(
const int a_lmin,
const int a_oldFinestLevel,
const int a_newFinestLevel) = 0;
273 setSource(
const std::function<Real(
const RealVect a_pos)> a_source);
291 virtual Vector<std::string>
305 const std::string a_outputRealm,
306 const int a_level)
const noexcept;
315 writeCheckpointLevel(HDF5Handle& a_handle,
const int a_level)
const = 0;
325 readCheckpointLevel(HDF5Handle& a_handle,
const int a_level) = 0;
339 virtual phase::which_phase
373 virtual RefCountedPtr<RtSpecies>&
519 writeData(LevelData<EBCellFAB>& a_output,
522 const std::
string a_outputRealm,
524 const
bool a_interpToCentroids,
525 const
bool a_interpGhost) const noexcept;
528 #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:30
virtual void setRtSpecies(const RefCountedPtr< RtSpecies > &a_species)
Set the radiative transfer species (RtSpecies)
Definition: CD_RtSolver.cpp:95
virtual void setAmr(const RefCountedPtr< AmrMesh > &a_amr)
Set the amr object.
Definition: CD_RtSolver.cpp:158
EBAMRFluxData m_kappa
Absorption coefficient.
Definition: CD_RtSolver.H:454
void setEbIndexSpace(const RefCountedPtr< EBIndexSpace > &a_ebis)
Set ebis.
Definition: CD_RtSolver.cpp:147
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:392
virtual phase::which_phase getPhase()
Get the RTE phase.
Definition: CD_RtSolver.cpp:403
RtSolver()
Constructor.
Definition: CD_RtSolver.cpp:24
virtual EBAMRCellData & getPhi()
Get solver state.
Definition: CD_RtSolver.cpp:414
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:296
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:457
virtual void deallocate()=0
Deallocate internal storage.
static constexpr int m_nComp
Default number of components.
Definition: CD_RtSolver.H:385
EBAMRCellData m_source
Source term.
Definition: CD_RtSolver.H:449
std::string m_realm
Realm where this solver lives.
Definition: CD_RtSolver.H:395
void parseVerbosity() noexcept
Parse verbosity.
Definition: CD_RtSolver.cpp:444
virtual RefCountedPtr< RtSpecies > & getSpecies()
Get species.
Definition: CD_RtSolver.cpp:438
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:415
EBAMRIVData m_kappaEB
Absorption coefficient on EB faces.
Definition: CD_RtSolver.H:459
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:107
virtual void allocate()=0
Allocate internal storage.
virtual int getNumberOfPlotVariables() const
Get number of output fields.
Definition: CD_RtSolver.cpp:256
virtual void setVerbosity(const int a_verbosity)
Set verbosity.
Definition: CD_RtSolver.cpp:193
Real m_dt
Time increment.
Definition: CD_RtSolver.H:469
virtual EBAMRIVData & getKappaEb()
Get the absorption coefficient on irregular EB faces.
Definition: CD_RtSolver.cpp:432
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:426
bool m_plotSource
Output source term.
Definition: CD_RtSolver.H:484
virtual void sanityCheck()
Sanity check.
Definition: CD_RtSolver.cpp:118
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:169
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 parseOptions()=0
Parse options.
virtual ~RtSolver()
Constructor (does nothing)
Definition: CD_RtSolver.cpp:34
virtual Vector< std::string > getPlotVariableNames() const
Get output plot names.
Definition: CD_RtSolver.cpp:276
EBAMRCellData m_phi
Internal state.
Definition: CD_RtSolver.H:442
std::string m_name
Name for this solver.
Definition: CD_RtSolver.H:425
RefCountedPtr< ComputationalGeometry > m_computationalGeometry
Computational geometry.
Definition: CD_RtSolver.H:410
virtual void writePlotFile()=0
Write plot file.
phase::which_phase m_phase
Phase.
Definition: CD_RtSolver.H:420
bool m_plotPhi
Output state.
Definition: CD_RtSolver.H:479
virtual void initialData()
Fill solver with initial data. By default, this sets internal data to zero.
Definition: CD_RtSolver.cpp:245
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:420
EBAMRCellData m_cachePhi
Cached state used for regridding.
Definition: CD_RtSolver.H:435
virtual bool isStationary()
Check if solver is stationary.
Definition: CD_RtSolver.cpp:52
virtual void registerOperators()=0
Register operators.
std::string m_className
Class name – needed because inherited classes will be named different.
Definition: CD_RtSolver.H:430
virtual void setComputationalGeometry(const RefCountedPtr< ComputationalGeometry > a_computationalGeometry)
Set computational geometry.
Definition: CD_RtSolver.cpp:132
virtual void setRealm(const std::string a_realm)
Set realm where this solver lives.
Definition: CD_RtSolver.cpp:84
virtual void setStationary(const bool a_stationary)
Set stationary solver or not.
Definition: CD_RtSolver.cpp:182
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:464
RefCountedPtr< EBIndexSpace > m_ebis
EBIndexSpace for this solver.
Definition: CD_RtSolver.H:400
virtual const std::string getRealm() const
Get the realm where the solver lives.
Definition: CD_RtSolver.cpp:46
Location::Cell m_dataLocation
Data location.
Definition: CD_RtSolver.H:390
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:318
virtual void setSource(const EBAMRCellData &a_source)
Set source term.
Definition: CD_RtSolver.cpp:204
static constexpr int m_comp
Default component that we solve for.
Definition: CD_RtSolver.H:380
virtual void parseRuntimeOptions()=0
Parse runtime options.
RefCountedPtr< RtSpecies > m_rtSpecies
Radiative transfer species (contains meta-information like initial conditions)
Definition: CD_RtSolver.H:405
virtual std::string getName()
Get solver name.
Definition: CD_RtSolver.cpp:40
int m_timeStep
Time step.
Definition: CD_RtSolver.H:494
bool m_stationary
Stationary solver or not.
Definition: CD_RtSolver.H:474
virtual bool advance(const Real a_dt, const bool a_zeroPhi=false)
Advance equation one time step.
Definition: CD_RtSolver.cpp:58
Cell
Enum for distinguishing between cell locations.
Definition: CD_Location.H:30