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 _HOExtrapBC_H_
00033 #define _HOExtrapBC_H_
00034
00035 #include "GhostBC.H"
00036
00037
00039 class HOExtrapBC : public BoxGhostBC
00040 {
00041 public:
00043 friend class DomainGhostBC;
00044
00046 HOExtrapBC();
00047
00049 ~HOExtrapBC();
00050
00052 HOExtrapBC(int dir, Side::LoHiSide sd,
00053 const Interval& a_comps);
00054
00056 HOExtrapBC(int dir, Side::LoHiSide sd);
00057
00058
00059 protected:
00060
00062 virtual void applyHomogeneousBCs(FArrayBox& a_state,
00063 const ProblemDomain& a_domain,
00064 Real a_dx) const;
00065
00067 virtual void applyInhomogeneousBCs(FArrayBox& a_state,
00068 const ProblemDomain& a_domain,
00069 Real a_dx) const;
00070
00072 virtual void applyHOExtrapBCs(FArrayBox& a_state,
00073 const ProblemDomain& a_domain,
00074 Real a_dx) const;
00075
00076
00078 virtual void fillBCValues(FArrayBox& a_neumfac,
00079 FArrayBox& a_dircfac,
00080 FArrayBox& a_inhmval,
00081 Real a_dx,
00082 const ProblemDomain& a_domain) const;
00083
00084
00086 virtual void applyHomogeneousBCs(FArrayBox& a_state,
00087 const Box& a_domain,
00088 Real a_dx) const;
00089
00091 virtual void applyInhomogeneousBCs(FArrayBox& a_state,
00092 const Box& a_domain,
00093 Real a_dx) const;
00094
00096 virtual void applyHOExtrapBCs(FArrayBox& a_state,
00097 const Box& a_domain,
00098 Real a_dx) const;
00099
00100
00102 virtual void fillBCValues(FArrayBox& a_neumfac,
00103 FArrayBox& a_dircfac,
00104 FArrayBox& a_inhmval,
00105 Real a_dx,
00106 const Box& a_domain) const;
00107
00109 BoxGhostBC* new_boxghostbc() const;
00110
00111 private:
00112 HOExtrapBC(const HOExtrapBC& extrapin) {;}
00113 void operator=(const HOExtrapBC& extrapin) {;}
00114
00115 };
00116
00117
00118
00119
00120 #endif
00121
00122