00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef __TRIANG6S_H
00036 #define __TRIANG6S_H
00037
00038 #include "OFELI_Config.h"
00039 #include "FEShape.h"
00040
00041 namespace OFELI {
00042
00047 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00048 struct ErrorInTriang6S {
00049 void Message(const char *file, size_t line, int code, int p1) const;
00050 };
00051 #endif
00052
00060 class Triang6S : public FEShape
00061 {
00062
00063 public :
00064
00066 Triang6S();
00067
00070 Triang6S(const Element *el);
00071
00073 ~Triang6S()
00074 {
00075 #ifdef _OFELI_DEBUG
00076 std::clog << "An instance of class Triang6S is destructed.\n";
00077 std::clog << "File : " << __FILE__ << ", Line : " << __LINE__ << endl;
00078 #endif
00079 }
00080
00082 double Sh(size_t i, const Point<double> &s) const;
00083
00085 Point<double> DSh(size_t i, const Point<double> &s) const;
00086
00088 double getArea() { return _area=0.5*_det; }
00089
00091 Point<double> getCenter() const { return _c; }
00092
00100 double check() const;
00101
00102 private :
00103
00104 double _area;
00105 Point<double> _x21, _x31, _x32;
00106 const Element *_el;
00107 ErrorInTriang6S _e;
00108 };
00109
00110 }
00111
00112 #endif