13#ifndef CD_CDRLAYOUTIMPLEM_H
14#define CD_CDRLAYOUTIMPLEM_H
21#include <CD_NamespaceHeader.H>
26 CH_TIME(
"CdrLayout<T>::CdrLayout()");
39 CH_TIME(
"CdrLayout<T>::~CdrLayout()");
46 CH_TIME(
"CdrLayout<T>::getPhase()");
48 pout() <<
"CdrLayout<T>::getPhase()" <<
endl;
58 CH_TIME(
"CdrLayout<T>::iterator()");
60 pout() <<
"CdrLayout<T>::iterator()" <<
endl;
70 CH_TIME(
"CdrLayout<T>::getRealm()");
72 pout() <<
"CdrLayout<T>::getRealm()" <<
endl;
82 CH_TIME(
"CdrLayout<T>::setRealm()");
84 pout() <<
"CdrLayout<T>::setRealm()" <<
endl;
98 CH_TIME(
"CdrLayout<T>::addSolver(RefCountedPtr<T>");
100 pout() <<
"CdrLayout<T>::addSolver()" <<
endl;
110 CH_TIME(
"CdrLayout<T>::parseOptions()");
112 pout() <<
"CdrLayout<T>::parseOptions()" <<
endl;
124 CH_TIME(
"CdrLayout<T>::parseRuntimeOptions()");
126 pout() <<
"CdrLayout<T>::parseRuntimeOptions()" <<
endl;
138 CH_TIME(
"CdrLayout<T>::allocate()");
140 pout() <<
"CdrLayout<T>::allocate()" <<
endl;
152 CH_TIME(
"CdrLayout<T>::deallocate()");
154 pout() <<
"CdrLayout<T>::deallocate()" <<
endl;
166 CH_TIME(
"CdrLayout<T>::preRegrid(int, int)");
168 pout() <<
"CdrLayout<T>::preRegrid(int, int)" <<
endl;
180 CH_TIME(
"CdrLayout<T>::initialData()");
182 pout() <<
"CdrLayout<T>::initialData()" <<
endl;
194 CH_TIME(
"CdrLayout<T>::regrid(int, int, int)");
196 pout() <<
"CdrLayout<T>::regrid(int, int, int)" <<
endl;
208 CH_TIME(
"CdrLayout<T>::registerOperators()");
210 pout() <<
"CdrLayout<T>::registerOperators()" <<
endl;
222 CH_TIME(
"CdrLayout<T>::setAmr(RefCountedPtr<AmrMesh>)");
224 pout() <<
"CdrLayout<T>::setAmr(RefCountedPtr<AmrMesh>)" <<
endl;
236 CH_TIME(
"CdrLayout<T>::setComputationalGeometry(RefCountedPtr<ComputationalGeometry>)");
238 pout() <<
"CdrLayout<T>::setComputationalGeometry(RefCountedPtr<ComputationalGeometry>)" <<
endl;
250 CH_TIME(
"CdrLayout<T>::setPhase(phase::which_phase)");
252 pout() <<
"CdrLayout<T>::setPhase(phase::which_phase)" <<
endl;
266 CH_TIME(
"CdrLayout<T>::setVerbosity(int)");
269 pout() <<
"CdrLayout<T>::setVerbosity(int)" <<
endl;
281 CH_TIME(
"CdrLayout<T>::setTime(int, int, int)");
283 pout() <<
"CdrLayout<T>::setTime(int, int, int)" <<
endl;
295 CH_TIME(
"CdrLayout<T>::writePlotFile()");
297 pout() <<
"CdrLayout<T>::writePlotFile()" <<
endl;
309 CH_TIME(
"CdrLayout<T>::computeAdvectionDt()");
311 pout() <<
"CdrLayout<T>::computeAdvectionDt()" <<
endl;
314 Real dt = std::numeric_limits<Real>::max();
329 CH_TIME(
"CdrLayout<T>::computeDiffusionDt()");
331 pout() <<
"CdrLayout<T>::computeDiffusionDt()" <<
endl;
334 Real dt = std::numeric_limits<Real>::max();
349 CH_TIME(
"CdrLayout<T>::computeAdvectionDiffusionDt()");
351 pout() <<
"CdrLayout<T>::computeAdvectionDiffusionDt()" <<
endl;
354 Real dt = std::numeric_limits<Real>::max();
369 CH_TIME(
"CdrLayout<T>::getSolvers()");
371 pout() <<
"CdrLayout<T>::getSolvers()" <<
endl;
381 CH_TIME(
"CdrLayout<T>::getSpecies()");
383 pout() <<
"CdrLayout<T>::getSpecies()" <<
endl;
393 CH_TIME(
"CdrLayout<T>::getPhis()");
395 pout() <<
"CdrLayout<T>::getPhis()" <<
endl;
411 CH_TIME(
"CdrLayout<T>::getSources()");
413 pout() <<
"CdrLayout<T>::getSources()" <<
endl;
429 CH_TIME(
"CdrLayout<T>::getVelocities()");
431 pout() <<
"CdrLayout<T>::getVelocities()" <<
endl;
447 CH_TIME(
"CdrLayout<T>::getCellCenteredDiffusionCoefficients()");
449 pout() <<
"CdrLayout<T>::getCellCenteredDiffusionCoefficients()" <<
endl;
455 diffCo.push_back(&(
solver_it()->getCellCenteredDiffusionCoefficient()));
465 CH_TIME(
"CdrLayout<T>::getFaceCenteredDiffusionCoefficient()");
467 pout() <<
"CdrLayout<T>::getFaceCenteredDiffusionCoefficient()" <<
endl;
473 diffCo.push_back(&(
solver_it()->getFaceCenteredDiffusionCoefficient()));
483 CH_TIME(
"CdrLayout<T>::getEbCenteredDiffusionCoefficient");
485 pout() <<
"CdrLayout<T>::getEbCenteredDiffusionCoefficient" <<
endl;
501 CH_TIME(
"CdrLayout<T>::getEbFlux()");
503 pout() <<
"CdrLayout<T>::getEbFlux()" <<
endl;
519 CH_TIME(
"CdrLayout<T>::getDomainFlux()");
521 pout() <<
"CdrLayout<T>::getDomainFlux()" <<
endl;
533template <
class T,
class S>
536 CH_TIME(
"CdrFactory<T, S>::CdrFactory()");
539template <
class T,
class S>
542 CH_TIME(
"CdrFactory<T, S>::~CdrFactory()");
545template <
class T,
class S>
549 CH_TIME(
"CdrFactory<T, S>::newLayout(Vector<RefCountedPtr<CdrSpecies> >)");
569#include <CD_NamespaceFooter.H>
Declaration of an iterator class for CdrLayout (for iterating through subsets of solvers).
Declaration of a class that holds a set of CdrSolvers (to cut down on typing).
Agglomeration of useful data operations.
Declaration of various useful units.
CdrFactory()
Default constructor (does nothing)
Definition CD_CdrLayoutImplem.H:534
~CdrFactory()
Default constructor (does nothing)
Definition CD_CdrLayoutImplem.H:540
RefCountedPtr< CdrLayout< T > > newLayout(const Vector< RefCountedPtr< CdrSpecies > > &a_species) const
Factory method, create a new CdrLayout.
Definition CD_CdrLayoutImplem.H:547
virtual void setPhase(const phase::which_phase a_phase=phase::gas)
Set phase for all CdrSolvers.
Definition CD_CdrLayoutImplem.H:248
virtual std::string getRealm() const
Get the realm where the Cdr solvers live.
Definition CD_CdrLayoutImplem.H:68
virtual void parseOptions()
Parse class options.
Definition CD_CdrLayoutImplem.H:108
virtual void parseRuntimeOptions()
Parse runtime options.
Definition CD_CdrLayoutImplem.H:122
virtual Vector< EBAMRCellData * > getPhis()
Get all cell-centered states.
Definition CD_CdrLayoutImplem.H:391
virtual Vector< EBAMRIVData * > getEbFlux()
Get all EB flux data holders.
Definition CD_CdrLayoutImplem.H:499
virtual Vector< EBAMRCellData * > getSources()
Get all source terms.
Definition CD_CdrLayoutImplem.H:409
virtual phase::which_phase getPhase() const
Get phase.
Definition CD_CdrLayoutImplem.H:44
virtual void preRegrid(const int a_lbase, const int a_oldFinestLevel)
Call preRegrid(...) method for all the CdrSolvers.
Definition CD_CdrLayoutImplem.H:164
virtual Vector< EBAMRIFData * > getDomainFlux()
Get domain flux data holders.
Definition CD_CdrLayoutImplem.H:517
virtual Vector< EBAMRCellData * > getVelocities()
Get all cell-centered velocities.
Definition CD_CdrLayoutImplem.H:427
virtual void writePlotFile()
Convenience function. All solvers write plot files (for debugging purposes)
Definition CD_CdrLayoutImplem.H:293
virtual void setComputationalGeometry(const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry)
Set the computational geometry for all CdrSolvers.
Definition CD_CdrLayoutImplem.H:234
virtual void setAmr(const RefCountedPtr< AmrMesh > &a_amrMesh)
Set AmrMesh for all CdrSolvers.
Definition CD_CdrLayoutImplem.H:220
virtual Real computeDiffusionDt()
Get time step for explicit diffusion.
Definition CD_CdrLayoutImplem.H:327
virtual ~CdrLayout()
Destructor.
Definition CD_CdrLayoutImplem.H:37
virtual void addSolver(RefCountedPtr< T > &a_solver)
Add solver. This appends a_solver to m_solvers.
Definition CD_CdrLayoutImplem.H:96
virtual Vector< EBAMRIVData * > getEbCenteredDiffusionCoefficient()
Get all EB-centered diffusion coefficients.
Definition CD_CdrLayoutImplem.H:481
virtual void setTime(const int a_step, const Real a_time, const Real a_dt)
Set time.
Definition CD_CdrLayoutImplem.H:279
virtual Real computeAdvectionDiffusionDt()
Get the time step for explicit advection-diffusion.
Definition CD_CdrLayoutImplem.H:347
virtual Vector< EBAMRFluxData * > getFaceCenteredDiffusionCoefficient()
Get all face-centered diffusion coefficients.
Definition CD_CdrLayoutImplem.H:463
virtual void setVerbosity(const int a_verbosity)
Set verbosity for all CdrSolvers.
Definition CD_CdrLayoutImplem.H:264
virtual void registerOperators()
Register operators.
Definition CD_CdrLayoutImplem.H:206
CdrLayout()=delete
Disallowed weak constructor. Use the full constructor.
virtual Vector< RefCountedPtr< T > > & getSolvers()
Get solvers.
Definition CD_CdrLayoutImplem.H:367
virtual void regrid(const int a_lmin, const int a_oldFinestLevel, const int a_newFinestLevel)
Regrid method. Calls regrid(...) for every CdrSolver.
Definition CD_CdrLayoutImplem.H:192
virtual Vector< EBAMRCellData * > getCellCenteredDiffusionCoefficients()
Get all cell-centered diffusion coefficients.
Definition CD_CdrLayoutImplem.H:445
virtual void allocate()
Allocate internal storage for solvers.
Definition CD_CdrLayoutImplem.H:136
virtual void initialData()
Initial data. Fill all solvers with initial data.
Definition CD_CdrLayoutImplem.H:178
virtual Vector< RefCountedPtr< CdrSpecies > > & getSpecies()
Get species.
Definition CD_CdrLayoutImplem.H:379
virtual void setRealm(const std::string &a_realm)
Set realm for all CdrSolvers.
Definition CD_CdrLayoutImplem.H:80
virtual CdrIterator< T > iterator()
Get an iterator which can iterate through the various Cdr solvers.
Definition CD_CdrLayoutImplem.H:56
virtual Real computeAdvectionDt()
Get CFL time for advection.
Definition CD_CdrLayoutImplem.H:307
virtual void deallocate()
Deallocate solver internals.
Definition CD_CdrLayoutImplem.H:150
static const std::string Primal
Identifier for perimal realm.
Definition CD_Realm.H:39
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
phase::which_phase m_phase
Phase where this solver lives.
Definition CD_TracerParticleSolver.H:367
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26
std::string m_realm
Realm where this solver lives.
Definition CD_TracerParticleSolver.H:352
int m_verbosity
Verbosity level.
Definition CD_TracerParticleSolver.H:387
virtual void setPhase(const phase::which_phase &a_phase)
Set the solver phase.
Definition CD_TracerParticleSolverImplem.H:245
which_phase
Enumeration of supported phases.
Definition CD_MultiFluidIndexSpace.H:38
@ gas
Gas phase.
Definition CD_MultiFluidIndexSpace.H:39