chombo-discharge
CD_ItoKMCStreamerTagger.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_ItoKMCStreamerTagger_H
13 #define CD_ItoKMCStreamerTagger_H
14 
15 // Our includes
16 #include <CD_ItoKMCFieldTagger.H>
17 #include <CD_NamespaceHeader.H>
18 
19 namespace Physics {
20  namespace ItoKMC {
21 
25  template <typename S>
27  {
28  public:
32  ItoKMCStreamerTagger() noexcept;
33 
40  ItoKMCStreamerTagger(const RefCountedPtr<ItoKMCPhysics>& a_physics,
41  const RefCountedPtr<S>& a_timeStepper,
42  const RefCountedPtr<AmrMesh>& a_amr) noexcept;
43 
47  virtual ~ItoKMCStreamerTagger() noexcept;
48 
52  virtual void
53  parseOptions() noexcept override;
54 
58  virtual void
59  parseRuntimeOptions() noexcept override;
60 
61  protected:
66 
71 
76 
81 
86 
99  virtual Vector<Real>
100  computeTagFields(const RealVect a_pos,
101  const Real a_time,
102  const Real a_dx,
103  const RealVect a_E,
104  const Real a_minE,
105  const Real a_maxE,
106  const RealVect a_gradE,
107  const Real a_minGradE,
108  const Real a_maxGradE) const noexcept override;
109 
119  virtual bool
120  coarsenCell(const RealVect a_pos,
121  const Real a_time,
122  const Real a_dx,
123  const int a_lvl,
124  const Vector<Real> a_tagFields,
125  const Vector<RealVect> a_gradTagFields) const noexcept override;
126 
136  virtual bool
137  refineCell(const RealVect a_pos,
138  const Real a_time,
139  const Real a_dx,
140  const int a_lvl,
141  const Vector<Real> a_tagFields,
142  const Vector<RealVect> a_gradTagFields) const noexcept override;
143  };
144  } // namespace ItoKMC
145 } // namespace Physics
146 
147 #include <CD_NamespaceFooter.H>
148 
150 
151 #endif
Declaration of an abstract field-only tagging class for ito plasmas.
Implementation CD_ItoKMCStreamerTagger.H.
Lightweight tagging class. Only tags cells based on the electric field.
Definition: CD_ItoKMCFieldTagger.H:30
virtual void computeTagFields() const noexcept override
Compute tagging fields.
Definition: CD_ItoKMCFieldTaggerImplem.H:95
Cell tagging class for streamers.
Definition: CD_ItoKMCStreamerTagger.H:27
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 or not.
Definition: CD_ItoKMCStreamerTaggerImplem.H:157
int m_maxCoarsenLevel
Set coarsening level.
Definition: CD_ItoKMCStreamerTagger.H:85
ItoKMCStreamerTagger() noexcept
Constructor. Must subsequently call the define function.
Definition: CD_ItoKMCStreamerTaggerImplem.H:25
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 or not.
Definition: CD_ItoKMCStreamerTaggerImplem.H:124
Real m_refineAlpha
Threshold for ionization refinement.
Definition: CD_ItoKMCStreamerTagger.H:75
Real m_refineCurvature
Threshold for refinement based on curvature.
Definition: CD_ItoKMCStreamerTagger.H:70
virtual void parseRuntimeOptions() noexcept override
Parse class options.
Definition: CD_ItoKMCStreamerTaggerImplem.H:75
Real m_coarsenCurvature
Threshold for coarsening based on curvature.
Definition: CD_ItoKMCStreamerTagger.H:65
Real m_coarsenAlpha
Threshold for ionization coarsening.
Definition: CD_ItoKMCStreamerTagger.H:80
virtual ~ItoKMCStreamerTagger() noexcept
Destructor.
Definition: CD_ItoKMCStreamerTaggerImplem.H:34
virtual void parseOptions() noexcept override
Parse class options.
Definition: CD_ItoKMCStreamerTaggerImplem.H:53
Name containing various physics models for running chombo-discharge code.
Definition: CD_AdvectionDiffusion.H:15