00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _EXTRAPADVECTBC_H_
00012 #define _EXTRAPADVECTBC_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 ExtrapAdvectBC : public EBPhysIBC
00028 {
00029 public:
00030 virtual ~ExtrapAdvectBC();
00031
00033 ExtrapAdvectBC();
00034
00035
00037 void define(const ProblemDomain& a_domain,
00038 const RealVect& a_dx);
00039
00041 void fluxBC(EBFluxFAB& a_flux,
00042 const EBCellFAB& a_Wcenter,
00043 const EBCellFAB& a_Wextrap,
00044 const Side::LoHiSide& a_sd,
00045 const Real& a_time,
00046 const EBISBox& a_ebisBox,
00047 const DataIndex& a_dit,
00048 const Box& a_box,
00049 const Box& a_faceBox,
00050 const int& a_dir);
00051
00053 void initialize(LevelData<EBCellFAB>& a_conState,
00054 const EBISLayout& a_ebisl) const;
00055
00057 void setBndrySlopes(EBCellFAB& a_deltaPrim,
00058 const EBCellFAB& a_primState,
00059 const EBISBox& a_ebisBox,
00060 const Box& a_box,
00061 const int& a_dir)
00062 {;}
00063
00064
00065 protected:
00066 bool m_isDefined;
00067 RealVect m_dx;
00068 ProblemDomain m_domain;
00069
00070 };
00071
00072
00074
00076 class ExtrapAdvectBCFactory: public EBPhysIBCFactory
00077 {
00078 public:
00079
00081 ~ExtrapAdvectBCFactory();
00082
00084 ExtrapAdvectBCFactory();
00085
00086
00088 EBPhysIBC* create() const;
00089
00090
00091 };
00092
00093 #include "NamespaceFooter.H"
00094 #endif