00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _GAUSSIANPBC_H_
00012 #define _GAUSSIANPBC_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
00040 class GaussianPBC: public PhysIBC
00041 {
00042 public:
00044
00046 GaussianPBC();
00047
00049
00051 GaussianPBC(Real& a_smallPressure,
00052 const Real& a_gamma,
00053 const Real& a_ambientDensity,
00054 const Real& a_ambientPressure,
00055 const Real& a_deltaPressure,
00056 const RealVect& a_center,
00057 const Real& a_size,
00058 const RealVect& a_velocity,
00059 const Real& a_artvisc);
00060
00062
00064 virtual ~GaussianPBC();
00065
00067
00069 void setFortranCommon(Real& a_smallPressure,
00070 const Real& a_gamma,
00071 const Real& a_ambientDensity,
00072 const Real& a_ambientPressure,
00073 const Real& a_deltaPressure,
00074 const RealVect& a_center,
00075 const Real& a_size,
00076 const RealVect& a_velocity,
00077 const Real& a_artvisc);
00078
00080
00085 PhysIBC *new_physIBC();
00086
00088
00090 void initialize(LevelData<FArrayBox>& a_U);
00091
00093
00095 void primBC(FArrayBox& a_WGdnv,
00096 const FArrayBox& a_Wextrap,
00097 const FArrayBox& a_W,
00098 const int& a_dir,
00099 const Side::LoHiSide& a_side,
00100 const Real& a_time);
00101
00103
00108 void setBdrySlopes(FArrayBox& a_dW,
00109 const FArrayBox& a_W,
00110 const int& a_dir,
00111 const Real& a_time);
00112
00114
00116 void artViscBC(FArrayBox& a_F,
00117 const FArrayBox& a_U,
00118 const FArrayBox& a_divVel,
00119 const int& a_dir,
00120 const Real& a_time);
00121
00122
00123 protected:
00124
00125 bool m_isFortranCommonSet;
00126 };
00127
00128 #endif