00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef WAVEIBC_H_
00029 #define WAVEIBC_H_
00030
00031 #include <iostream>
00032
00033 #include "LevelData.H"
00034 #include "FArrayBox.H"
00035 #include "Vector.H"
00036 #include "RealVect.H"
00037 #include "AMRIO.H"
00038
00039 #include "PhysIBC.H"
00040 #include "SolidF_F.H"
00041
00043
00055 class WaveIBC:public PhysIBC
00056 {
00057 public:
00059
00061 WaveIBC();
00062
00064
00066 WaveIBC(const Real& a_gamma,
00067 const Real& a_ambientDensity,
00068 const Real& a_deltaDensity,
00069 const int& a_pressure,
00070 const IntVect& a_waveNumber,
00071 const RealVect& a_center,
00072 const RealVect& a_velocity,
00073 const Real& a_artvisc);
00074
00076
00078 ~WaveIBC() {};
00079
00081
00083 void setFortranCommon(const Real& a_gamma,
00084 const Real& a_ambientDensity,
00085 const Real& a_deltaDensity,
00086 const int& a_pressure,
00087 const IntVect& a_waveNumber,
00088 const RealVect& a_center,
00089 const RealVect& a_velocity,
00090 const Real& a_artvisc);
00091
00093
00098 void setFortranCommonSet();
00099
00101
00106 PhysIBC *new_physIBC();
00107
00109
00111 void fluxBC(FArrayBox& a_F,
00112 const FArrayBox& a_W,
00113 const FArrayBox& a_Wextrap,
00114 const int& a_dir,
00115 const Side::LoHiSide& a_side,
00116 const Real& a_time);
00117
00119
00124 void setBdrySlopes(FArrayBox& a_dW,
00125 const FArrayBox& a_W,
00126 const int& a_dir,
00127 const Real& a_time);
00128
00130
00132 void initialize(LevelData<FArrayBox>& a_U);
00133
00134 protected:
00135
00136 bool m_isFortranCommonSet;
00137 };
00138
00139 #endif