Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound 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 
00014 #include "PhysIBC.H"
00015 #include "BoundariesF_F.H"
00016 
00017 // Available problems
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//, public PartIBC
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   // set the specific test problem
00068   void setTestProblem(const std::string a_problem); 
00069 
00070   // set the specific test problem
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   // does nothing in this implementation 
00119   //void initialize(LevelData<PBinFab>& a_DM);
00120   
00121 protected:
00122   // True if the Fortran common block has been set
00123   bool m_isFortranCommonSet;
00124 
00125   // True if the problem string has been set
00126   bool m_isProblemSet;
00127 
00128   // specific test problem
00129   int m_problem;
00130 };
00131 
00132 #endif

Generated on Wed Oct 19 13:33:49 2005 for Chombo&AMRSelfGravity by doxygen 1.3.2