00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _CHANNELMODIANOIBC_H_
00012 #define _CHANNELMODIANOIBC_H_
00013
00014 #include "FArrayBox.H"
00015 #include "REAL.H"
00016 #include "LevelData.H"
00017 #include "ProblemDomain.H"
00018 #include "PhysIBC.H"
00019
00020 #include "UsingNamespace.H"
00021
00023
00033 class ChannelModianoIBC: public PhysIBC
00034 {
00035 public:
00037
00039 ChannelModianoIBC();
00040
00042
00044 ChannelModianoIBC(Real& a_smallPressure,
00045 const Real& a_gamma,
00046 const Real& a_ambientDensity,
00047 const Real& a_deltaDensity,
00048 const Real& a_center,
00049 const Real& a_width,
00050 const Real& a_artvisc);
00051
00053
00055 virtual ~ChannelModianoIBC();
00056
00058
00060 void setFortranCommon(Real& a_smallPressure,
00061 const Real& a_gamma,
00062 const Real& a_ambientDensity,
00063 const Real& a_deltaDensity,
00064 const Real& a_center,
00065 const Real& a_width,
00066 const Real& a_artvisc);
00067
00069
00074 void setFortranCommonSet();
00075
00077
00082 PhysIBC *new_physIBC();
00083
00085
00087 virtual void initialize(LevelData<FArrayBox>& a_U);
00088
00090
00092 virtual void primBC(FArrayBox& a_WGdnv,
00093 const FArrayBox& a_Wextrap,
00094 const FArrayBox& a_W,
00095 const int& a_dir,
00096 const Side::LoHiSide& a_side,
00097 const Real& a_time);
00098
00100
00105 virtual
00106 void setBdrySlopes(FArrayBox& a_dW,
00107 const FArrayBox& a_W,
00108 const int& a_dir,
00109 const Real& a_time);
00110
00112
00114 virtual
00115 void artViscBC(FArrayBox& a_F,
00116 const FArrayBox& a_U,
00117 const FArrayBox& a_divVel,
00118 const int& a_dir,
00119 const Real& a_time);
00120
00121
00122 protected:
00123
00124 bool m_isFortranCommonSet;
00125 };
00126
00127 #endif