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 SINEIBC_H_
00029 #define SINEIBC_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
00057 class SineIBC:public PhysIBC
00058 {
00059 public:
00061
00063 SineIBC();
00064
00066
00068 SineIBC(const Real& a_gamma,
00069 const Real& a_ambientDensity,
00070 const Real& a_deltaDensity,
00071 const int& a_pressure,
00072 const RealVect& a_center,
00073 const RealVect& a_velocity,
00074 const Real& a_artvisc);
00075
00077
00079 ~SineIBC() {};
00080
00082
00084 void setFortranCommon(const Real& a_gamma,
00085 const Real& a_ambientDensity,
00086 const Real& a_deltaDensity,
00087 const int& a_pressure,
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