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 _GAUSS_BC_H_
00030 #define _GAUSS_BC_H_
00031
00032 #include "Box.H"
00033 #include "FArrayBox.H"
00034 #include "Vector.H"
00035 #include "RealVect.H"
00036 #include "LoHiSide.H"
00037 #include "GhostBC.H"
00038
00040
00057 class GaussBC: public BoxGhostBC
00058 {
00059 public:
00060 friend class DomainGhostBC;
00061
00063 GaussBC();
00064
00066 GaussBC(int dir,
00067 Side::LoHiSide sd);
00068
00070 GaussBC(int dir,
00071 Side::LoHiSide sd,
00072 const Interval& a_comps);
00073
00075 ~GaussBC();
00076
00078 virtual void setParameters(const Real& a_mass, const Real& a_lScale =1,
00079 const RealVect& a_center = RealVect(D_DECL(0.5,0.5,0.5)));
00080
00081 protected:
00083
00088 virtual void fillBCValues(FArrayBox& a_neumfac,
00089 FArrayBox& a_dircfac,
00090 FArrayBox& a_inhmval,
00091 Real a_dx,
00092 const Box& a_domain) const;
00093
00095
00100 virtual void fillBCValues(FArrayBox& a_neumfac,
00101 FArrayBox& a_dircfac,
00102 FArrayBox& a_inhmval,
00103 Real a_dx,
00104 const ProblemDomain& a_domain) const;
00105
00107
00110 BoxGhostBC* new_boxghostbc() const;
00111
00113 Real m_mass;
00114
00116 Real m_scale;
00117
00119 RealVect m_center;
00120
00121 private:
00122 GaussBC(const GaussBC& a_neuin){;}
00123 virtual void operator=(const GaussBC& a_neuin){;}
00124 };
00125
00126 #endif