Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

ExtrapBC.H

Go to the documentation of this file.
00001 // ExtrapBC.H
00002 
00003 //
00004 // This software is copyright (C) by the Lawrence Berkeley
00005 // National Laboratory.  Permission is granted to reproduce
00006 // this software for non-commercial purposes provided that
00007 // this notice is left intact.
00008 // 
00009 // It is acknowledged that the U.S. Government has rights to
00010 // this software under Contract DE-AC03-765F00098 between
00011 // the U.S.  Department of Energy and the University of
00012 // California.
00013 //
00014 // This software is provided as a professional and academic
00015 // contribution for joint exchange. Thus it is experimental,
00016 // is provided ``as is'', with no warranties of any kind
00017 // whatsoever, no support, no promise of updates, or printed
00018 // documentation. By using this software, you acknowledge
00019 // that the Lawrence Berkeley National Laboratory and
00020 // Regents of the University of California shall have no
00021 // liability with respect to the infringement of other
00022 // copyrights by any part of this software.
00023 //
00024 // Dan Martin, March 8, 2000
00025 #ifndef _EXTRAPBC_H_
00026 #define _EXTRAPBC_H_
00027 
00028 #include "Box.H"
00029 #include "FArrayBox.H"
00030 #include "Vector.H"
00031 #include "LoHiSide.H"
00032 #include "GhostBC.H"
00034 
00047 class ExtrapBC : public BoxGhostBC
00048 {
00049 public:
00050   friend class DomainGhostBC;
00051 
00053   ~ExtrapBC();
00054 
00056   ExtrapBC();
00057   
00059   ExtrapBC(int dir, Side::LoHiSide sd);
00060 
00062   ExtrapBC(int dir, Side::LoHiSide sd, 
00063             const Interval& a_comps);
00064 
00065 protected:
00066 
00068   virtual void
00069   fillBCValues(FArrayBox& a_neumfac,
00070                FArrayBox& a_dircfac,
00071                FArrayBox& a_inhmval,
00072                Real a_dx,
00073                const ProblemDomain& a_domain) const;
00074 
00076   virtual void applyHomogeneousBCs(FArrayBox& a_state,
00077                                    const ProblemDomain& a_domain,
00078                                    Real a_dx) const;
00079   
00081   virtual void applyInhomogeneousBCs(FArrayBox& a_state,
00082                                      const ProblemDomain& a_domain,
00083                                      Real a_dx) const;
00084   
00086   virtual void applyExtrapBCs(FArrayBox& a_state, 
00087                               const ProblemDomain& a_domain,
00088                               Real a_dx) const;
00089 
00090 
00092   virtual void
00093   fillBCValues(FArrayBox& a_neumfac,
00094                FArrayBox& a_dircfac,
00095                FArrayBox& a_inhmval,
00096                Real a_dx,
00097                const Box& a_domain) const;
00098 
00100   virtual void applyHomogeneousBCs(FArrayBox& a_state,
00101                                    const Box& a_domain,
00102                                    Real a_dx) const;
00103   
00105   virtual void applyInhomogeneousBCs(FArrayBox& a_state,
00106                                      const Box& a_domain,
00107                                      Real a_dx) const;
00108   
00110   virtual void applyExtrapBCs(FArrayBox& a_state, 
00111                               const Box& a_domain,
00112                               Real a_dx) const;
00113 
00114 
00116   BoxGhostBC* new_boxghostbc() const;
00117 
00118 private:
00119   ExtrapBC(const ExtrapBC& neuin){;}
00120   void operator=(const ExtrapBC& neuin){;}
00121 
00122 };
00123 
00124 
00125 
00126 #endif

Generated on Thu Aug 29 11:05:44 2002 for Chombo&INS by doxygen1.2.16