chombo-discharge
CD_ItoPlasmaFieldTagger.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_ItoPlasmaFieldTagger_H
13 #define CD_ItoPlasmaFieldTagger_H
14 
15 // Our includes
16 #include <CD_ItoPlasmaTagger.H>
17 #include <CD_NamespaceHeader.H>
18 
19 namespace Physics {
20  namespace ItoPlasma {
21 
28  {
29  public:
34 
39 
43  void
45 
49  virtual void
50  parseOptions() = 0;
51 
55  virtual void
57 
58  protected:
63 
68 
73 
77  void
79 
83  void
85 
89  void
91 
95  virtual Vector<Real>
96  tracer(const RealVect a_pos,
97  const Real a_time,
98  const Real a_dx,
99  const RealVect a_E,
100  const Real a_min_E,
101  const Real a_max_E,
102  const RealVect a_grad_E,
103  const Real a_min_grad_E,
104  const Real a_max_grad_E) = 0;
105 
109  virtual bool
110  coarsenCell(const RealVect a_pos,
111  const Real a_time,
112  const Real a_dx,
113  const int a_lvl,
114  const Vector<Real> a_tracer,
115  const Vector<RealVect> a_grad_tracer) = 0;
116 
120  virtual bool
121  refineCell(const RealVect a_pos,
122  const Real a_time,
123  const Real a_dx,
124  const int a_lvl,
125  const Vector<Real> a_tracer,
126  const Vector<RealVect> a_grad_tracer) = 0;
127  };
128  } // namespace ItoPlasma
129 } // namespace Physics
130 
131 #include <CD_NamespaceFooter.H>
132 
133 #endif
Parent tagger class for ItoPlasma.
Lightweight tagging class. Only tags cells based on electric field.
Definition: CD_ItoPlasmaFieldTagger.H:28
~ItoPlasmaFieldTagger()
Destructor.
Definition: CD_ItoPlasmaFieldTagger.cpp:32
ItoPlasmaFieldTagger()
Weak constructor, must subsequently call define.
Definition: CD_ItoPlasmaFieldTagger.cpp:22
void computeElectricField(EBAMRCellData &a_E, EBAMRCellData &a_grad_E)
Compute electric field.
Definition: CD_ItoPlasmaFieldTagger.cpp:61
virtual void parseOptions()=0
Parse options.
virtual bool coarsenCell(const RealVect a_pos, const Real a_time, const Real a_dx, const int a_lvl, const Vector< Real > a_tracer, const Vector< RealVect > a_grad_tracer)=0
Coarsen a cell based on a tracer field.
virtual Vector< Real > tracer(const RealVect a_pos, const Real a_time, const Real a_dx, const RealVect a_E, const Real a_min_E, const Real a_max_E, const RealVect a_grad_E, const Real a_min_grad_E, const Real a_max_grad_E)=0
Compute tracer field.
virtual bool refineCell(const RealVect a_pos, const Real a_time, const Real a_dx, const int a_lvl, const Vector< Real > a_tracer, const Vector< RealVect > a_grad_tracer)=0
Refine a cell based on a tracer field.
EBAMRCellData m_grad_E
Storage for electric field.
Definition: CD_ItoPlasmaFieldTagger.H:72
EBAMRCellData m_E
Storage for electric field.
Definition: CD_ItoPlasmaFieldTagger.H:67
void allocateStorage()
Allocate memory.
Definition: CD_ItoPlasmaFieldTagger.cpp:35
void deallocateStorage()
Deallocate memory.
Definition: CD_ItoPlasmaFieldTagger.cpp:48
EBAMRCellData m_scratch
Scratch storage.
Definition: CD_ItoPlasmaFieldTagger.H:62
virtual void parseRuntimeOptions()=0
Parse options.
void computeTracers()
Compute tracer fields.
Definition: CD_ItoPlasmaFieldTagger.cpp:81
Abstract class for tagging cells across an AMR hierarchy.
Definition: CD_ItoPlasmaTagger.H:28
Name containing various physics models for running chombo-discharge code.
Definition: CD_AdvectionDiffusion.H:15