Patate Lib  0.5
Vitelotte::LinearElement< _Scalar > Class Template Reference

Inherited by Vitelotte::FVElement< _Scalar > [protected], Vitelotte::MorleyElement< _Scalar > [protected], and Vitelotte::QuadraticElement< _Scalar > [protected].

## Detailed Description

### template<typename _Scalar> class Vitelotte::LinearElement< _Scalar >

Provides method to evaluate linear elements and their derivatives.

## Public Types

typedef _Scalar Scalar

typedef Eigen::Matrix< Scalar, 2, 1 > Vector

typedef Eigen::Matrix< Scalar, 3, 1 > Values

typedef Eigen::Matrix< Scalar, 3, 2 > Jacobian

typedef Eigen::Matrix< Scalar, 2, 2 > Hessian

typedef Eigen::Matrix< Scalar, 3, 1 > BarycentricCoord

## Public Member Functions

template<typename It >
LinearElement (It pointIt)

template<typename Derived0 , typename Derived1 , typename Derived2 >
LinearElement (const Eigen::MatrixBase< Derived0 > &p0, const Eigen::MatrixBase< Derived1 > &p1, const Eigen::MatrixBase< Derived2 > &p2)

Vector projPoint (unsigned pi, unsigned offset=0) const

Scalar edgeLength (unsigned ei, unsigned offset=0) const

Scalar doubleArea () const

BarycentricCoord bcProj (const Vector &p) const

Values eval (const BarycentricCoord &bc) const

Scalar eval (unsigned bi, const BarycentricCoord &bc) const

const Eigen::Block< const
Matrix3, 3, 2 >
jacobian (const BarycentricCoord &=BarycentricCoord()) const

const Vector gradient (unsigned bi, const BarycentricCoord &=BarycentricCoord()) const

## Protected Types

typedef Eigen::Matrix< Scalar, 3, 1 > Vector3

typedef Eigen::Matrix< Scalar, 2, 2 > Matrix2

typedef Eigen::Matrix< Scalar, 3, 3 > Matrix3

typedef Eigen::Matrix< Scalar, 3, 2 > Matrix3x2

typedef Eigen::Matrix< Scalar, 2, 3 > Matrix2x3

## Protected Member Functions

template<typename Derived0 , typename Derived1 , typename Derived2 >
void computeFromPoints (const Eigen::MatrixBase< Derived0 > &p0, const Eigen::MatrixBase< Derived1 > &p1, const Eigen::MatrixBase< Derived2 > &p2)

Vector m_p2

Vector3 m_eLen

Scalar m_2delta

Matrix3 m_lbf