Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

TestsIBC.H

Go to the documentation of this file.
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 // Available problems
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//, public PartIBC
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   // does nothing in this implementation 
00146   //void initialize(LevelData<PBinFab>& a_DM);
00147   
00148 protected:
00149   // True if the Fortran common block has been set
00150   bool m_isFortranCommonSet;
00151 
00152   // True if the problem string has been set
00153   bool m_isProblemSet;
00154 
00155   // specific test problem
00156   int m_problem;
00157 };
00158 
00159 #endif

Generated on Wed Oct 5 13:52:09 2005 for Chombo&AMRSelfGravity by  doxygen 1.4.1