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
00014 #include "PhysIBC.H"
00015 #include "BoundariesF_F.H"
00016
00017
00018 #define PROBLEM_EXPLOSION 0
00019 #define PROBLEM_WINDCOLLISION 1
00020 #define PROBLEM_EXPANDINGSHOCK 2
00021 #define PROBLEM_JEANS 3
00022
00024
00035 class TestsIBC : public PhysIBC
00036 {
00037 public:
00039 TestsIBC();
00040
00042 TestsIBC(const std::string a_problem,
00043 const Real& a_gamma,
00044 const Real& a_ms,
00045 const RealVect& a_center,
00046 const Real& a_size,
00047 const RealVect& a_velocity,
00048 const Real& a_artvisc,
00049 const Real& a_rsTolerance,
00050 const Real& a_maxRsIter,
00051 const Real& a_maxMach);
00052
00054 ~TestsIBC() {};
00055
00057 void setFortranCommon(const Real& a_gamma,
00058 const Real& a_ms,
00059 const RealVect& a_center,
00060 const Real& a_size,
00061 const RealVect& a_velocity,
00062 const Real& a_artvisc,
00063 const Real& a_rsTolerance,
00064 const Real& a_maxRsIter,
00065 const Real& a_maxMach);
00066
00067
00068 void setTestProblem(const std::string a_problem);
00069
00070
00071 void setTestProblem(const int& a_problem);
00072
00074
00079 void setFortranCommonSet();
00080
00082
00087 PhysIBC *new_physIBC();
00088
00090 void primBC(FArrayBox& a_WGdnv,
00091 const FArrayBox& a_Wextrap,
00092 const FArrayBox& a_W,
00093 const int& a_dir,
00094 const Side::LoHiSide& a_side,
00095 const Real& a_time);
00096
00098
00103 void setBdrySlopes(FArrayBox& a_dW,
00104 const FArrayBox& a_W,
00105 const int& a_dir,
00106 const Real& a_time);
00107
00109 void artViscBC(FArrayBox& a_F,
00110 const FArrayBox& a_U,
00111 const FArrayBox& a_divVel,
00112 const int& a_dir,
00113 const Real& a_time);
00114
00116 void initialize(LevelData<FArrayBox>& a_U);
00117
00118
00119
00120
00121 protected:
00122
00123 bool m_isFortranCommonSet;
00124
00125
00126 bool m_isProblemSet;
00127
00128
00129 int m_problem;
00130 };
00131
00132 #endif