59 int nSide ()
const {
return 2; };
65 int SideNode (
int side,
int node)
const;
77 int QuadRule (
int order,
const double **wght,
const Point **absc)
const;
97 {
static RVector tmp(2);
return tmp;};
122 double IntF (
int i)
const;
128 double IntFF (
int i,
int j)
const;
131 double IntFFF (
int i,
int j,
int k)
const;
151 double IntFDD (
int i,
int j,
int k)
const
152 {
return intdd.
Get(j,k) * 0.5; }
157 {
return intdd * ((P[
Node[0]]+P[
Node[1]])/2.0); }
164 {
return intdd.
Get(i,j) * ((P[
Node[0]]+P[
Node[1]])/2.0); }
168 { ERROR_UNDEF;
return 0; }
171 {
return intbff * ((P[
Node[0]]+P[
Node[1]])/2.0); }
176 {
return intbff.
Get(i,j) * ((P[
Node[0]]+P[
Node[1]])/2.0); }
179 double IntFd (
int i,
int j,
int k)
const;
186 double IntFdd (
int i,
int j,
int k,
int l,
int m)
const;
189 double IntPdd (
const RVector &p,
int j,
int k,
int l,
int m)
const;
200 RVector BndIntFX (
int side,
double (*func)(
const Point&),
205 double sigma,
double sup,
const NodeList &nlist)
const;
216 int GetLocalSubsampleAbsc (
const Point *&absc)
const;
220 int GetBndSubsampleAbsc (
int side,
const Point *&absc)
const;
225 int GlobalIntersection (
const NodeList &nlist,
const Point &p1,
235 int GlobalIntersection (
const NodeList &nlist,
const Point &p1,
243 double ComputeSize (
const NodeList &nlist)
const;
250 void ComputeIntFD (
const NodeList &nlist);
267 double *intfd_0, *intfd_1;
270 double a0, b0, a1, b1;
273 #ifdef LINE2D2_STORE_INTFF
RSymMatrix Intdd() const
Integral of the product of two partial shape function derivatives over the element.
bool LContains(const Point &loc, bool pad=true) const
Checks if a local point coordinate is inside the element.
Templated vector class.
Definition: vector.h:39
RVector DirectionCosine(int side, RDenseMatrix &jacin)
Returns the direction cosines of a side normal.
Definition: line2d2.h:94
RVector IntFD(int i, int j) const
Integral of a product of a shape function and a shape function derivative over the element...
double IntFdd(int i, int j, int k, int l, int m) const
Integral of the product of a shape function and two partial shape function derivatives over the eleme...
double IntFd(int i, int j, int k) const
Integral of the product of a shape function and a partial shape function derivative over the element...
RSymMatrix BndIntPFF(const RVector &P) const
Surface integrals of all products of a nodal function and two shape functions over all boundary sides...
Definition: line2d2.h:170
MT Get(int r, int c) const
Retrieve a matrix element.
Definition: symatrix.h:109
RSymMatrix IntPDD(const RVector &P) const
All integrals of products of a nodal function and two shape function derivatives over the element...
Definition: line2d2.h:156
double IntPd(const RVector &P, int j, int k) const
Integral of the product of a nodal function and a partial shape function derivative over the element...
double IntFFF(int i, int j, int k) const
Integral of a product of three shape functions over the element.
double IntFDD(int i, int j, int k) const
Integral of a product of a shape function and two shape function derivatives over the element...
Definition: line2d2.h:151
void Initialise(const NodeList &nlist)
Element initialisation.
double IntPDD(int i, int j, const RVector &P) const
Integrals of a product of a nodal function and two shape function derivatives over the element...
Definition: line2d2.h:163
double IntF(int i) const
Integral of a shape function over the element.
double BndIntFFSide(int i, int j, int sd)
Surface integral of a product of two shape functions over one of the sides of the element...
Definition: line2d2.h:167
RDenseMatrix LocalShapeD(const Point &loc) const
Returns the values of the shape function derivatives at a local point.
RSymMatrix IntPFF(const RVector &P) const
Integrals of all products of two shape functions and a nodal function over the element.
double BndIntPFF(int i, int j, const RVector &P) const
Surface integrals of a product of a nodal function and two shape functions over all boundary sides of...
Definition: line2d2.h:175
Point SurfToLocal(int side, const Point &p) const
Maps a point from surface coordinates to local element coordinates.
Definition: line2d2.h:92
BYTE Type() const
Returns an element type identifier.
Definition: line2d2.h:50
double SideSize(int sd, const NodeList &nlist) const
Returns the size of an element side.
Definition: line2d2.h:68
int nSideNode(int) const
Returns the number of vertices associated with a side.
Definition: line2d2.h:62
Base class for finite element types.
Definition: element.h:84
RVector GlobalShapeF(const NodeList &nlist, const Point &glob) const
Returns the values of the shape functions at a global point.
int SideNode(int side, int node) const
Returns relative node index for a side vertex.
Base class for all 2-D unstructured element types.
Definition: element.h:1234
int nSide() const
Returns the number of element sides.
Definition: line2d2.h:59
bool GContains(const Point &glob, const NodeList &nlist) const
Checks if a global point coordinate is inside the element.
Definition: line2d2.h:98
const RVector & LNormal(int side) const
Returns a side normal in local coordinates.
Definition: line2d2.h:96
Point NodeLocal(int node) const
Returns the local coordinates of an element node.
RVector LocalShapeF(const Point &loc) const
Returns the values of the shape functions at a local point.
Point Local(const NodeList &nlist, const Point &glob) const
Maps a point from global to local element coordinates.
Dense matrix class.
Definition: crmatrix.h:38
RSymMatrix IntFF() const
Integrals of all products of two shape functions over the element.
#define ELCAPS_SUBSAMPLING
element implements IntFFF and IntFDD by subsampling
Definition: element.h:61
RDenseMatrix GlobalShapeD(const NodeList &nlist, const Point &glob) const
Returns the values of the shape function derivatives at a global point.
Element * Copy()
Create a copy of the element and return a pointer to it.
#define ELID_LINE2D2
2-noded line
Definition: element.h:49
unsigned long GetCaps() const
Returns element capability flags.
Definition: line2d2.h:53
virtual int QuadRule(int order, const double **wght, const Point **absc) const
Returns the weights and abscissae of quadrature rules over the element.
Definition: element.h:521
int nNode() const
Returns the number of nodes associated with the element.
Definition: line2d2.h:56