00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _EXPLOSIONIBC_H_
00012 #define _EXPLOSIONIBC_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 "NamespaceHeader.H"
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 class ExplosionIBC: public PhysIBC
00039 {
00040 public:
00041
00042
00043
00044 ExplosionIBC();
00045
00046
00047
00048
00049 ExplosionIBC(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
00057
00058
00059
00060 virtual ~ExplosionIBC();
00061
00062
00063
00064
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
00073
00074
00075
00076
00077
00078
00079 PhysIBC *new_physIBC();
00080
00081
00082
00083
00084 void initialize(LevelData<FArrayBox>& a_U);
00085
00086
00087
00088
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
00096
00097
00098
00099
00100
00101
00102 void setBdrySlopes(FArrayBox& a_dW,
00103 const FArrayBox& a_W,
00104 const int& a_dir,
00105 const Real& a_time);
00106
00107
00108
00109
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 #include "NamespaceFooter.H"
00123
00124 #endif