14#ifndef CD_ITOSOLVERIMPLEM_H
15#define CD_ITOSOLVERIMPLEM_H
28#include <CD_NamespaceHeader.H>
36 return (
a > 0) - (
a < 0);
49template <ItoSolver::WhichContainer C>
56 CH_TIME(
"ItoSolver::addParticles");
72template <
class P,
class Ret, Ret (P ::*MemberFunc)() const>
76 CH_TIME(
"ItoSolver::depositParticles");
84template <
class P,
class Ret, Ret (P ::*MemberFunc)() const>
88 const int a_level)
const noexcept
90 CH_TIME(
"ItoSolver::depositParticlesNGP");
91 if (m_verbosity > 5) {
92 pout() << m_name +
"::depositParticlesNGP" <<
endl;
109#pragma omp parallel for schedule(runtime)
125template <
class P,
class Ret, Ret (P ::*MemberFunc)() const>
132 CH_TIME(
"ItoSolver::depositParticles");
152template <
class P,
class Ret, Ret (P ::*MemberFunc)() const>
159 CH_TIME(
"ItoSolver::depositKappaConservative");
175#include <CD_NamespaceFooter.H>
CoarseFineDeposition
Coarse-fine deposition types (see CD_EBAMRParticleMesh for how these are handled).
Definition CD_CoarseFineDeposition.H:27
Agglomeration of useful data operations.
DepositionType
Deposition types.
Definition CD_DepositionType.H:24
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:35
CoarseFineDeposition m_coarseFineDeposition
Coarse-fine deposition strategy.
Definition CD_ItoSolver.H:1267
void depositKappaConservative(EBAMRCellData &a_phi, ParticleContainer< P > &a_particles, DepositionType a_deposition, CoarseFineDeposition a_coarseFineDeposition) const
Compute the cell-centered deposition – this is the main deposition function.
Definition CD_ItoSolverImplem.H:154
virtual void depositParticles()
Deposit particles onto mesh.
Definition CD_ItoSolver.cpp:1833
void depositParticlesNGP(LevelData< EBCellFAB > &a_output, const ParticleContainer< P > &a_particles, int a_level) const noexcept
Do an NGP deposit on a specific grid level. Used for IO.
Definition CD_ItoSolverImplem.H:86
bool m_forceIrregDepositionNGP
NGP deposition in cut cells or not.
Definition CD_ItoSolver.H:1177
std::string m_realm
Realm where this solve lives.
Definition CD_ItoSolver.H:1110
DepositionType m_deposition
Deposition method when depositing particles to the mesh.
Definition CD_ItoSolver.H:1262
std::string m_name
Solver name.
Definition CD_ItoSolver.H:1135
RealVect randomGaussian() const
Draw a random N-dimensional Gaussian number from a normal distribution with zero with and unit standa...
Definition CD_ItoSolverImplem.H:31
std::map< WhichContainer, ParticleContainer< ItoParticle > > m_particleContainers
Various particle containers with identifiers.
Definition CD_ItoSolver.H:1307
int m_verbosity
Verbosity level for this solver.
Definition CD_ItoSolver.H:1157
Real m_normalDistributionTruncation
Truncation value for normal distribution.
Definition CD_ItoSolver.H:1147
RefCountedPtr< AmrMesh > m_amr
AMR; needed for grid stuff.
Definition CD_ItoSolver.H:1120
virtual void redistributeAMR(EBAMRCellData &a_phi) const
Redistribute mass in an AMR context.
Definition CD_ItoSolver.cpp:1858
phase::which_phase m_phase
Phase where this solver lives.
Definition CD_ItoSolver.H:1130
void addParticles(ListBox< ItoParticle > &a_inputParticles, int a_lvl, const DataIndex &a_dit, 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:51
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:38
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:736
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26
virtual void deposit(EBAMRCellData &a_phi) const noexcept
Deposit particle weight on mesh.
Definition CD_TracerParticleSolverImplem.H:363