13#ifndef CD_ITOKMCSTREAMERTAGGERIMPLEM_H
14#define CD_ITOKMCSTREAMERTAGGERIMPLEM_H
21#include <CD_NamespaceHeader.H>
23using namespace Physics::ItoKMC;
28 CH_TIME(
"ItoKMCStreamerTagger::ItoKMCStreamerTagger");
30 this->
m_name =
"ItoKMCStreamerTagger";
31 this->m_numTagFields = 2;
44 CH_TIME(
"ItoKMCStreamerTagger::ItoKMCStreamerTagger");
45 if (this->m_verbosity > 5) {
46 pout() <<
"ItoKMCStreamerTagger::ItoKMCStreamerTagger" <<
endl;
56 CH_TIME(
"ItoKMCStreamerTagger::parseOptions");
58 pout() <<
"ItoKMCStreamerTagger::parseOptions" <<
endl;
62 this->parseTagBoxes();
63 this->parseRefinementBoxes();
67 pp.get(
"coarsen_curvature", this->m_coarsenCurvature);
68 pp.get(
"refine_curvature", this->m_refineCurvature);
69 pp.get(
"refine_alpha", this->m_refineAlpha);
70 pp.get(
"coarsen_alpha", this->m_coarsenAlpha);
71 pp.get(
"max_coarsen_lvl", this->m_maxCoarsenLevel);
78 CH_TIME(
"ItoKMCStreamerTagger::parseRuntimeOptions");
80 pout() <<
"ItoKMCStreamerTagger::parseRuntimeOptions" <<
endl;
84 this->parseTagBoxes();
85 this->parseRefinementBoxes();
89 pp.get(
"coarsen_curvature", this->m_coarsenCurvature);
90 pp.get(
"refine_curvature", this->m_refineCurvature);
91 pp.get(
"refine_alpha", this->m_refineAlpha);
92 pp.get(
"coarsen_alpha", this->m_coarsenAlpha);
93 pp.get(
"max_coarsen_lvl", this->m_maxCoarsenLevel);
108 CH_TIME(
"ItoKMCStreamerTagger::computeTagFields");
109 if (this->m_verbosity > 5) {
110 pout() <<
"ItoKMCStreamerTagger::computeTagFields" <<
endl;
132 CH_TIME(
"ItoKMCStreamerTagger::coarsenCell");
133 if (this->m_verbosity > 5) {
134 pout() <<
"ItoKMCStreamerTagger::coarsenCell" <<
endl;
139 if (
a_lvl >= m_maxCoarsenLevel) {
165 CH_TIME(
"ItoKMCStreamerTagger::refineCell");
166 if (this->m_verbosity > 5) {
167 pout() <<
"ItoKMCStreamerTagger::refineCell" <<
endl;
181#include <CD_NamespaceFooter.H>
Declaration of the Physics::ItoKMC::ItoKMCStreamerTagger CellTagger.
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
virtual void parseRuntimeOptions() noexcept override
Parse runtime-configurable class options.
Definition CD_ItoKMCStreamerTaggerImplem.H:76
virtual Vector< Real > computeTagFields(const RealVect &a_pos, const Real a_time, const Real a_dx, const RealVect &a_E, const Real a_minE, const Real a_maxE, const RealVect &a_gradE, const Real a_minGradE, const Real a_maxGradE) const noexcept override
Compute per-cell tagging fields from the electric field and its gradient.
Definition CD_ItoKMCStreamerTaggerImplem.H:98
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
virtual ~ItoKMCStreamerTagger() noexcept
Destructor.
Definition CD_ItoKMCStreamerTaggerImplem.H:35
virtual void parseOptions() noexcept override
Parse class options.
Definition CD_ItoKMCStreamerTaggerImplem.H:54
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
void parseVerbosity()
Parse solver verbosity.
Definition CD_TracerParticleSolverImplem.H:163
int m_verbosity
Verbosity level.
Definition CD_TracerParticleSolver.H:387
std::string m_name
Solver name.
Definition CD_TracerParticleSolver.H:357