12#ifndef CD_CdrLayoutImplem_H
13#define CD_CdrLayoutImplem_H
20#include <CD_NamespaceHeader.H>
25 CH_TIME(
"CdrLayout<T>::CdrLayout()");
38 CH_TIME(
"CdrLayout<T>::~CdrLayout()");
45 CH_TIME(
"CdrLayout<T>::getPhase()");
47 pout() <<
"CdrLayout<T>::getPhase()" <<
endl;
57 CH_TIME(
"CdrLayout<T>::iterator()");
59 pout() <<
"CdrLayout<T>::iterator()" <<
endl;
69 CH_TIME(
"CdrLayout<T>::getRealm()");
71 pout() <<
"CdrLayout<T>::getRealm()" <<
endl;
81 CH_TIME(
"CdrLayout<T>::setRealm()");
83 pout() <<
"CdrLayout<T>::setRealm()" <<
endl;
97 CH_TIME(
"CdrLayout<T>::addSolver(RefCountedPtr<T>");
99 pout() <<
"CdrLayout<T>::addSolver()" <<
endl;
109 CH_TIME(
"CdrLayout<T>::parseOptions()");
111 pout() <<
"CdrLayout<T>::parseOptions()" <<
endl;
123 CH_TIME(
"CdrLayout<T>::parseRuntimeOptions()");
125 pout() <<
"CdrLayout<T>::parseRuntimeOptions()" <<
endl;
137 CH_TIME(
"CdrLayout<T>::allocate()");
139 pout() <<
"CdrLayout<T>::allocate()" <<
endl;
151 CH_TIME(
"CdrLayout<T>::deallocate()");
153 pout() <<
"CdrLayout<T>::deallocate()" <<
endl;
165 CH_TIME(
"CdrLayout<T>::preRegrid(int, int)");
167 pout() <<
"CdrLayout<T>::preRegrid(int, int)" <<
endl;
179 CH_TIME(
"CdrLayout<T>::initialData()");
181 pout() <<
"CdrLayout<T>::initialData()" <<
endl;
193 CH_TIME(
"CdrLayout<T>::regrid(int, int, int)");
195 pout() <<
"CdrLayout<T>::regrid(int, int, int)" <<
endl;
207 CH_TIME(
"CdrLayout<T>::registerOperators()");
209 pout() <<
"CdrLayout<T>::registerOperators()" <<
endl;
221 CH_TIME(
"CdrLayout<T>::setAmr(RefCountedPtr<AmrMesh>)");
223 pout() <<
"CdrLayout<T>::setAmr(RefCountedPtr<AmrMesh>)" <<
endl;
235 CH_TIME(
"CdrLayout<T>::setComputationalGeometry(RefCountedPtr<ComputationalGeometry>)");
237 pout() <<
"CdrLayout<T>::setComputationalGeometry(RefCountedPtr<ComputationalGeometry>)" <<
endl;
249 CH_TIME(
"CdrLayout<T>::setPhase(phase::which_phase)");
251 pout() <<
"CdrLayout<T>::setPhase(phase::which_phase)" <<
endl;
265 CH_TIME(
"CdrLayout<T>::setVerbosity(int)");
268 pout() <<
"CdrLayout<T>::setVerbosity(int)" <<
endl;
280 CH_TIME(
"CdrLayout<T>::setTime(int, int, int)");
282 pout() <<
"CdrLayout<T>::setTime(int, int, int)" <<
endl;
294 CH_TIME(
"CdrLayout<T>::writePlotFile()");
296 pout() <<
"CdrLayout<T>::writePlotFile()" <<
endl;
308 CH_TIME(
"CdrLayout<T>::computeAdvectionDt()");
310 pout() <<
"CdrLayout<T>::computeAdvectionDt()" <<
endl;
313 Real dt = std::numeric_limits<Real>::max();
328 CH_TIME(
"CdrLayout<T>::computeDiffusionDt()");
330 pout() <<
"CdrLayout<T>::computeDiffusionDt()" <<
endl;
333 Real dt = std::numeric_limits<Real>::max();
348 CH_TIME(
"CdrLayout<T>::computeAdvectionDiffusionDt()");
350 pout() <<
"CdrLayout<T>::computeAdvectionDiffusionDt()" <<
endl;
353 Real dt = std::numeric_limits<Real>::max();
368 CH_TIME(
"CdrLayout<T>::getSolvers()");
370 pout() <<
"CdrLayout<T>::getSolvers()" <<
endl;
380 CH_TIME(
"CdrLayout<T>::getSpecies()");
382 pout() <<
"CdrLayout<T>::getSpecies()" <<
endl;
392 CH_TIME(
"CdrLayout<T>::getPhis()");
394 pout() <<
"CdrLayout<T>::getPhis()" <<
endl;
410 CH_TIME(
"CdrLayout<T>::getSources()");
412 pout() <<
"CdrLayout<T>::getSources()" <<
endl;
428 CH_TIME(
"CdrLayout<T>::getVelocities()");
430 pout() <<
"CdrLayout<T>::getVelocities()" <<
endl;
446 CH_TIME(
"CdrLayout<T>::getCellCenteredDiffusionCoefficients()");
448 pout() <<
"CdrLayout<T>::getCellCenteredDiffusionCoefficients()" <<
endl;
454 diffCo.push_back(&(
solver_it()->getCellCenteredDiffusionCoefficient()));
464 CH_TIME(
"CdrLayout<T>::getFaceCenteredDiffusionCoefficient()");
466 pout() <<
"CdrLayout<T>::getFaceCenteredDiffusionCoefficient()" <<
endl;
472 diffCo.push_back(&(
solver_it()->getFaceCenteredDiffusionCoefficient()));
482 CH_TIME(
"CdrLayout<T>::getEbCenteredDiffusionCoefficient");
484 pout() <<
"CdrLayout<T>::getEbCenteredDiffusionCoefficient" <<
endl;
500 CH_TIME(
"CdrLayout<T>::getEbFlux()");
502 pout() <<
"CdrLayout<T>::getEbFlux()" <<
endl;
518 CH_TIME(
"CdrLayout<T>::getDomainFlux()");
520 pout() <<
"CdrLayout<T>::getDomainFlux()" <<
endl;
532template <
class T,
class S>
535 CH_TIME(
"CdrFactory<T, S>::CdrFactory()");
538template <
class T,
class S>
541 CH_TIME(
"CdrFactory<T, S>::~CdrFactory()");
544template <
class T,
class S>
548 CH_TIME(
"CdrFactory<T, S>::newLayout(Vector<RefCountedPtr<CdrSpecies> >)");
568#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:533
~CdrFactory()
Default constructor (does nothing)
Definition CD_CdrLayoutImplem.H:539
RefCountedPtr< CdrLayout< T > > newLayout(const Vector< RefCountedPtr< CdrSpecies > > &a_species) const
Factory method, create a new CdrLayout.
Definition CD_CdrLayoutImplem.H:546
virtual void setPhase(const phase::which_phase a_phase=phase::gas)
Set phase.
Definition CD_CdrLayoutImplem.H:247
virtual std::string getRealm() const
Get the realm where the Cdr solvers live.
Definition CD_CdrLayoutImplem.H:67
virtual void parseOptions()
Parse class options.
Definition CD_CdrLayoutImplem.H:107
virtual void parseRuntimeOptions()
Parse runtime options.
Definition CD_CdrLayoutImplem.H:121
virtual Vector< EBAMRCellData * > getPhis()
Get all cell-centered states.
Definition CD_CdrLayoutImplem.H:390
virtual Vector< EBAMRIVData * > getEbFlux()
Get all EB flux data holders.
Definition CD_CdrLayoutImplem.H:498
virtual Vector< EBAMRCellData * > getSources()
Get all source terms.
Definition CD_CdrLayoutImplem.H:408
virtual phase::which_phase getPhase() const
Get phase.
Definition CD_CdrLayoutImplem.H:43
virtual void preRegrid(const int a_lbase, const int a_oldFinestLevel)
Call preRegrid(...) method for all the CdrSolvers.
Definition CD_CdrLayoutImplem.H:163
virtual Vector< EBAMRIFData * > getDomainFlux()
Get domain flux data holders.
Definition CD_CdrLayoutImplem.H:516
virtual Vector< EBAMRCellData * > getVelocities()
Get all cell-centered velocities.
Definition CD_CdrLayoutImplem.H:426
virtual void writePlotFile()
Convenience function. All solvers write plot files (for debugging purposes)
Definition CD_CdrLayoutImplem.H:292
virtual void setComputationalGeometry(const RefCountedPtr< ComputationalGeometry > &a_computationalGeometry)
Set the computational geometry for all CdrSolvers.
Definition CD_CdrLayoutImplem.H:233
virtual void setAmr(const RefCountedPtr< AmrMesh > &a_amrMesh)
Set AmrMesh for all CdrSolvers.
Definition CD_CdrLayoutImplem.H:219
virtual Real computeDiffusionDt()
Get time step for explicit diffusion.
Definition CD_CdrLayoutImplem.H:326
virtual ~CdrLayout()
Destructor.
Definition CD_CdrLayoutImplem.H:36
virtual void addSolver(RefCountedPtr< T > &a_solver)
Add solver. This appends a_solver to m_solvers.
Definition CD_CdrLayoutImplem.H:95
virtual Vector< EBAMRIVData * > getEbCenteredDiffusionCoefficient()
Get all EB-centered diffusion coefficients.
Definition CD_CdrLayoutImplem.H:480
virtual void setTime(const int a_step, const Real a_time, const Real a_dt)
Set time.
Definition CD_CdrLayoutImplem.H:278
virtual Real computeAdvectionDiffusionDt()
Get the time step for explicit advection-diffusion.
Definition CD_CdrLayoutImplem.H:346
virtual Vector< EBAMRFluxData * > getFaceCenteredDiffusionCoefficient()
Get all face-centered diffusion coefficients.
Definition CD_CdrLayoutImplem.H:462
virtual void setVerbosity(const int a_verbosity)
Set verbosity for all CdrSolvers.
Definition CD_CdrLayoutImplem.H:263
virtual void registerOperators()
Register operators.
Definition CD_CdrLayoutImplem.H:205
CdrLayout()=delete
Disallowed weak constructor. Use the full constructor.
virtual Vector< RefCountedPtr< T > > & getSolvers()
Get solvers.
Definition CD_CdrLayoutImplem.H:366
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:191
virtual Vector< EBAMRCellData * > getCellCenteredDiffusionCoefficients()
Get all cell-centered diffusion coefficients.
Definition CD_CdrLayoutImplem.H:444
virtual void allocate()
Allocate internal storage for solvers.
Definition CD_CdrLayoutImplem.H:135
virtual void initialData()
Initial data. Fill all solvers with initial data.
Definition CD_CdrLayoutImplem.H:177
virtual Vector< RefCountedPtr< CdrSpecies > > & getSpecies()
Get species.
Definition CD_CdrLayoutImplem.H:378
virtual CdrIterator< T > iterator()
Get an iterator which can iterate through the various Cdr solvers.
Definition CD_CdrLayoutImplem.H:55
virtual Real computeAdvectionDt()
Get CFL time for advection.
Definition CD_CdrLayoutImplem.H:306
virtual void setRealm(const std::string a_realm)
Set realm for all CdrSolvers.
Definition CD_CdrLayoutImplem.H:79
virtual void deallocate()
Deallocate solver internals.
Definition CD_CdrLayoutImplem.H:149
static const std::string Primal
Identifier for perimal realm.
Definition CD_Realm.H:47
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
phase::which_phase m_phase
Phase where this solver lives.
Definition CD_TracerParticleSolver.H:360
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25
std::string m_realm
Realm where this solver lives.
Definition CD_TracerParticleSolver.H:345
int m_verbosity
Verbosity level.
Definition CD_TracerParticleSolver.H:380
virtual void setPhase(const phase::which_phase &a_phase)
Set the solver phase.
Definition CD_TracerParticleSolverImplem.H:245