12#ifndef CD_ItoKMCStreamerTaggerImplem_H
13#define CD_ItoKMCStreamerTaggerImplem_H
20#include <CD_NamespaceHeader.H>
22using namespace Physics::ItoKMC;
27 CH_TIME(
"ItoKMCStreamerTagger::ItoKMCStreamerTagger");
29 this->
m_name =
"ItoKMCStreamerTagger";
30 this->m_numTagFields = 2;
43 CH_TIME(
"ItoKMCStreamerTagger::ItoKMCStreamerTagger");
44 if (this->m_verbosity > 5) {
45 pout() <<
"ItoKMCStreamerTagger::ItoKMCStreamerTagger" <<
endl;
55 CH_TIME(
"ItoKMCStreamerTagger::parseOptions");
57 pout() <<
"ItoKMCStreamerTagger::parseOptions" <<
endl;
61 this->parseTagBoxes();
62 this->parseRefinementBoxes();
66 pp.get(
"coarsen_curvature", this->m_coarsenCurvature);
67 pp.get(
"refine_curvature", this->m_refineCurvature);
68 pp.get(
"refine_alpha", this->m_refineAlpha);
69 pp.get(
"coarsen_alpha", this->m_coarsenAlpha);
70 pp.get(
"max_coarsen_lvl", this->m_maxCoarsenLevel);
77 CH_TIME(
"ItoKMCStreamerTagger::parseOptions");
79 pout() <<
"ItoKMCStreamerTagger::parseOptions" <<
endl;
83 this->parseTagBoxes();
84 this->parseRefinementBoxes();
88 pp.get(
"coarsen_curvature", this->m_coarsenCurvature);
89 pp.get(
"refine_curvature", this->m_refineCurvature);
90 pp.get(
"refine_alpha", this->m_refineAlpha);
91 pp.get(
"coarsen_alpha", this->m_coarsenAlpha);
92 pp.get(
"max_coarsen_lvl", this->m_maxCoarsenLevel);
107 CH_TIME(
"ItoKMCStreamerTagger::computeTagFields");
108 if (this->m_verbosity > 5) {
109 pout() <<
"ItoKMCStreamerTagger::computeTagFields" <<
endl;
131 CH_TIME(
"ItoKMCStreamerTagger::coarsenCell");
132 if (this->m_verbosity > 5) {
133 pout() <<
"ItoKMCStreamerTagger::coarsenCell" <<
endl;
138 if (
a_lvl >= m_maxCoarsenLevel) {
164 CH_TIME(
"ItoKMCStreamerTagger::refineCell");
165 if (this->m_verbosity > 5) {
166 pout() <<
"ItoKMCStreamerTagger::refineCell" <<
endl;
180#include <CD_NamespaceFooter.H>
Implementation ItoKMCTagger which tags on alpha and curvature of field.
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
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 tracer field.
Definition CD_ItoKMCStreamerTaggerImplem.H:97
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
virtual void parseRuntimeOptions() noexcept override
Parse class options.
Definition CD_ItoKMCStreamerTaggerImplem.H:75
virtual ~ItoKMCStreamerTagger() noexcept
Destructor.
Definition CD_ItoKMCStreamerTaggerImplem.H:34
virtual void parseOptions() noexcept override
Parse class options.
Definition CD_ItoKMCStreamerTaggerImplem.H:53
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25
void parseVerbosity()
Parse solver verbosity.
Definition CD_TracerParticleSolverImplem.H:162
int m_verbosity
Verbosity level.
Definition CD_TracerParticleSolver.H:380
std::string m_name
Solver name.
Definition CD_TracerParticleSolver.H:350