IFEM  90A354
Static Public Member Functions | List of all members
PiolaOperators::Weak Class Reference

Common weak operators using Piola mapped discretizations. More...

#include <PiolaOperators.h>

Static Public Member Functions

static void Advection (Matrices &EM, const FiniteElement &fe, const Vec3 &AC, const std::array< std::array< int, 3 >, 3 > &idx, double scale=1.0, WeakOperators::ConvectionForm cnvForm=WeakOperators::CONVECTIVE)
 Compute an advection term. More...
 
static void Convection (Matrices &EM, const FiniteElement &fe, const Vec3 &U, const Tensor &dUdX, const std::array< std::array< int, 3 >, 3 > &idx, double scale, WeakOperators::ConvectionForm form=WeakOperators::CONVECTIVE)
 Compute a (nonlinear) convection term. More...
 
static void Gradient (Matrices &EM, const FiniteElement &fe, std::array< int, 3 > &idx, double scale=1.0)
 Compute a gradient term. More...
 
static void ItgConstraint (std::vector< Matrix > &EM, const FiniteElement &fe, const std::array< int, 3 > &idx)
 Compute an integration constraint. More...
 
static void Laplacian (Matrices &EM, const FiniteElement &fe, const std::array< std::array< int, 3 >, 3 > &idx, double scale, bool stress)
 Compute a laplacian. More...
 
static void Mass (Matrices &EM, const FiniteElement &fe, const std::array< std::array< int, 3 >, 3 > &idx, double scale)
 Compute a mass term. More...
 
static void Source (Vectors &EV, const FiniteElement &fe, const Vec3 &f, const std::array< int, 3 > &idx, double scale)
 Compute a vector-source term. More...
 

Detailed Description

Common weak operators using Piola mapped discretizations.

Member Function Documentation

◆ Advection()

void PiolaOperators::Weak::Advection ( Matrices EM,
const FiniteElement fe,
const Vec3 AC,
const std::array< std::array< int, 3 >, 3 > &  idx,
double  scale = 1.0,
WeakOperators::ConvectionForm  cnvForm = WeakOperators::CONVECTIVE 
)
static

Compute an advection term.

Parameters
[out]EMThe element matrices to add contribution to
[in]feThe finite element to evaluate for
[in]ACAdvecting field
[in]idxMatrix block indices
[in]scaleScaling factor for contribution
[in]cnvFormForm of advection operator

References PiolaOperators::Copy().

◆ Convection()

void PiolaOperators::Weak::Convection ( Matrices EM,
const FiniteElement fe,
const Vec3 U,
const Tensor dUdX,
const std::array< std::array< int, 3 >, 3 > &  idx,
double  scale,
WeakOperators::ConvectionForm  form = WeakOperators::CONVECTIVE 
)
static

Compute a (nonlinear) convection term.

Parameters
[out]EMThe element matrix to add contribution to
[in]feThe finite element to evaluate for
[in]UAdvecting field
[in]dUdXField gradient
[in]idxMatrix block indices
[in]scaleScaling factor for contribution
[in]formWhich form of the convective form to use

References PiolaOperators::Copy(), FiniteElement::detJxW, Tensor::dim(), utl::matrix< T >::multiply(), and FiniteElement::P.

◆ Gradient()

void PiolaOperators::Weak::Gradient ( Matrices EM,
const FiniteElement fe,
std::array< int, 3 > &  idx,
double  scale = 1.0 
)
static

Compute a gradient term.

Parameters
[out]EMThe element matrix to add contribution to
[in]feThe finite element to evaluate for
[in]idxMatrix block indices
[in]scaleScaling factor for contribution

References FiniteElement::basis(), utl::matrix< T >::cols(), FiniteElement::detJxW, FiniteElement::dNdX, FiniteElement::dPdX, utl::matrix< T >::outer_product(), and utl::vector< T >::size().

◆ ItgConstraint()

void PiolaOperators::Weak::ItgConstraint ( std::vector< Matrix > &  EM,
const FiniteElement fe,
const std::array< int, 3 > &  idx 
)
static

Compute an integration constraint.

Parameters
[out]EMThe element matrix to add contribution to
[in]idxMatrix block indices
[in]feThe finite element to evaluate for

◆ Laplacian()

void PiolaOperators::Weak::Laplacian ( Matrices EM,
const FiniteElement fe,
const std::array< std::array< int, 3 >, 3 > &  idx,
double  scale,
bool  stress 
)
static

Compute a laplacian.

Parameters
[out]EMThe element matrix to add contribution to
[in]feThe finite element to evaluate for
[in]idxMatrix block indices
[in]scaleScaling factor for contribution
[in]stressWhether to add extra stress formulation terms

Only the upper blocks are added with the stress formulation

References PiolaOperators::Copy(), FiniteElement::detJxW, FiniteElement::dPdX, and utl::matrix< T >::multiply().

◆ Mass()

void PiolaOperators::Weak::Mass ( Matrices EM,
const FiniteElement fe,
const std::array< std::array< int, 3 >, 3 > &  idx,
double  scale 
)
static

Compute a mass term.

Parameters
[out]EMThe element matrices to add contribution to
[in]feThe finite element to evaluate for
[in]idxMatrix block indices
[in]scaleScaling factor for contribution

References PiolaOperators::Copy(), FiniteElement::detJxW, M, SystemMatrix::multiply(), and FiniteElement::P.

◆ Source()

void PiolaOperators::Weak::Source ( Vectors EV,
const FiniteElement fe,
const Vec3 f,
const std::array< int, 3 > &  idx,
double  scale 
)
static

Compute a vector-source term.

Parameters
[out]EVThe element vectors to add contribution to
[in]feThe finite element to evaluate for
[in]fVector with contributions
idxVector block indices
[in]scaleScaling factor for contribution

References utl::matrix< T >::cols(), PiolaOperators::Copy(), FiniteElement::detJxW, FiniteElement::dNdX, utl::matrix< T >::multiply(), FiniteElement::P, and Vec3::ptr().


The documentation for this class was generated from the following files: