Chombo + EB + MF  3.2
AMRLevelPolytropicGasFactory.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 _AMRLEVELPOLYTROPICGASFACTORY_H_
12 #define _AMRLEVELPOLYTROPICGASFACTORY_H_
13 
14 #include "AMRLevelFactory.H"
15 
16 #include "AMRLevelPolytropicGas.H"
17 #include "NamespaceHeader.H"
18 
19 /// AMR Godunov factory
20 /**
21  */
23 {
24 public:
25  /// Null constructor
26  /**
27  */
29 
30  /// Destructor
31  /**
32  */
34 
35  /// Define the parameters of the factory
36  /**
37  */
38  virtual void define(/// CFL number
39  const Real& a_cfl,
40  /// physical dimension of the longest side of the domain
41  const Real& a_domainLength,
42  /// verbosity level
43  const int& a_verbosity,
44  /// undivided gradient size over which a cell will be tagged for refinement
45  const Real& a_refineThresh,
46  /// number of buffer cells around each tagged cell that will also be tagged
47  const int& a_tagBufferSize,
48  /// CFL number at beginning of calculation
49  const Real& a_initialDtMultiplier,
50  /// physics class
51  const GodunovPhysics* const a_godunovPhysics,
52  /// order of the normal predictor: 1 for PLM, 2 for PPM
53  const int& a_normalPredOrder,
54  /// whether to use 4th-order slopes
55  const bool& a_useFourthOrderSlopes,
56  /// whether to apply slope limiting to primitive variables
57  const bool& a_usePrimLimiting,
58  /// whether to apply slope limiting to characteristic variables
59  const bool& a_useCharLimiting,
60  /// whether to apply slope flattening
61  const bool& a_useFlattening,
62  /// whether to apply artificial viscosity
63  const bool& a_useArtificialViscosity,
64  /// artificial viscosity coefficient
65  const Real& a_artificialViscosity,
66  /// whether to apply source term
67  const bool& a_useSourceTerm,
68  /// scaling of source term
69  const Real& a_sourceTermScaling,
70  /// whether to apply 4th-order limiter
71  const bool& a_highOrderLimiter);
72 
73  /// Create a new AMRLevel (for polytropic gases)
74  /**
75  */
76  virtual AMRLevel* new_amrlevel() const;
77 
78  /// Check that this object has been defined
79  /**
80  */
81  bool isDefined() const;
82 
83 protected:
84  // CFL number
86 
87  // Physical dimension of the longest side of the domain
89 
90  // Verbosity of the object
92 
93  // Refinement threshold for gradient
95 
96  // Tag buffer size
98 
99  // Initial dt multiplier
101 
102  // Pointer to the object that supplies the physics needed by the integrator
103  // (used as a factory here)
105 
106  // Order of the normal predictor (1 -> PLM, 2 -> PPM)
108 
109  // Use 4th other slope computations (otherwise, use 2nd order)
111 
112  // Do slope limiting in the primitive or characteristic variables, respect.
115 
116  // Do slope flattening - MUST BE USING 4th order slopes
118 
119  // Apply artificial viscosity of a set value
122 
123  // Supply a source term to the computation
126 
127  // Use a high-order limiter?
129 
130  // Has this object been defined
132 
133 private:
134 
135  // Disallowed for all the usual reasons
138 };
139 
140 #include "NamespaceFooter.H"
141 
142 #endif
bool m_useSourceTerm
Definition: AMRLevelPolytropicGasFactory.H:124
AMR Godunov factory.
Definition: AMRLevelPolytropicGasFactory.H:22
Real m_sourceTermScaling
Definition: AMRLevelPolytropicGasFactory.H:125
bool m_useCharLimiting
Definition: AMRLevelPolytropicGasFactory.H:114
virtual AMRLevel * new_amrlevel() const
Create a new AMRLevel (for polytropic gases)
Real m_initialDtMultiplier
Definition: AMRLevelPolytropicGasFactory.H:100
int m_tagBufferSize
Definition: AMRLevelPolytropicGasFactory.H:97
Real m_artificialViscosity
Definition: AMRLevelPolytropicGasFactory.H:121
bool m_usePrimLimiting
Definition: AMRLevelPolytropicGasFactory.H:113
bool m_useFourthOrderSlopes
Definition: AMRLevelPolytropicGasFactory.H:110
void operator=(const AMRLevelPolytropicGasFactory &)
Abstract base class for time-dependent data at a level of refinement.
Definition: AMRLevel.H:47
bool m_useArtificialViscosity
Definition: AMRLevelPolytropicGasFactory.H:120
double Real
Definition: REAL.H:33
bool m_isDefined
Definition: AMRLevelPolytropicGasFactory.H:131
Real m_refineThresh
Definition: AMRLevelPolytropicGasFactory.H:94
AMRLevelPolytropicGasFactory()
Null constructor.
Definition: GodunovPhysics.H:40
const GodunovPhysics * m_godunovPhysics
Definition: AMRLevelPolytropicGasFactory.H:104
Real m_domainLength
Definition: AMRLevelPolytropicGasFactory.H:88
bool m_highOrderLimiter
Definition: AMRLevelPolytropicGasFactory.H:128
bool isDefined() const
Check that this object has been defined.
Factory class to produce an AMRLevel.
Definition: AMRLevelFactory.H:22
bool m_useFlattening
Definition: AMRLevelPolytropicGasFactory.H:117
virtual void define(const Real &a_cfl, const Real &a_domainLength, const int &a_verbosity, const Real &a_refineThresh, const int &a_tagBufferSize, const Real &a_initialDtMultiplier, const GodunovPhysics *const a_godunovPhysics, const int &a_normalPredOrder, const bool &a_useFourthOrderSlopes, const bool &a_usePrimLimiting, const bool &a_useCharLimiting, const bool &a_useFlattening, const bool &a_useArtificialViscosity, const Real &a_artificialViscosity, const bool &a_useSourceTerm, const Real &a_sourceTermScaling, const bool &a_highOrderLimiter)
Define the parameters of the factory.
int m_normalPredOrder
Definition: AMRLevelPolytropicGasFactory.H:107
Real m_cfl
Definition: AMRLevelPolytropicGasFactory.H:85
int m_verbosity
Definition: AMRLevelPolytropicGasFactory.H:91
virtual ~AMRLevelPolytropicGasFactory()
Destructor.