00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef _inhomoDirichletBC_H_
00033 #define _inhomoDirichletBC_H_
00034
00035 #include "Box.H"
00036 #include "FArrayBox.H"
00037 #include "Vector.H"
00038 #include "LoHiSide.H"
00039 #include "GhostBC.H"
00040 #include "PoissonBC.H"
00041
00043 class InhomoDirichletBC : public DirichletBC
00044 {
00045
00046 public:
00047 friend class DomainGhostBC;
00048
00050 InhomoDirichletBC();
00051
00053 InhomoDirichletBC(int dir, Side::LoHiSide sd);
00054
00056 InhomoDirichletBC(int dir, Side::LoHiSide sd,
00057 const Interval& a_comps);
00058
00060 ~InhomoDirichletBC();
00061
00063
00067 void setBCVal(const FArrayBox& a_BCVal);
00068
00069 private:
00070
00072 FArrayBox m_BCVal;
00073
00075 virtual void
00076 fillBCValues(FArrayBox& a_neumfac,
00077 FArrayBox& a_dirfac,
00078 FArrayBox& a_inhmval,
00079 Real dx,
00080 const ProblemDomain& a_domain) const;
00081
00083 virtual void
00084 fillBCValues(FArrayBox& a_neumfac,
00085 FArrayBox& a_dirfac,
00086 FArrayBox& a_inhmval,
00087 Real dx,
00088 const Box& a_domain) const;
00089
00091 virtual BoxGhostBC* new_boxghostbc() const;
00092
00094 bool m_isValSet;
00095
00096 private:
00097 InhomoDirichletBC(const InhomoDirichletBC& bcin) {;}
00098
00099 };
00100
00101
00102
00103 #endif
00104
00105