chombo-discharge
Loading...
Searching...
No Matches
CD_ItoParticle.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_ITOPARTICLE_H
14#define CD_ITOPARTICLE_H
15
16// Std includes
17#include <string>
18#include <typeinfo>
19#include <cstdio>
20#include <cmath>
21
22// Our includes
23#include <CD_GenericParticle.H>
24#include <CD_NamespaceHeader.H>
25
40class ItoParticle : public GenericParticle<5, 3>
41{
42public:
47
52
57 inline ItoParticle();
58
69 inline ItoParticle(const Real a_weight,
70 const RealVect& a_position,
72 const Real a_diffusion = 0.0,
73 const Real a_mobility = 1.0,
74 const Real a_energy = 0.0);
75
80 inline ItoParticle(const ItoParticle& a_other);
81
85 inline virtual ~ItoParticle();
86
96 inline void
97 define(const Real a_weight,
98 const RealVect& a_position,
100 const Real a_diffusion = 0.0,
101 const Real a_mobility = 1.0,
102 const Real a_energy = 0.0);
103
108 inline Real&
109 weight();
110
115 inline const Real&
116 weight() const;
117
122 inline Real&
123 diffusion();
124
129 inline const Real&
130 diffusion() const;
131
136 inline Real&
137 mobility();
138
143 inline const Real&
144 mobility() const;
145
150 inline Real&
151 energy();
152
157 inline const Real&
158 energy() const;
159
164 inline RealVect&
165 oldPosition();
166
171 inline const RealVect&
172 oldPosition() const;
173
178 inline RealVect&
179 velocity();
180
185 inline const RealVect&
186 velocity() const;
187
192 inline Real
193 totalEnergy() const;
194
199 inline Real
200 conductivity() const;
201
206 inline Real
207 diffusivity() const;
208
213 inline Real&
214 tmpReal();
215
220 inline const Real&
221 tmpReal() const;
222
227 inline RealVect&
228 tmpVect();
229
234 inline const RealVect&
235 tmpVect() const;
236
242 inline virtual int
243 H5size() const;
244
250 inline virtual void
251 H5linearOut(void* const a_buffer) const;
252
258 inline virtual void
259 H5linearIn(const void* const a_buffer);
260};
261
262#include <CD_NamespaceFooter.H>
263
264#include <CD_ItoParticleImplem.H>
265
266#endif
Declaration of a generic particle class.
Implementation of CD_ItoParticle.H.
A generic particle class, holding the position and a specified number of real and vector values.
Definition CD_GenericParticle.H:77
A particle class for use with ItoSolvers, i.e. drifting Brownian walkers.
Definition CD_ItoParticle.H:41
Real & energy()
Get average particle energy.
Definition CD_ItoParticleImplem.H:108
virtual void H5linearOut(void *const a_buffer) const
Linearize the checkpointed Real components onto a buffer workable by HDF5.
Definition CD_ItoParticleImplem.H:198
virtual void H5linearIn(const void *const a_buffer)
Delinearize the buffer onto the checkpointed real components in the particle class.
Definition CD_ItoParticleImplem.H:218
Real conductivity() const
Get the particle conductivity.
Definition CD_ItoParticleImplem.H:144
virtual ~ItoParticle()
Destructor (deallocates runtime memory storage)
Definition CD_ItoParticleImplem.H:52
Real & diffusion()
Get particle diffusion coefficient.
Definition CD_ItoParticleImplem.H:96
ItoParticle()
Default constructor – user should subsequently set the variables or call define.
Definition CD_ItoParticleImplem.H:26
Real & mobility()
Get mobility coefficient.
Definition CD_ItoParticleImplem.H:84
RealVect & oldPosition()
Get the old particle position.
Definition CD_ItoParticleImplem.H:120
RealVect & tmpVect()
Return scratch RealVect storage.
Definition CD_ItoParticleImplem.H:174
void define(const Real a_weight, const RealVect &a_position, const RealVect &a_velocity=RealVect::Zero, const Real a_diffusion=0.0, const Real a_mobility=1.0, const Real a_energy=0.0)
Full define function.
Definition CD_ItoParticleImplem.H:56
Real diffusivity() const
Get the particle diffusivity.
Definition CD_ItoParticleImplem.H:150
static std::vector< std::string > s_vectVariables
Naming convention for vector fields.
Definition CD_ItoParticle.H:18
virtual int H5size() const
Function that is used when writing particles to HDF5.
Definition CD_ItoParticleImplem.H:186
Real totalEnergy() const
Get the total energy.
Definition CD_ItoParticleImplem.H:156
Real & weight()
Get particle weight.
Definition CD_ItoParticleImplem.H:72
static std::vector< std::string > s_realVariables
Naming convention for scalar fields.
Definition CD_ItoParticle.H:17
RealVect & velocity()
Get the particle velocity.
Definition CD_ItoParticleImplem.H:132
Real & tmpReal()
Return scratch scalar storage.
Definition CD_ItoParticleImplem.H:162
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