Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Examples  

QuadratureFamilyBase.h

Go to the documentation of this file.
00001 #ifndef QUADRATUREFAMILYBASE_H
00002 #define QUADRATUREFAMILYBASE_H
00003 
00004 #include "SundanceDefs.h"
00005 #include "QuadraturePoints.h"
00006 #include "CellType.h"
00007 #include "XMLObject.h"
00008 #include <string>
00009 
00010 
00011 namespace Sundance
00012 {
00013 
00014   using namespace TSF;
00015   using std::string;
00016 
00017   using std::ostream;
00018 
00019   class QuadratureFamily;
00020 
00021   /** \ingroup LowLevelFE
00022    * Base class for geometry-independent quadrature rules.
00023    */
00024   class QuadratureFamilyBase
00025     {
00026     public:
00027       /** */
00028       QuadratureFamilyBase(const string& typeName, int polyOrder);
00029       /** */
00030       virtual ~QuadratureFamilyBase(){;}
00031 
00032       /** produce quadrature points for a specified cell type */
00033       QuadraturePoints buildQuadraturePoints(CellTopologyCode cellType) const ;
00034 
00035       /** return the polynomial order of the rule */
00036       virtual int polyOrder() const {return polyOrder_;}
00037 
00038       /** return the name of the derived type */
00039       virtual const string& typeName() const = 0 ;
00040 
00041       /** write as an XML object */
00042       virtual XMLObject toXML() const ;
00043 
00044       /** get a hash code */
00045       virtual int hashCode() const {return hashCode_;}
00046     protected:
00047       /** compute a rule for the reference point cell */
00048       virtual QuadraturePoints getPointRule() const ;
00049 
00050       /** compute a rule for the reference line cell */
00051       virtual QuadraturePoints getLineRule() const ;
00052 
00053       /** compute a rule for the reference triangle cell */
00054       virtual QuadraturePoints getTriangleRule() const ;
00055 
00056       /** compute a rule for the reference quad cell */
00057       virtual QuadraturePoints getQuadRule() const ;
00058 
00059       /** compute a rule for the reference tet cell */
00060       virtual QuadraturePoints getTetRule() const ;
00061 
00062       /** compute a rule for the reference hex cell */
00063       virtual QuadraturePoints getBrickRule() const ;
00064 
00065       /* maximum-order polynomial that can
00066        * be integrated exactly by this rule */
00067       int polyOrder_;
00068 
00069       /* a hash code */
00070       int hashCode_;
00071     };
00072 
00073 }
00074 #endif
00075 
00076 

Contact:
Kevin Long (krlong@ca.sandia.gov)


Documentation generated by