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 #ifndef _POISSONBC_H_
00030 #define _POISSONBC_H_
00031
00032 #include "Box.H"
00033 #include "FArrayBox.H"
00034 #include "Vector.H"
00035 #include "LoHiSide.H"
00036 #include "GhostBC.H"
00038
00051 class NeumannBC : public BoxGhostBC
00052 {
00053 public:
00054 friend class DomainGhostBC;
00055
00057 ~NeumannBC();
00058
00060 NeumannBC();
00061
00063 NeumannBC(int dir, Side::LoHiSide sd);
00064
00066 NeumannBC(int dir, Side::LoHiSide sd,
00067 const Interval& a_comps);
00068
00069 protected:
00070
00072
00076 virtual void
00077 fillBCValues(FArrayBox& a_neumfac,
00078 FArrayBox& a_dircfac,
00079 FArrayBox& a_inhmval,
00080 Real a_dx,
00081 const Box& a_domain) const;
00082
00084
00088 virtual void
00089 fillBCValues(FArrayBox& a_neumfac,
00090 FArrayBox& a_dircfac,
00091 FArrayBox& a_inhmval,
00092 Real a_dx,
00093 const ProblemDomain& a_domain) const;
00094
00096 BoxGhostBC* new_boxghostbc() const;
00097
00098 private:
00099 NeumannBC(const NeumannBC& neuin){;}
00100 void operator=(const NeumannBC& neuin){;}
00101
00102 };
00103
00105
00117 class DircheletBC : public BoxGhostBC
00118 {
00119 public:
00120 friend class DomainGhostBC;
00121
00123 DircheletBC(int dir, Side::LoHiSide sd);
00124
00126 DircheletBC(int dir, Side::LoHiSide sd,
00127 const Interval& a_comps);
00128
00130 ~DircheletBC();
00131
00133 DircheletBC();
00134
00135 private:
00136
00138
00142 virtual void
00143 fillBCValues(FArrayBox& a_neumfac,
00144 FArrayBox& a_dircfac,
00145 FArrayBox& a_inhmval,
00146 Real dx,
00147 const Box& a_domain) const;
00148
00149
00151
00155 virtual void
00156 fillBCValues(FArrayBox& a_neumfac,
00157 FArrayBox& a_dircfac,
00158 FArrayBox& a_inhmval,
00159 Real dx,
00160 const ProblemDomain& a_domain) const;
00161
00163 BoxGhostBC* new_boxghostbc() const;
00164 private:
00165 DircheletBC(const DircheletBC& neuin){;}
00166 void operator=(const DircheletBC& neuin){;}
00167
00168 };
00169
00170 #endif