00001
00002
00003
00004
00005
00006
00007
00008 #ifndef U2D_ISOELEMENT1DP12POINTS_H
00009 #define U2D_ISOELEMENT1DP12POINTS_H
00010
00011 #include "u2d_mesh.h"
00012 #include "boost/numeric/mtl/mtl.hpp"
00013 #include "u2d_GaussPoints.h"
00014
00015 #define P1_1D_DEGREE_FREEDOM BOUNDARY_ELEMENT_SIZE
00016
00017 using namespace mtl;
00018
00019 class u2d_IsoElement1DP12Points {
00020 public:
00021 u2d_IsoElement1DP12Points();
00022 u2d_IsoElement1DP12Points(const u2d_IsoElement1DP12Points& orig);
00023 virtual ~u2d_IsoElement1DP12Points();
00024
00025 int gauss_points_n;
00026
00027
00028 dense2D<double> gauss_points;
00029 dense2D<double> w;
00030 dense2D<double> dx;
00031 dense_vector<double> p;
00032 u2d_BoundaryGaussPoints *applyTo(u2d_Mesh *mesh);
00033
00034 private:
00035
00036 double shapeP1Node1(double x);
00037 double shapeP1Node2(double x);
00038
00039 };
00040
00041
00042
00043
00044
00045
00046 inline double u2d_IsoElement1DP12Points::shapeP1Node1(double x) {
00047 return (1.0 - x) / 2.0;
00048 }
00049
00050 inline double u2d_IsoElement1DP12Points::shapeP1Node2(double x) {
00051 return (x + 1.0) / 2.0;
00052 }
00053
00054
00055 #endif
00056