00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _EXPLOSION1DIBC_H_
00012 #define _EXPLOSION1DIBC_H_
00013
00014 #include <iostream>
00015
00016 #include "LevelData.H"
00017 #include "FArrayBox.H"
00018 #include "Vector.H"
00019 #include "RealVect.H"
00020 #include "AMRIO.H"
00021 #include "PhysIBC.H"
00022
00023 #include "SolidBCF_F.H"
00024
00025 #include "UsingNamespace.H"
00026
00028
00038 class Explosion1dIBC: public PhysIBC
00039 {
00040 public:
00042
00044 Explosion1dIBC();
00045
00047
00049 Explosion1dIBC(Real& a_smallPressure,
00050 const Real& a_gamma,
00051 const Real& a_ms,
00052 const RealVect& a_center,
00053 const Real& a_size,
00054 const RealVect& a_velocity,
00055 const Real& a_artvisc);
00056
00058
00060 virtual ~Explosion1dIBC();
00061
00063
00065 void setFortranCommon(Real& a_smallPressure,
00066 const Real& a_gamma,
00067 const Real& a_ms,
00068 const RealVect& a_center,
00069 const Real& a_size,
00070 const RealVect& a_velocity,
00071 const Real& a_artvisc);
00072
00074
00079 PhysIBC *new_physIBC();
00080
00082
00084 void initialize(LevelData<FArrayBox>& a_U);
00085
00087
00089 void primBC(FArrayBox& a_WGdnv,
00090 const FArrayBox& a_Wextrap,
00091 const FArrayBox& a_W,
00092 const int& a_dir,
00093 const Side::LoHiSide& a_side,
00094 const Real& a_time);
00095
00097
00102 void setBdrySlopes(FArrayBox& a_dW,
00103 const FArrayBox& a_W,
00104 const int& a_dir,
00105 const Real& a_time);
00106
00108
00110 void artViscBC(FArrayBox& a_F,
00111 const FArrayBox& a_U,
00112 const FArrayBox& a_divVel,
00113 const int& a_dir,
00114 const Real& a_time);
00115
00116
00117 protected:
00118
00119 bool m_isFortranCommonSet;
00120 };
00121
00122 #endif