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

Common weak operators using div-compatible discretizations. More...

#include <CompatibleOperators.h>

Static Public Member Functions

static void Advection (std::vector< Matrix > &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 (std::vector< Matrix > &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 (std::vector< Matrix > &EM, const FiniteElement &fe, const 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 (std::vector< Matrix > &EM, const FiniteElement &fe, const std::array< std::array< int, 3 >, 3 > &idx, double scale=1.0, bool stress=false)
 Compute a laplacian. More...
 
static void Mass (std::vector< Matrix > &EM, const FiniteElement &fe, const std::array< std::array< int, 3 >, 3 > &idx, double scale=1.0)
 Compute a mass term. More...
 
static void Source (Vectors &EV, const FiniteElement &fe, const std::array< int, 3 > &idx, double scale=1.0)
 Compute a scalar source term. More...
 
static void Source (Vectors &EV, const FiniteElement &fe, const Vec3 &f, const std::array< int, 3 > &idx, double scale=1.0)
 Compute a vector-source term. More...
 

Detailed Description

Common weak operators using div-compatible discretizations.

Member Function Documentation

◆ Advection()

void CompatibleOperators::Weak::Advection ( std::vector< Matrix > &  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 FiniteElement::basis(), utl::matrix< T >::cols(), FiniteElement::detJxW, utl::matrix< T >::getColumn(), and FiniteElement::grad().

◆ Convection()

void CompatibleOperators::Weak::Convection ( std::vector< Matrix > &  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 FiniteElement::basis(), utl::matrix< T >::cols(), FiniteElement::detJxW, utl::matrix< T >::getColumn(), and FiniteElement::grad().

◆ Gradient()

void CompatibleOperators::Weak::Gradient ( std::vector< Matrix > &  EM,
const FiniteElement fe,
const 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, utl::matrix< T >::getColumn(), and FiniteElement::grad().

◆ ItgConstraint()

void CompatibleOperators::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

References utl::matrix< T >::cols(), FiniteElement::grad(), and EqualOrderOperators::Weak::ItgConstraint().

◆ Laplacian()

void CompatibleOperators::Weak::Laplacian ( std::vector< Matrix > &  EM,
const FiniteElement fe,
const std::array< std::array< int, 3 >, 3 > &  idx,
double  scale = 1.0,
bool  stress = false 
)
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 utl::matrix< T >::cols(), FiniteElement::detJxW, utl::matrix< T >::getColumn(), FiniteElement::grad(), and EqualOrderOperators::Weak::Laplacian().

◆ Mass()

void CompatibleOperators::Weak::Mass ( std::vector< Matrix > &  EM,
const FiniteElement fe,
const std::array< std::array< int, 3 >, 3 > &  idx,
double  scale = 1.0 
)
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 FiniteElement::grad(), and EqualOrderOperators::Weak::Mass().

◆ Source() [1/2]

void CompatibleOperators::Weak::Source ( Vectors EV,
const FiniteElement fe,
const std::array< int, 3 > &  idx,
double  scale = 1.0 
)
static

Compute a scalar source term.

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

References FiniteElement::grad(), and EqualOrderOperators::Weak::Source().

◆ Source() [2/2]

void CompatibleOperators::Weak::Source ( Vectors EV,
const FiniteElement fe,
const Vec3 f,
const std::array< int, 3 > &  idx,
double  scale = 1.0 
)
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 FiniteElement::grad(), and EqualOrderOperators::Weak::Source().


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