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 _scalarDirichletBC_H_
00033 #define _scalarDirichletBC_H_
00034
00035 #include "Box.H"
00036 #include "FArrayBox.H"
00037 #include "Vector.H"
00038 #include "LoHiSide.H"
00039 #include "GhostBC.H"
00040
00041
00043 class scalarDirichletBC : public BoxGhostBC
00044 {
00045
00046 public:
00047 friend class DomainGhostBC;
00048
00050 scalarDirichletBC(int dir, Side::LoHiSide sd);
00051
00053 scalarDirichletBC(int dir, Side::LoHiSide sd,
00054 const Interval& a_comps);
00055
00057 virtual ~scalarDirichletBC();
00058
00060 scalarDirichletBC();
00061
00063 void setVal(const Real a_bcVal);
00064
00065
00066 private:
00067
00069 Real m_BCVal;
00070
00072 virtual void
00073 fillBCValues(FArrayBox& a_neumfac,
00074 FArrayBox& a_dirfac,
00075 FArrayBox& a_inhmval,
00076 Real dx,
00077 const ProblemDomain& a_domain) const;
00078
00080 virtual void
00081 fillBCValues(FArrayBox& a_neumfac,
00082 FArrayBox& a_dirfac,
00083 FArrayBox& a_inhmval,
00084 Real dx,
00085 const Box& a_domain) const;
00086
00088 virtual BoxGhostBC* new_boxghostbc() const;
00089
00090 private:
00091 scalarDirichletBC(const scalarDirichletBC& bcin) {;}
00092
00093 };
00094
00096 class scalarInflowBC : public BoxGhostBC
00097 {
00098
00099 public:
00100 friend class DomainGhostBC;
00101
00103 scalarInflowBC();
00104
00106 scalarInflowBC(int dir, Side::LoHiSide sd);
00107
00109 scalarInflowBC(int dir, Side::LoHiSide sd,
00110 const Interval& a_comps);
00111
00112
00114 virtual ~scalarInflowBC();
00115
00117 void setScalarType(int a_scalType);
00118
00120 int scalarType() const;
00121
00123 void isHomogeneous(bool a_isHomogeneous);
00124
00126 bool isHomogeneous() const;
00127
00128
00129
00130 private:
00131
00133 int m_scalType;
00134
00136 bool m_isHomogeneous;
00137
00139 virtual void
00140 fillBCValues(FArrayBox& a_neumfac,
00141 FArrayBox& a_dirfac,
00142 FArrayBox& a_inhmval,
00143 Real dx,
00144 const ProblemDomain& a_domain) const;
00145
00146
00148 virtual void
00149 fillBCValues(FArrayBox& a_neumfac,
00150 FArrayBox& a_dirfac,
00151 FArrayBox& a_inhmval,
00152 Real dx,
00153 const Box& a_domain) const;
00154
00155
00157 virtual BoxGhostBC* new_boxghostbc() const;
00158
00159
00160 };
00161
00162 #endif
00163
00164