Chombo + EB  3.2
AMRLevelAdvectDiffuseFactory.H
Go to the documentation of this file.
1 #ifdef CH_LANG_CC
2 /*
3  * _______ __
4  * / ___/ / ___ __ _ / / ___
5  * / /__/ _ \/ _ \/ V \/ _ \/ _ \
6  * \___/_//_/\___/_/_/_/_.__/\___/
7  * Please refer to Copyright.txt, in Chombo's root directory.
8  */
9 #endif
10 
11 #ifndef _AMRLEVELADVECTDIFFUSEFACTORY_H_
12 #define _AMRLEVELADVECTDIFFUSEFACTORY_H_
13 
14 #include "AMRLevelFactory.H"
15 
16 #include "AdvectionFunctions.H"
17 #include "AMRLevelAdvectDiffuse.H"
18 
19 #include "NamespaceHeader.H"
20 
21 ///
22 /**
23  */
25 {
26 public:
27 
28  /// Constructor
29  /**
30  */
31  AMRLevelAdvectDiffuseFactory(/// advection physics class
32  const AdvectPhysics& a_gphys,
33  /// velocity function providing the advection velocity
34  AdvectionVelocityFunction a_advFunc,
35  /// boundary condition class for diffusion solve
36  BCHolder a_bcFunc,
37  /// CFL number
38  const Real& a_cfl,
39  /// physical length of domain
40  const Real& a_domainLength,
41  /// undivided gradient size over which a cell will be tagged for refinement
42  const Real& a_refineThresh,
43  /// number of buffer cells around each tagged cell that will also be tagged
44  const int& a_tagBufferSize,
45  /// CFL number at beginning of calculation
46  const Real& a_initialDtMultiplier,
47  /// whether to use van Leer limiting
48  const bool& a_useLimiting,
49  /// diffusion coefficient
50  const Real& a_nu);
51 
52 
53  /// Destructor
55  {
56  }
57 
58 
59  ///
60  virtual AMRLevel* new_amrlevel() const;
61 
62 protected:
63 
73  BCHolder m_bcFunc; //bc for diffusion solve
74 
75 private:
76 
77  /// Weak construction is disallowed
79  {
80  MayDay::Error("invalid operator");
81  }
82 
83  // Disallowed for all the usual reasons
86 };
87 
88 #include "NamespaceFooter.H"
89 
90 #endif
Real(* AdvectionVelocityFunction)(const RealVect &a_point, const int &a_velComp)
Velocity function interface.
Definition: AdvectionFunctions.H:23
Definition: BCFunc.H:136
AdvectionVelocityFunction m_advFunc
Definition: AMRLevelAdvectDiffuseFactory.H:72
Definition: AMRLevelAdvectDiffuseFactory.H:24
AMRLevelAdvectDiffuseFactory()
Weak construction is disallowed.
Definition: AMRLevelAdvectDiffuseFactory.H:78
Real m_nu
Definition: AMRLevelAdvectDiffuseFactory.H:70
Abstract base class for time-dependent data at a level of refinement.
Definition: AMRLevel.H:47
Real m_initialDtMultiplier
Definition: AMRLevelAdvectDiffuseFactory.H:68
bool m_useLimiting
Definition: AMRLevelAdvectDiffuseFactory.H:69
BCHolder m_bcFunc
Definition: AMRLevelAdvectDiffuseFactory.H:73
double Real
Definition: REAL.H:33
int m_tagBufferSize
Definition: AMRLevelAdvectDiffuseFactory.H:67
static void Error(const char *const a_msg=m_nullString, int m_exitCode=CH_DEFAULT_ERROR_CODE)
Print out message to cerr and exit with the specified exit code.
virtual AMRLevel * new_amrlevel() const
A class derived from GodunovPhysics for simple advection-diffusion problems.
Definition: AdvectPhysics.H:22
Real m_cfl
Definition: AMRLevelAdvectDiffuseFactory.H:64
void operator=(const AMRLevelAdvectDiffuseFactory &)
Real m_refineThresh
Definition: AMRLevelAdvectDiffuseFactory.H:66
Factory class to produce an AMRLevel.
Definition: AMRLevelFactory.H:22
RefCountedPtr< AdvectPhysics > m_advPhys
Definition: AMRLevelAdvectDiffuseFactory.H:71
virtual ~AMRLevelAdvectDiffuseFactory()
Destructor.
Definition: AMRLevelAdvectDiffuseFactory.H:54
Real m_domainLength
Definition: AMRLevelAdvectDiffuseFactory.H:65