13#ifndef CD_ItoSolverImplem_H
14#define CD_ItoSolverImplem_H
27#include <CD_NamespaceHeader.H>
35 return (
a > 0) - (
a < 0);
48template <ItoSolver::WhichContainer C>
55 CH_TIME(
"ItoSolver::addParticles");
71template <
class P,
class Ret, Ret (P ::*MemberFunc)() const>
75 CH_TIME(
"ItoSolver::depositParticles");
83template <
class P,
class Ret, Ret (P ::*MemberFunc)() const>
87 const int a_level)
const noexcept
89 CH_TIME(
"ItoSolver::depositParticlesNGP");
90 if (m_verbosity > 5) {
91 pout() << m_name +
"::depositParticlesNGP" <<
endl;
108#pragma omp parallel for schedule(runtime)
124template <
class P,
class Ret, Ret (P ::*MemberFunc)() const>
131 CH_TIME(
"ItoSolver::depositParticles");
151template <
class P,
class Ret, Ret (P ::*MemberFunc)() const>
158 CH_TIME(
"ItoSolver::depositKappaConservative");
174#include <CD_NamespaceFooter.H>
CoarseFineDeposition
Coarse-fine deposition types (see CD_EBAMRParticleMesh for how these are handled).
Definition CD_CoarseFineDeposition.H:26
Agglomeration of useful data operations.
DepositionType
Deposition types.
Definition CD_DepositionType.H:23
Declaration of solver class for Ito diffusion.
File containing some useful static methods related to random number generation.
A class for depositing and interpolating particles on a single grid patch.
Definition CD_EBParticleMesh.H:34
CoarseFineDeposition m_coarseFineDeposition
Coarse-fine deposition strategy.
Definition CD_ItoSolver.H:1236
virtual void depositParticles()
Deposit particles onto mesh.
Definition CD_ItoSolver.cpp:1825
bool m_forceIrregDepositionNGP
NGP deposition in cut cells or not.
Definition CD_ItoSolver.H:1146
std::string m_realm
Realm where this solve lives.
Definition CD_ItoSolver.H:1079
DepositionType m_deposition
Deposition method when depositing particles to the mesh.
Definition CD_ItoSolver.H:1231
std::string m_name
Solver name.
Definition CD_ItoSolver.H:1104
RealVect randomGaussian() const
Draw a random N-dimensional Gaussian number from a normal distribution with zero with and unit standa...
Definition CD_ItoSolverImplem.H:30
std::map< WhichContainer, ParticleContainer< ItoParticle > > m_particleContainers
Various particle containers with identifiers.
Definition CD_ItoSolver.H:1276
int m_verbosity
Verbosity level for this solver.
Definition CD_ItoSolver.H:1126
void addParticles(ListBox< ItoParticle > &a_inputParticles, const int a_lvl, const DataIndex a_dit, const bool a_destructive)
Add particles to a contain. This adds into a specific grid level and patch. The user can delete the i...
Definition CD_ItoSolverImplem.H:50
void depositKappaConservative(EBAMRCellData &a_phi, ParticleContainer< P > &a_particles, const DepositionType a_deposition, const CoarseFineDeposition a_coarseFineDeposition) const
Compute the cell-centered deposition – this is the main deposition function.
Definition CD_ItoSolverImplem.H:153
Real m_normalDistributionTruncation
Truncation value for normal distribution.
Definition CD_ItoSolver.H:1116
RefCountedPtr< AmrMesh > m_amr
AMR; needed for grid stuff.
Definition CD_ItoSolver.H:1089
virtual void redistributeAMR(EBAMRCellData &a_phi) const
Redistribute mass in an AMR context.
Definition CD_ItoSolver.cpp:1850
phase::which_phase m_phase
Phase where this solver lives.
Definition CD_ItoSolver.H:1099
void depositParticlesNGP(LevelData< EBCellFAB > &a_output, const ParticleContainer< P > &a_particles, const int a_level) const noexcept
Do an NGP deposit on a specific grid level. Used for IO.
Definition CD_ItoSolverImplem.H:85
static Real getNormal01()
Get a number from a normal distribution centered on zero and variance 1.
Definition CD_RandomImplem.H:172
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
void depositParticles(EBAMRCellData &a_phi, const ParticleContainer< T > &a_particles, const DepositionType a_baseDeposition, const CoarseFineDeposition a_coarseFineDeposition) const noexcept
Generic particle deposition method for putting a scalar field onto the mesh.
Definition CD_TracerParticleSolverImplem.H:735
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25
virtual void deposit(EBAMRCellData &a_phi) const noexcept
Deposit particle weight on mesh.
Definition CD_TracerParticleSolverImplem.H:362