chombo-discharge
Loading...
Searching...
No Matches
CD_ItoKMCStreamerTagger.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_ITOKMCSTREAMERTAGGER_H
14#define CD_ITOKMCSTREAMERTAGGER_H
15
16// Our includes
18#include <CD_NamespaceHeader.H>
19
20namespace Physics {
21namespace ItoKMC {
22
29template <typename S>
31{
32public:
36 ItoKMCStreamerTagger() noexcept;
37
44 ItoKMCStreamerTagger(const RefCountedPtr<ItoKMCPhysics>& a_physics,
45 const RefCountedPtr<S>& a_timeStepper,
46 const RefCountedPtr<AmrMesh>& a_amr) noexcept;
47
51 virtual ~ItoKMCStreamerTagger() noexcept;
52
56 virtual void
57 parseOptions() noexcept override;
58
62 virtual void
63 parseRuntimeOptions() noexcept override;
64
65protected:
70
75
80
85
90
104 virtual Vector<Real>
105 computeTagFields(const RealVect& a_pos,
106 const Real a_time,
107 const Real a_dx,
108 const RealVect& a_E,
109 const Real a_minE,
110 const Real a_maxE,
111 const RealVect& a_gradE,
112 const Real a_minGradE,
113 const Real a_maxGradE) const noexcept override;
114
125 virtual bool
126 coarsenCell(const RealVect& a_pos,
127 const Real a_time,
128 const Real a_dx,
129 const int a_lvl,
130 const Vector<Real>& a_tagFields,
131 const Vector<RealVect>& a_gradTagFields) const noexcept override;
132
143 virtual bool
144 refineCell(const RealVect& a_pos,
145 const Real a_time,
146 const Real a_dx,
147 const int a_lvl,
148 const Vector<Real>& a_tagFields,
149 const Vector<RealVect>& a_gradTagFields) const noexcept override;
150};
151} // namespace ItoKMC
152} // namespace Physics
153
154#include <CD_NamespaceFooter.H>
155
157
158#endif
Declaration of the Physics::ItoKMC::ItoKMCFieldTagger abstract CellTagger.
Implementation of CD_ItoKMCStreamerTagger.H.
Lightweight tagging class. Only tags cells based on the electric field.
Definition CD_ItoKMCFieldTagger.H:31
virtual void computeTagFields() const noexcept override
Compute tagging fields.
Definition CD_ItoKMCFieldTaggerImplem.H:99
CellTagger for the ItoKMC module that refines on the ionization coefficient and field curvature.
Definition CD_ItoKMCStreamerTagger.H:31
int m_maxCoarsenLevel
Set coarsening level.
Definition CD_ItoKMCStreamerTagger.H:89
ItoKMCStreamerTagger() noexcept
Constructor. Must subsequently call the define function.
Definition CD_ItoKMCStreamerTaggerImplem.H:26
virtual bool refineCell(const RealVect &a_pos, const Real a_time, const Real a_dx, const int a_lvl, const Vector< Real > &a_tagFields, const Vector< RealVect > &a_gradTagFields) const noexcept override
Determine if a particular cell should be refined.
Definition CD_ItoKMCStreamerTaggerImplem.H:158
Real m_refineAlpha
Threshold for ionization refinement.
Definition CD_ItoKMCStreamerTagger.H:79
Real m_refineCurvature
Threshold for refinement based on curvature.
Definition CD_ItoKMCStreamerTagger.H:74
virtual void parseRuntimeOptions() noexcept override
Parse runtime-configurable class options.
Definition CD_ItoKMCStreamerTaggerImplem.H:76
virtual bool coarsenCell(const RealVect &a_pos, const Real a_time, const Real a_dx, const int a_lvl, const Vector< Real > &a_tagFields, const Vector< RealVect > &a_gradTagFields) const noexcept override
Determine if a particular cell should be coarsened.
Definition CD_ItoKMCStreamerTaggerImplem.H:125
Real m_coarsenCurvature
Threshold for coarsening based on curvature.
Definition CD_ItoKMCStreamerTagger.H:69
Real m_coarsenAlpha
Threshold for ionization coarsening.
Definition CD_ItoKMCStreamerTagger.H:84
virtual ~ItoKMCStreamerTagger() noexcept
Destructor.
Definition CD_ItoKMCStreamerTaggerImplem.H:35
virtual void parseOptions() noexcept override
Parse class options.
Definition CD_ItoKMCStreamerTaggerImplem.H:54
Namespace containing physics models for use with chombo-discharge.
Definition CD_AdvectionDiffusion.H:16