G+Smo  23.12.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gismo::expr Namespace Reference

This namespace contains expressions used for FE computations. More...

Classes

class  _expr< E, false >
 Base class for all expressions. More...
 
class  asdiag_expr
 
class  cartconinv_expr
 
class  cartcovinv_expr
 
class  constMat_expr
 
class  deriv2_expr
 Computes the second derivative of an expression. More...
 
class  deriv2dot_expr
 Expression that takes the second derivative of an expression and multiplies it with a row vector. More...
 
class  exp_expr
 
class  flat_expr
 
class  flatdot2_expr
 Computes the product of expressions E1 and E2 and multiplies with a vector E3 in voight notation. More...
 
class  flatdot_expr
 Computes the product of expressions E1 and E2 and multiplies with a vector E3 in voight notation. More...
 
class  gsFeSpace
 
class  gsFeVariable
 
class  idMat_expr
 
class  integral_expr
 
class  lapl_expr
 
class  matrix_by_space_expr
 
class  matrix_by_space_expr_tr
 
class  normal_expr
 
class  onormal_expr
 
class  ovar1_expr
 Expression for the first variation of the outer normal. More...
 
class  ovar2dot_expr
 Expression for the second variation of the outer normal times a vector. More...
 
class  pow_expr
 
class  ppart_expr
 
class  ppartval_expr
 
class  sign_expr
 
class  tangent_expr
 
class  tvar1_expr
 Expression for the first variation of the outer tangent. More...
 
class  unitVec_expr
 Simple expression for the unit vector of length dim and with value 1 on index. More...
 
class  var1_expr
 Expression for the first variation of the surface normal. More...
 
class  var2_expr
 Second variation of the normal. More...
 
class  var2deriv2dot_expr
 Second variation of the surface normal times the second derivative of the geometry map times a vector. More...
 
class  var2dot_expr
 Second variation of the surface normal times a vector. More...
 

Functions

template<class E >
EIGEN_STRONG_INLINE abs_expr< E > abs (const E &u)
 Absolute value.
 
template<class T >
EIGEN_STRONG_INLINE curl_expr< T > curl (const gsFeVariable< T > &u)
 The curl of a finite element variable.
 
template<typename E >
EIGEN_STRONG_INLINE diag_expr
< E > const 
diagonal (E const &u)
 Get diagonal elements of matrix as a vector.
 
template<class T >
EIGEN_STRONG_INLINE dJacG_expr< T > dJac (const gsGeometryMap< T > &G)
 The partial derivatives of the Jacobian matrix of a geometry map.
 
template<class E >
EIGEN_STRONG_INLINE
dJacdc_expr< E > 
dJacdc (const E &u, index_t c)
 The derivative of the jacobian of a geometry map with respect to a coordinate.
 
template<class T >
EIGEN_STRONG_INLINE
fform2nd_expr< T > 
fform2nd (const gsGeometryMap< T > &G)
 The second fundamental form of G.
 
template<typename E >
EIGEN_STRONG_INLINE flat_expr
< E > const 
flat (E const &u)
 Make a matrix 2x2 expression "flat".
 
template<typename E1 , typename E2 >
EIGEN_STRONG_INLINE
frprod3_expr< E1, E2 > const 
frprod3 (E1 const &u, E2 const &M)
 Frobenious product (also known as double dot product) operator for expressions.
 
 GISMO_EXPR_VECTOR_EXPRESSION (norm, norm, 1)
 Eucledian Norm.
 
 GISMO_EXPR_VECTOR_EXPRESSION (sqNorm, squaredNorm, 1)
 Squared Eucledian Norm.
 
 GISMO_EXPR_VECTOR_EXPRESSION (normalized, normalized, 0)
 Normalization of a vector to unit measure.
 
 GISMO_EXPR_VECTOR_EXPRESSION (inv, cramerInverse, 0)
 Inverse of a matrix expression.
 
template<class E >
EIGEN_STRONG_INLINE grad_expr< E > grad (const E &u)
 The gradient of a variable.
 
template<class T >
EIGEN_STRONG_INLINE hess_expr
< gsGeometryMap< T > > 
hess (const gsGeometryMap< T > &u)
 The hessian of a geometry map.
 
template<class T >
EIGEN_STRONG_INLINE hess_expr
< gsFeSolution< T > > 
hess (const gsFeSolution< T > &u)
 The hessian of a solution variable.
 
EIGEN_STRONG_INLINE idMat_expr id (const index_t dim)
 The identity matrix of dimension dim.
 
template<class E >
EIGEN_STRONG_INLINE jac_expr< E > jac (const symbol_expr< E > &u)
 The Jacobian matrix of a FE variable.
 
template<class T >
EIGEN_STRONG_INLINE jac_expr
< gsGeometryMap< T > > 
jac (const gsGeometryMap< T > &G)
 The Jacobian matrix of a geometry map.
 
template<class T >
EIGEN_STRONG_INLINE grad_expr
< gsFeSolution< T > > 
jac (const gsFeSolution< T > &s)
 Jacobian matrix for a solution expression.
 
template<class E >
EIGEN_STRONG_INLINE
jacScaledLx_expr< E > 
jacScaledLx (const E &u, const gsGeometryMap< typename E::Scalar > &G)
 jacobian matrix of scaled Lx for PDE-based parameterization construction
 
template<class E >
EIGEN_STRONG_INLINE
jacScaledLxDiag_expr< E > 
jacScaledLxDiag (const E &u, const gsGeometryMap< typename E::Scalar > &G)
 diagonal part of jacobian matrix of scaled Lx for PDE-based parameterization construction
 
template<class E >
EIGEN_STRONG_INLINE
jacScaledLxDiagBlock_expr< E > 
jacScaledLxDiagBlock (const E &u, const gsGeometryMap< typename E::Scalar > &G)
 diagonal block part of jacobian matrix of scaled Lx for PDE-based parameterization construction
 
template<class E >
EIGEN_STRONG_INLINE
jacScaledLxH1_expr< E > 
jacScaledLxH1 (const E &u, const gsGeometryMap< typename E::Scalar > &G)
 jacobian matrix of scaled Lx (in H1 space) for PDE-based parameterization construction
 
template<class E >
EIGEN_STRONG_INLINE
jacScaledLxH1DiagBlock_expr< E > 
jacScaledLxH1DiagBlock (const E &u, const gsGeometryMap< typename E::Scalar > &G)
 jacobian matrix of scaled Lx (in H1 space) for PDE-based parameterization construction
 
template<typename E1 , typename E2 >
EIGEN_STRONG_INLINE
matrix_by_space_expr< E1, E2 >
const 
matrix_by_space (E1 const &u, E2 const &v)
 
template<typename E1 , typename E2 >
EIGEN_STRONG_INLINE
matrix_by_space_expr_tr< E1,
E2 > const 
matrix_by_space_tr (E1 const &u, E2 const &v)
 
template<class T >
EIGEN_STRONG_INLINE meas_expr< T > meas (const gsGeometryMap< T > &G)
 The measure of a geometry map.
 
template<class T >
EIGEN_STRONG_INLINE nabla_expr< T > nabla (const gsFeVariable< T > &u)
 The nabla ( \(\nabla\)) of a finite element variable.
 
template<class T >
nabla2_expr< T > nabla2 (const gsFeVariable< T > &u)
 The nabla2 ( \(\nabla^2\)) of a finite element variable.
 
template<class T >
EIGEN_STRONG_INLINE
onormal_expr< T > 
nv (const gsGeometryMap< T > &u)
 The (outer pointing) boundary normal of a geometry map.
 
template<typename E1 , typename E2 >
EIGEN_STRONG_INLINE
frprod_expr< E1, E2 > const 
operator% (_expr< E1 > const &u, _expr< E2 > const &v)
 Frobenious product (also known as double dot product) operator for expressions.
 
template<typename E1 , typename E2 >
EIGEN_STRONG_INLINE mult_expr
< E1, E2 > const 
operator* (_expr< E1 > const &u, _expr< E2 > const &v)
 Multiplication operator for expressions.
 
template<typename E1 , typename E2 >
EIGEN_STRONG_INLINE add_expr
< E1, E2 > const 
operator+ (_expr< E1 > const &u, _expr< E2 > const &v)
 Addition operator for expressions.
 
template<typename E >
EIGEN_STRONG_INLINE add_expr
< E, _expr< typename E::Scalar,
true > > 
operator+ (_expr< E > const &u, const typename E::Scalar v)
 Addition operator for expressions and numbers.
 
template<typename E >
EIGEN_STRONG_INLINE add_expr
< E, _expr< typename E::Scalar,
true > > 
operator+ (const typename E::Scalar v, _expr< E > const &u)
 Addition operator for expressions and numbers.
 
template<typename E1 , typename E2 >
EIGEN_STRONG_INLINE sub_expr
< E1, E2 > const 
operator- (_expr< E1 > const &u, _expr< E2 > const &v)
 Subtraction operator for expressions.
 
template<typename E1 , typename E2 >
EIGEN_STRONG_INLINE
divide_expr< E1, E2 > const 
operator/ (_expr< E1 > const &u, _expr< E2 > const &v)
 Scalar division operator for expressions.
 
template<typename E >
std::ostream & operator<< (std::ostream &os, const _expr< E > &b)
 Stream operator for expressions.
 
template<typename E >
EIGEN_STRONG_INLINE
replicate_expr< E > const 
replicate (E const &u, index_t n, index_t m=1)
 Replicate an expression.
 
template<typename E >
EIGEN_STRONG_INLINE
reshape_expr< E > const 
reshape (E const &u, index_t n, index_t m)
 Reshape an expression.
 
template<typename E1 , typename E2 >
EIGEN_STRONG_INLINE summ_expr
< E1, E2 > const 
summ (E1 const &u, E2 const &M)
 Matrix-summation operator for expressions.
 
template<class E0 , class E1 , class E2 >
EIGEN_STRONG_INLINE
ternary_expr< E0, E1, E2 > 
ternary (const E0 &u, const E1 &v, const E2 &w)
 Ternary ternary_expr.
 
template<class T >
EIGEN_STRONG_INLINE
tangent_expr< T > 
tv (const gsGeometryMap< T > &u)
 The tangent boundary vector of a geometry map in 2D.
 

Detailed Description

This namespace contains expressions used for FE computations.

Function Documentation

EIGEN_STRONG_INLINE matrix_by_space_expr<E1,E2> const gismo::expr::matrix_by_space ( E1 const &  u,
E2 const &  v 
)

Matrix by space TODO: find better name and/or description? And is this the best place? [Jg Jg Jg] * Jb ..

EIGEN_STRONG_INLINE matrix_by_space_expr_tr<E1,E2> const gismo::expr::matrix_by_space_tr ( E1 const &  u,
E2 const &  v 
)

Matrix by space TODO: find better name and/or description? And is this the best place? [Jg Jg Jg] * Jb ..