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

ReflectBC.H

Go to the documentation of this file.
00001 /* _______              __
00002   / ___/ /  ___  __ _  / /  ___
00003  / /__/ _ \/ _ \/  ' \/ _ \/ _ \
00004  \___/_//_/\___/_/_/_/_.__/\___/ 
00005 */
00006 
00007 // ReflectBC.H
00008 
00009 //
00010 // This software is copyright (C) by the Lawrence Berkeley
00011 // National Laboratory.  Permission is granted to reproduce
00012 // this software for non-commercial purposes provided that
00013 // this notice is left intact.
00014 // 
00015 // It is acknowledged that the U.S. Government has rights to
00016 // this software under Contract DE-AC03-765F00098 between
00017 // the U.S.  Department of Energy and the University of
00018 // California.
00019 //
00020 // This software is provided as a professional and academic
00021 // contribution for joint exchange. Thus it is experimental,
00022 // is provided ``as is'', with no warranties of any kind
00023 // whatsoever, no support, no promise of updates, or printed
00024 // documentation. By using this software, you acknowledge
00025 // that the Lawrence Berkeley National Laboratory and
00026 // Regents of the University of California shall have no
00027 // liability with respect to the infringement of other
00028 // copyrights by any part of this software.
00029 //
00030 // Dan Martin, Fri, Jan 14, 2000
00031 
00032 #ifndef _ReflectBC_H_
00033 #define _ReflectBC_H_
00034 
00035 #include "GhostBC.H"
00036 
00037 
00039 class ReflectBC : public BoxGhostBC
00040 {
00041 public:
00043   friend class DomainGhostBC;
00044 
00046   ReflectBC();
00047 
00049   ~ReflectBC();
00050 
00052   ReflectBC(int dir, Side::LoHiSide sd, 
00053              const Interval& a_comps);
00054 
00056   ReflectBC(int dir, Side::LoHiSide sd);
00057              
00058   
00059 protected:
00060   
00062   virtual void applyHomogeneousBCs(FArrayBox& a_state,
00063                                    const Box& a_domain,
00064                                    Real a_dx) const;
00065 
00066 
00068   virtual void applyHomogeneousBCs(FArrayBox& a_state,
00069                                    const ProblemDomain& a_domain,
00070                                    Real a_dx) const;
00071   
00073   virtual void applyInhomogeneousBCs(FArrayBox& a_state,
00074                                      const Box& a_domain,
00075                                      Real a_dx) const;
00076 
00078   virtual void applyInhomogeneousBCs(FArrayBox& a_state,
00079                                      const ProblemDomain& a_domain,
00080                                      Real a_dx) const;
00081   
00083   virtual void applyReflectBCs(FArrayBox& a_state, 
00084                               const ProblemDomain& a_domain,
00085                               Real a_dx) const;
00086   
00087 
00089   virtual void fillBCValues(FArrayBox& a_neumfac,
00090                             FArrayBox& a_dircfac,
00091                             FArrayBox& a_inhmval,
00092                             Real a_dx, 
00093                             const Box& a_domain) const;
00094 
00096   virtual void fillBCValues(FArrayBox& a_neumfac,
00097                             FArrayBox& a_dircfac,
00098                             FArrayBox& a_inhmval,
00099                             Real a_dx, 
00100                             const ProblemDomain& a_domain) const;
00101   
00103   BoxGhostBC* new_boxghostbc() const;
00104   
00105 private:
00106   ReflectBC(const ReflectBC& extrapin) {;}
00107   void operator=(const ReflectBC& extrapin) {;}
00108   
00109 };
00110 
00111 
00112 
00113 
00114 #endif
00115 
00116 

Generated on Wed Jun 2 13:53:35 2004 for Chombo&INSwithParticles by doxygen 1.3.2