Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

geometry/frmE_normalVector.hh
Go to the documentation of this file.
00001 
00006 #ifndef elemFormulaNormalTangentialVector_hh
00007 #define elemFormulaNormalTangentialVector_hh
00008 
00009 #include "basics/typedefs.hh"
00010 #include "formula/elementFormula.hh"
00011 
00012 namespace concepts {
00013 
00014 
00015   // ****************************************************** FrmE_NormalVector **
00016 
00026   class FrmE_NormalVector : public ElementFormula<Real2d> {
00027   public:
00028     virtual Real2d operator() (const ElementWithCell<Real>& elm,
00029                                const Real p, const Real t = 0.0) const;
00030     virtual Real2d operator() (const ElementWithCell<Real>& elm,
00031                                const Real2d& p,
00032                                const Real t = 0.0) const { 
00033       return (*this)(elm, p[0], t);
00034     }
00035     virtual Real2d operator() (const ElementWithCell<Real>& elm,
00036                                const Real3d& p,
00037                                const Real t = 0.0) const  { 
00038       return (*this)(elm, p[0], t);
00039     }
00040 
00042     virtual FrmE_NormalVector* clone() const {
00043       return new FrmE_NormalVector();
00044     }
00045   protected:
00046     virtual std::ostream& info(std::ostream& os) const;
00047   };
00048 
00049   // ************************************************** FrmE_TangentialVector **
00050 
00060   class FrmE_TangentialVector : public ElementFormula<Real2d> {
00061   public:
00062     virtual Real2d operator() (const ElementWithCell<Real>& elm,
00063                                const Real p, const Real t = 0.0) const;
00064     virtual Real2d operator() (const ElementWithCell<Real>& elm,
00065                                const Real2d& p,
00066                                const Real t = 0.0) const {
00067       return (*this)(elm, p[0], t);
00068     }
00069     virtual Real2d operator() (const ElementWithCell<Real>& elm,
00070                                const Real3d& p,
00071                                const Real t = 0.0) const  {
00072       return (*this)(elm, p[0], t);
00073     }
00074 
00076     virtual FrmE_TangentialVector* clone() const {
00077       return new FrmE_TangentialVector();
00078     }
00079   protected:
00080     virtual std::ostream& info(std::ostream& os) const;
00081   };
00082 
00083 } // namespace concepts
00084 
00085 #endif // elemFormulaNormalTangentialVector_hh
00086 

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)