00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _CHANNELSHOCKIBC_H_
00012 #define _CHANNELSHOCKIBC_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
00031 class ChannelShockIBC: public PhysIBC
00032 {
00033 public:
00035
00037 ChannelShockIBC();
00038
00040
00042 ChannelShockIBC(Real& a_smallPressure,
00043 const Real& a_gamma,
00044 const Real& a_ms,
00045 const Real& a_position,
00046 const Real& a_artvisc);
00047
00049
00051 virtual ~ChannelShockIBC();
00052
00054
00056 void setFortranCommon(Real& a_smallPressure,
00057 const Real& a_gamma,
00058 const Real& a_ms,
00059 const Real& a_position,
00060 const Real& a_artvisc);
00061
00063
00068 void setFortranCommonSet();
00069
00071
00076 PhysIBC *new_physIBC();
00077
00079
00081 virtual void initialize(LevelData<FArrayBox>& a_U);
00082
00084
00086 virtual void primBC(FArrayBox& a_WGdnv,
00087 const FArrayBox& a_Wextrap,
00088 const FArrayBox& a_W,
00089 const int& a_dir,
00090 const Side::LoHiSide& a_side,
00091 const Real& a_time);
00092
00094
00099 virtual
00100 void setBdrySlopes(FArrayBox& a_dW,
00101 const FArrayBox& a_W,
00102 const int& a_dir,
00103 const Real& a_time);
00104
00106
00108 virtual
00109 void artViscBC(FArrayBox& a_F,
00110 const FArrayBox& a_U,
00111 const FArrayBox& a_divVel,
00112 const int& a_dir,
00113 const Real& a_time);
00114
00115
00116 protected:
00117
00118 bool m_isFortranCommonSet;
00119 };
00120
00121 #endif