00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _NOFLOWADVECTBC_H_
00012 #define _NOFLOWADVECTBC_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
00022 #include "EBPhysIBC.H"
00023 #include "EBPhysIBCFactory.H"
00024 #include "NamespaceHeader.H"
00025
00027 class NoFlowAdvectBC : public EBPhysIBC
00028 {
00029 public:
00030 virtual ~NoFlowAdvectBC();
00031
00033 NoFlowAdvectBC(int a_nComp);
00034
00036 void define(const ProblemDomain& a_domain,
00037 const RealVect& a_dx);
00038
00040 void fluxBC(EBFluxFAB& a_flux,
00041 const EBCellFAB& a_Wcenter,
00042 const EBCellFAB& a_Wextrap,
00043 const Side::LoHiSide& a_sd,
00044 const Real& a_time,
00045 const EBISBox& a_ebisBox,
00046 const DataIndex& a_dit,
00047 const Box& a_box,
00048 const Box& a_faceBox,
00049 const int& a_dir);
00050
00052 void initialize(LevelData<EBCellFAB>& a_conState,
00053 const EBISLayout& a_ebisl) const;
00054
00056 void setBndrySlopes(EBCellFAB& a_deltaPrim,
00057 const EBCellFAB& a_primState,
00058 const EBISBox& a_ebisBox,
00059 const Box& a_box,
00060 const int& a_dir)
00061 {;}
00062
00063
00064 protected:
00065 bool m_isDefined;
00066 RealVect m_dx;
00067 ProblemDomain m_domain;
00068 int m_velComp;
00069
00070 private:
00071 NoFlowAdvectBC()
00072 {;}
00073 };
00074
00075
00077
00079 class NoFlowAdvectBCFactory: public EBPhysIBCFactory
00080 {
00081 public:
00082
00084 NoFlowAdvectBCFactory(int a_velComp);
00085
00087 ~NoFlowAdvectBCFactory();
00088
00089
00091 EBPhysIBC* create() const;
00092
00093 protected:
00094
00095 int m_velComp;
00096
00097 private:
00098
00099 NoFlowAdvectBCFactory()
00100 {;}
00101 };
00102
00103 #include "NamespaceFooter.H"
00104 #endif