00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _WAVEIBC_H_
00012 #define _WAVEIBC_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
00041 class WaveIBC: public PhysIBC
00042 {
00043 public:
00045
00047 WaveIBC();
00048
00050
00052 WaveIBC(Real& a_smallPressure,
00053 const Real& a_gamma,
00054 const Real& a_ambientDensity,
00055 const Real& a_deltaDensity,
00056 const int& a_pressure,
00057 const IntVect& a_waveNumber,
00058 const RealVect& a_center,
00059 const RealVect& a_velocity,
00060 const Real& a_artvisc);
00061
00063
00065 virtual ~WaveIBC();
00066
00068
00070 void setFortranCommon(Real& a_smallPressure,
00071 const Real& a_gamma,
00072 const Real& a_ambientDensity,
00073 const Real& a_deltaDensity,
00074 const int& a_pressure,
00075 const IntVect& a_waveNumber,
00076 const RealVect& a_center,
00077 const RealVect& a_velocity,
00078 const Real& a_artvisc);
00079
00081
00086 PhysIBC *new_physIBC();
00087
00089
00091 void initialize(LevelData<FArrayBox>& a_U);
00092
00094
00096 void primBC(FArrayBox& a_WGdnv,
00097 const FArrayBox& a_Wextrap,
00098 const FArrayBox& a_W,
00099 const int& a_dir,
00100 const Side::LoHiSide& a_side,
00101 const Real& a_time);
00102
00104
00109 void setBdrySlopes(FArrayBox& a_dW,
00110 const FArrayBox& a_W,
00111 const int& a_dir,
00112 const Real& a_time);
00113
00115
00117 void artViscBC(FArrayBox& a_F,
00118 const FArrayBox& a_U,
00119 const FArrayBox& a_divVel,
00120 const int& a_dir,
00121 const Real& a_time);
00122
00123
00124 protected:
00125
00126 bool m_isFortranCommonSet;
00127 };
00128
00129 #endif