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

CodeTestsIBC.H

Go to the documentation of this file.
00001 
00002 #ifndef  _CODE_TESTS_IBC_H_
00003 #define  _CODE_TESTS_IBC_H_
00004 
00005 #include  <iostream>
00006 
00007 #include "LevelData.H"
00008 #include "FArrayBox.H"
00009 #include "Vector.H"
00010 #include "RealVect.H"
00011 #include "AMRIO.H"
00012 
00013 #include "CodeUnits.H"
00014 #include "PhysIBC.H"
00015 
00016 
00018 
00041 class CodeTestsIBC : public PhysIBC
00042 {
00043 public:
00045 
00047   CodeTestsIBC();
00048   
00050 
00061   CodeTestsIBC(const Real&  a_gamma,
00062                const Real&  a_artvisc,
00063                const Real&  a_rsTolerance,
00064                const Real&  a_maxRsIter,
00065                const Real&  a_maxMach,
00066                const CodeUnits& a_codeUnits);
00067 
00069 
00071   ~CodeTestsIBC() {};
00072 
00074 
00087   void setFortranCommon(const Real&  a_gamma,
00088                         const Real&  a_artvisc,
00089                         const Real&  a_rsTolerance,
00090                         const Real&  a_maxRsIter,
00091                         const Real&  a_maxMach);
00092 
00093   void setDustCollapse(const Real&  a_radius,
00094                        const Real&  a_density,
00095                        const RealVect& a_shift = RealVect::Zero);
00096 
00098 
00103   void setFortranCommonSet();
00104 
00106   void setCodeUnits(const CodeUnits& a_codeUnits);
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   void setBdrySlopes(FArrayBox&       a_dW,
00126                      const FArrayBox& a_W,
00127                      const int&       a_dir,
00128                      const Real&      a_time);
00129 
00131   void artViscBC(FArrayBox&       a_F,
00132                  const FArrayBox& a_U,
00133                  const FArrayBox& a_divVel,
00134                  const int&       a_dir,
00135                  const Real&      a_time);
00136   
00138   void initialize(LevelData<FArrayBox>& a_U);
00139 
00140 protected:
00141   //
00142   void dustCollapse(LevelData<FArrayBox>&    a_U);
00143 
00144 protected:
00145   // cloud density and radius (for spher. dust collapse and makes central
00146   // mass for the secondary infall)
00147   Real m_density, m_radius;
00148 
00149   // shift all positions by dx*m_shift; check for phase effects
00150   RealVect m_shift;
00151 
00152   // code units
00153   CodeUnits m_codeUnits;
00154 
00155   // type of problem
00156   int m_problem;
00157 
00158   // True if the Fortran common block has been set
00159   bool m_isFortranCommonSet;
00160 };
00161 
00162 #endif

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