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

Gradient.H

Go to the documentation of this file.
00001 
00002 // Gradient class: utility for computing grad(phi) for difference stencils
00003 // written by F. Miniati
00004 
00005 #ifndef _GRADIENT_H_
00006 #define _GRADIENT_H_
00007 
00008 #include "ProblemDomain.H"
00009 #include "FArrayBox.H"
00010 #include "FluxBox.H"
00011 #include "Box.H"
00012 
00013 enum StencilType {TwoPts, FourPts, TenPts};
00014 
00015 class Gradient
00016 {
00017 public:
00019   Gradient(){;};
00020 
00022   virtual ~Gradient(){;};
00023 
00024   // computed cell centered gradient
00025   virtual void gradient(FArrayBox&           a_grad,
00026                         const FArrayBox&     a_phi,
00027                         const ProblemDomain& a_domain,
00028                         const Real&          a_dx,
00029                         const Box&           a_box) = 0;
00030 };
00031 
00032 class TwoPtsGradient : public Gradient
00033 {
00034 public:
00036   TwoPtsGradient() : Gradient() {;};
00037 
00039   virtual ~TwoPtsGradient(){;};
00040 
00041   // computed cell centered gradient
00042   virtual void gradient(FArrayBox&           a_grad,
00043                         const FArrayBox&     a_phi,
00044                         const ProblemDomain& a_domain,
00045                         const Real&          a_dx,
00046                         const Box&           a_box);
00047 };
00048 
00049 class FourPtsGradient : public Gradient
00050 {
00051 public:
00053   FourPtsGradient() : Gradient() {;};
00054 
00056   virtual ~FourPtsGradient(){;};
00057 
00058   // computed cell centered gradient
00059   virtual void gradient(FArrayBox&           a_grad,
00060                         const FArrayBox&     a_phi,
00061                         const ProblemDomain& a_domain,
00062                         const Real&          a_dx,
00063                         const Box&           a_box);
00064 };
00065 
00066 class TenPtsGradient : public Gradient
00067 {
00068 public:
00070   TenPtsGradient() : Gradient() {;};
00071 
00073   virtual ~TenPtsGradient(){;};
00074 
00075   // computed cell centered gradient
00076   virtual void gradient(FArrayBox&           a_grad,
00077                         const FArrayBox&     a_phi,
00078                         const ProblemDomain& a_domain,
00079                         const Real&          a_dx,
00080                         const Box&           a_box);
00081 };
00082 
00083 #endif

Generated on Wed Oct 19 13:33:48 2005 for Chombo&AMRSelfGravity by doxygen 1.3.2