chombo-discharge
Loading...
Searching...
No Matches
CD_ItoSpecies.H
Go to the documentation of this file.
1/* chombo-discharge
2 * Copyright © 2021 SINTEF Energy Research.
3 * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4 */
5
12#ifndef CD_ItoSpecies_H
13#define CD_ItoSpecies_H
14
15// Chombo includes
16#include <List.H>
17
18// Our includes
19#include <CD_ItoParticle.H>
20#include <CD_NamespaceHeader.H>
21
28{
29public:
33 ItoSpecies();
34
42 ItoSpecies(const std::string a_name, const int a_chargeNumber, const bool a_mobile, const bool a_diffusive);
43
47 virtual ~ItoSpecies();
48
54 getName() const;
55
60 int
61 getChargeNumber() const;
62
67 const std::function<Real(const RealVect& x, const Real& t)>&
68 getInitialDensity() const;
69
73 bool
74 isDiffusive() const;
75
79 bool
80 isMobile() const;
81
88 virtual Real
89 mobility(const Real a_energy) const;
90
97 virtual Real
98 diffusion(const Real a_energy) const;
99
104 virtual void
106
113
118 const List<ItoParticle>&
119 getInitialParticles() const;
120
121protected:
126
131
136
141
146
151
156};
157
158#include <CD_NamespaceFooter.H>
159
160#endif
Declaration of a particle class for Ito diffusion.
Class that acts as user interface for parsing initial data and mobility/diffusion kernels into ItoSol...
Definition CD_ItoSpecies.H:28
ItoSpecies()
Default constructor, but user should set the name, charge/mobility/diffusivity etc.
Definition CD_ItoSpecies.cpp:16
bool isDiffusive() const
Return diffusive or not.
Definition CD_ItoSpecies.cpp:60
int m_chargeNumber
Charge.
Definition CD_ItoSpecies.H:130
std::string getName() const
Return name.
Definition CD_ItoSpecies.cpp:42
bool m_isDiffusive
Diffusive ItoSpecies or not.
Definition CD_ItoSpecies.H:140
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:155
List< ItoParticle > m_initialParticles
Initial particles.
Definition CD_ItoSpecies.H:150
bool isMobile() const
Mobile ItoSpecies or not.
Definition CD_ItoSpecies.cpp:66
const std::function< Real(const RealVect &x, const Real &t)> & getInitialDensity() const
Return the initial density.
Definition CD_ItoSpecies.cpp:54
virtual Real mobility(const Real a_energy) const
Compute the mobility as a function of energy.
Definition CD_ItoSpecies.cpp:90
std::string m_name
Ito_Species name.
Definition CD_ItoSpecies.H:125
bool m_isMobile
Mobile ItoSpecies or not.
Definition CD_ItoSpecies.H:145
int m_maxInitialParticlesPerCell
Maximum number of initial numerical particles per cell.
Definition CD_ItoSpecies.H:135
virtual ~ItoSpecies()
Destructor (does nothing):
Definition CD_ItoSpecies.cpp:38
int getChargeNumber() const
Return charge.
Definition CD_ItoSpecies.cpp:48
List< ItoParticle > & getInitialParticles()
Get initial particles – this is called by ItoSolver when filling the solver with initial particles.
Definition CD_ItoSpecies.cpp:78
virtual void setInitialDensity(const std::function< Real(const RealVect &x, const Real &t)> &a_initialDensity)
Set the initial species density.
Definition CD_ItoSpecies.cpp:72
virtual Real diffusion(const Real a_energy) const
Compute the diffusion coefficient.
Definition CD_ItoSpecies.cpp:96
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25