00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _AMR_LEVEL_SELFGRAVITY_FACTORY_H_
00029 #define _AMR_LEVEL_SELFGRAVITY_FACTORY_H_
00030
00031 #include "AMRLevelFactory.H"
00032 #include "AMRLevelSelfGravity.H"
00033
00035 class AMRLevelSelfGravityFactory : public AMRLevelFactory
00036 {
00037 public:
00039 AMRLevelSelfGravityFactory();
00040
00042 virtual AMRLevel* new_amrlevel() const;
00043
00045 virtual ~AMRLevelSelfGravityFactory();
00046
00048 virtual void define(const Real& a_cfl,
00049 const Real& a_domainLength,
00050 const int& a_verbosity,
00051 const int& a_tagBufferSize,
00052 const int& a_maxInitRefLevel,
00053 const Real& a_initialDtMultiplier,
00054 const GodunovPhysics* const a_godunovPhysics,
00055 const int& a_normalPredOrder,
00056 const bool& a_useFourthOrderSlopes,
00057 const bool& a_usePrimLimiting,
00058 const bool& a_useCharLimiting,
00059 const bool& a_useFlattening,
00060 const bool& a_useArtificialViscosity,
00061 const Real& a_artificialViscosity,
00062 const RefCellTagger* const a_refCellTagger,
00063 const LevelOp* const a_poissonOp,
00064 const bool& a_useDeltaPhiCorr,
00065 const StencilType& a_stencil);
00066
00068 bool isDefined() const;
00069
00070 protected:
00071
00072 void setDefaultValues();
00073
00074
00075 int m_verbosity;
00076
00077
00078 Real m_cfl;
00079
00080
00081 Real m_domainLength;
00082
00083
00084 int m_maxInitRefLevel;
00085
00086
00087 int m_tagBufferSize;
00088
00089
00090 Real m_initialDtMultiplier;
00091
00092
00093 int m_normalPredOrder;
00094
00095
00096 bool m_useFourthOrderSlopes;
00097
00098
00099 bool m_usePrimLimiting;
00100 bool m_useCharLimiting;
00101
00102
00103 bool m_useFlattening;
00104
00105
00106 bool m_useArtificialViscosity;
00107 Real m_artificialViscosity;
00108
00109
00110 StencilType m_stencil;
00111
00112
00113 bool m_useDeltaPhiCorr;
00114
00115
00116
00117 const GodunovPhysics* m_godunovPhysics;
00118
00119
00120 const LevelOp* m_poissonOp;
00121
00122
00123 const RefCellTagger* m_refCellTagger;
00124
00125
00126 bool m_isDefined;
00127
00128 private:
00129
00130 void operator=(const AMRLevelSelfGravityFactory& a_input)
00131 {
00132 MayDay::Error("invalid operator");
00133 }
00134
00135
00136 AMRLevelSelfGravityFactory(const AMRLevelSelfGravityFactory& a_input)
00137 {
00138 MayDay::Error("invalid operator");
00139 }
00140 };
00141
00142 #endif