00001
00002
00003 #ifndef TESTSIBC_H_
00004 #define TESTSIBC_H_
00005
00006 #include <iostream>
00007
00008 #include "LevelData.H"
00009 #include "FArrayBox.H"
00010 #include "Vector.H"
00011 #include "RealVect.H"
00012 #include "AMRIO.H"
00013 #include "CodeUnits.H"
00014
00015 #include "PhysIBC.H"
00016 #include "BoundariesF_F.H"
00017
00018
00019 #define PROBLEM_EXPLOSION 0
00020 #define PROBLEM_SHOCKEXPLOSION 1
00021 #define PROBLEM_JEANS 2
00022 #define PROBLEM_WINDCOLLISION 3
00023 #define PROBLEM_EXPANDINGSHOCK 4
00024
00026
00038 class TestsIBC : public PhysIBC
00039 {
00040 public:
00042 TestsIBC();
00043
00045
00057 TestsIBC(const std::string a_problem,
00058 const Real& a_gamma,
00059 const Real& a_ms,
00060 const RealVect& a_center,
00061 const Real& a_size,
00062 const RealVect& a_velocity,
00063 const Real& a_artvisc,
00064 const Real& a_rsTolerance,
00065 const Real& a_maxRsIter,
00066 const Real& a_maxMach);
00067
00069 ~TestsIBC() {};
00070
00072
00084 void setFortranCommon(const Real& a_gamma,
00085 const Real& a_ms,
00086 const RealVect& a_center,
00087 const Real& a_size,
00088 const RealVect& a_velocity,
00089 const Real& a_artvisc,
00090 const Real& a_rsTolerance,
00091 const Real& a_maxRsIter,
00092 const Real& a_maxMach);
00093
00095 void setTestProblem(const std::string a_problem);
00096
00098 void setTestProblem(const int& a_problem);
00099
00101
00106 void setFortranCommonSet();
00107
00109
00114 PhysIBC *new_physIBC();
00115
00117 void primBC(FArrayBox& a_WGdnv,
00118 const FArrayBox& a_Wextrap,
00119 const FArrayBox& a_W,
00120 const int& a_dir,
00121 const Side::LoHiSide& a_side,
00122 const Real& a_time);
00123
00125
00130 void setBdrySlopes(FArrayBox& a_dW,
00131 const FArrayBox& a_W,
00132 const int& a_dir,
00133 const Real& a_time);
00134
00136 void artViscBC(FArrayBox& a_F,
00137 const FArrayBox& a_U,
00138 const FArrayBox& a_divVel,
00139 const int& a_dir,
00140 const Real& a_time);
00141
00143 void initialize(LevelData<FArrayBox>& a_U);
00144
00145
00146
00147
00148 protected:
00149
00150 bool m_isFortranCommonSet;
00151
00152
00153 bool m_isProblemSet;
00154
00155
00156 int m_problem;
00157 };
00158
00159 #endif