00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011
00012 #ifndef _EBIBC_H_
00013 #define _EBIBC_H_
00014
00015 #include "EBCellFAB.H"
00016 #include "EBISLayout.H"
00017 #include "EBFaceFAB.H"
00018 #include "REAL.H"
00019 #include "LevelData.H"
00020 #include "ProblemDomain.H"
00021 #include "EBPhysIBCFactory.H"
00022 #include "RefCountedPtr.H"
00023 #include "BaseDomainBC.H"
00024 #include "BaseEBBC.H"
00025 #include "NamespaceHeader.H"
00026
00028
00032 class EBIBC
00033 {
00034 public:
00036 EBIBC();
00037
00039 virtual ~EBIBC();
00040
00042
00045 virtual void initializeVelocity(LevelData<EBCellFAB>& a_velocity,
00046 const DisjointBoxLayout& a_grids,
00047 const EBISLayout& a_ebisl,
00048 const ProblemDomain& a_domain,
00049 const RealVect& a_origin,
00050 const Real& a_time,
00051 const RealVect& a_dx) const = 0;
00052
00054
00057 virtual void initializePressure(LevelData<EBCellFAB>& a_pressure,
00058 const DisjointBoxLayout& a_grids,
00059 const EBISLayout& a_ebisl,
00060 const ProblemDomain& a_domain,
00061 const RealVect& a_origin,
00062 const Real& a_time,
00063 const RealVect& a_dx) const = 0;
00064
00066
00069 virtual void initializeScalar ( LevelData<EBCellFAB>& a_scalar,
00070 const DisjointBoxLayout& a_grids,
00071 const EBISLayout& a_ebisl,
00072 const ProblemDomain& a_domain,
00073 const RealVect& a_origin,
00074 const Real& a_time,
00075 const RealVect& a_dx) const = 0;
00076
00078
00081 virtual RefCountedPtr<BaseDomainBCFactory> getPressBC() const = 0;
00082
00084
00086 virtual RefCountedPtr<BaseDomainBCFactory> getVelBC(int a_icomp) const = 0;
00087
00089
00091 virtual RefCountedPtr<BaseDomainBCFactory> getMACVelBC() const = 0;
00092
00094
00098 virtual RefCountedPtr<EBPhysIBCFactory> getVelAdvectBC(int a_velComp) const = 0;
00099
00100
00102
00106 virtual RefCountedPtr<EBPhysIBCFactory> getScalarAdvectBC(const int& a_comp) const = 0;
00107
00108
00110
00113 virtual RefCountedPtr<BaseEBBCFactory> getVelocityEBBC(int a_velComp) const = 0;
00114
00115
00117
00121 virtual RefCountedPtr<BaseEBBCFactory> getPressureEBBC() const = 0;
00122
00123
00125
00129 virtual RefCountedPtr<BaseEBBCFactory> getScalarEBBC(int a_comp) const
00130 {
00131 MayDay::Error("default and invalid implementaion of getScalarEBBC");
00132
00133 return RefCountedPtr<BaseEBBCFactory>();
00134 }
00135 };
00136
00137
00138 #include "NamespaceFooter.H"
00139 #endif