00001 #ifndef AFFINEREFERENCECELL_H
00002 #define AFFINEREFERENCECELL_H
00003
00004 #include "SundanceDefs.h"
00005
00006 #include "ReferenceCellBase.h"
00007
00008 namespace Sundance
00009 {
00010
00011 using namespace TSF;
00012 using std::string;
00013
00014 using std::ostream;
00015
00016
00017
00018
00019
00020
00021
00022
00023 class AffineReferenceCell : public ReferenceCellBase
00024 {
00025 public:
00026
00027
00028
00029 AffineReferenceCell() : ReferenceCellBase() {;}
00030
00031 virtual ~AffineReferenceCell() {;}
00032
00033
00034 virtual bool isAffine() const {return true;}
00035
00036
00037 virtual void jacobian(const Cell& cell,
00038 const TSFArray<Point>& refpts,
00039 TSFArray<CellJacobian>& J) const ;
00040
00041
00042 virtual void detJacobian(const Cell& cell,
00043 const TSFArray<Point>& refpts,
00044 TSFArray<double>& detJ) const ;
00045
00046
00047 virtual void pullBack(const Cell& cell,
00048 const TSFArray<Point>& phys,
00049 TSFArray<Point>& ref) const ;
00050
00051 private:
00052 };
00053
00054 }
00055 #endif