chombo-discharge
Loading...
Searching...
No Matches
CD_ItoSpecies.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_ITOSPECIES_H
14#define CD_ITOSPECIES_H
15
16// Chombo includes
17#include <List.H>
18
19// Our includes
20#include <CD_ItoParticle.H>
21#include <CD_NamespaceHeader.H>
22
29{
30public:
34 ItoSpecies();
35
43 ItoSpecies(const std::string& a_name, const int a_chargeNumber, const bool a_mobile, const bool a_diffusive);
44
48 virtual ~ItoSpecies();
49
55 getName() const;
56
61 int
62 getChargeNumber() const;
63
68 const std::function<Real(const RealVect& x, const Real& t)>&
69 getInitialDensity() const;
70
75 bool
76 isDiffusive() const;
77
82 bool
83 isMobile() const;
84
92 virtual Real
93 mobility(const Real a_energy) const;
94
102 virtual Real
103 diffusion(const Real a_energy) const;
104
109 virtual void
111
118
123 const List<ItoParticle>&
124 getInitialParticles() const;
125
126protected:
131
136
141
146
151
156
161};
162
163#include <CD_NamespaceFooter.H>
164
165#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:29
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:135
std::string getName() const
Return name.
Definition CD_ItoSpecies.cpp:37
bool m_isDiffusive
Diffusive ItoSpecies or not.
Definition CD_ItoSpecies.H:145
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:160
List< ItoParticle > m_initialParticles
Initial particles.
Definition CD_ItoSpecies.H:155
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:130
bool m_isMobile
Mobile ItoSpecies or not.
Definition CD_ItoSpecies.H:150
int m_maxInitialParticlesPerCell
Maximum number of initial numerical particles per cell.
Definition CD_ItoSpecies.H:140
virtual ~ItoSpecies()
Destructor (does nothing):
int getChargeNumber() const
Return charge.
Definition CD_ItoSpecies.cpp:43
List< ItoParticle > & getInitialParticles()
Get initial particles – this is called by ItoSolver when filling the solver with initial particles.
Definition CD_ItoSpecies.cpp:73
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
virtual Real diffusion(const Real a_energy) const
Compute the diffusion coefficient.
Definition CD_ItoSpecies.cpp:91
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26