13#ifndef CD_ITOSPECIES_H
14#define CD_ITOSPECIES_H
21#include <CD_NamespaceHeader.H>
44 ItoSpecies(
const std::string& a_name,
const int a_chargeNumber,
const bool a_mobile,
const bool a_diffusive);
69 const std::function<Real(
const RealVect& x,
const Real& t)>&
113 setInitialDensity(
const std::function<Real(
const RealVect& x,
const Real& t)>& a_initialDensity);
166#include <CD_NamespaceFooter.H>
SoA payload for Ito diffusion particles (drifting Brownian walkers)
Class that acts as user interface for parsing initial data and mobility/diffusion kernels into ItoSol...
Definition CD_ItoSpecies.H:30
ItoSpecies()
Default constructor, but user should set the name, charge/mobility/diffusivity etc.
Definition CD_ItoSpecies.cpp:17
bool isDiffusive() const
Return diffusive or not.
Definition CD_ItoSpecies.cpp:55
int m_chargeNumber
Charge.
Definition CD_ItoSpecies.H:138
std::string getName() const
Return name.
Definition CD_ItoSpecies.cpp:37
bool m_isDiffusive
Diffusive ItoSpecies or not.
Definition CD_ItoSpecies.H:148
std::function< Real(const RealVect &x, const Real &t)> m_initialDensity
Initial density, in case the user wants to generate particles from a density distribution.
Definition CD_ItoSpecies.H:163
bool isMobile() const
Mobile ItoSpecies or not.
Definition CD_ItoSpecies.cpp:61
const std::function< Real(const RealVect &x, const Real &t)> & getInitialDensity() const
Return the initial density.
Definition CD_ItoSpecies.cpp:49
virtual Real mobility(const Real a_energy) const
Compute the mobility as a function of energy.
Definition CD_ItoSpecies.cpp:85
std::string m_name
Ito_Species name.
Definition CD_ItoSpecies.H:133
ParticleSoA< ItoParticle > m_initialParticles
Initial particles.
Definition CD_ItoSpecies.H:158
bool m_isMobile
Mobile ItoSpecies or not.
Definition CD_ItoSpecies.H:153
int m_maxInitialParticlesPerCell
Maximum number of initial numerical particles per cell.
Definition CD_ItoSpecies.H:143
virtual ~ItoSpecies()
Destructor (does nothing):
int getChargeNumber() const
Return charge.
Definition CD_ItoSpecies.cpp:43
virtual void setInitialDensity(const std::function< Real(const RealVect &x, const Real &t)> &a_initialDensity)
Set the initial species density.
Definition CD_ItoSpecies.cpp:67
ParticleSoA< ItoParticle > & getInitialParticles()
Get initial particles – this is called by ItoSolver when filling the solver with initial particles.
Definition CD_ItoSpecies.cpp:73
virtual Real diffusion(const Real a_energy) const
Compute the diffusion coefficient.
Definition CD_ItoSpecies.cpp:91
Arena-backed Struct-of-Arrays particle container for a single grid patch.
Definition CD_ParticleSoA.H:655