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

Common weak operators using equal-ordered discretizations. More...

#include <EqualOrderOperators.h>

Static Public Member Functions

static void Advection (Matrix &EM, const FiniteElement &fe, const Vec3 &AC, double scale=1.0, WeakOperators::ConvectionForm form=WeakOperators::CONVECTIVE, int basis=1)
 Compute an advection term. More...
 
static void Convection (Matrix &EM, const FiniteElement &fe, const Vec3 &U, const Tensor &dUdX, double scale, WeakOperators::ConvectionForm form=WeakOperators::CONVECTIVE, int basis=1)
 Compute a (nonlinear) convection term. More...
 
static void Divergence (Matrix &EM, const FiniteElement &fe, double scale=1.0, int basis=1, int tbasis=1)
 Compute a divergence term. More...
 
static void Divergence (Vector &EV, const FiniteElement &fe, const Vec3 &D, double scale=1.0, int basis=1)
 Compute a divergence term. More...
 
static void Gradient (Matrix &EM, const FiniteElement &fe, double scale=1.0, int basis=1, int tbasis=1)
 Compute a gradient term for a (potentially mixed) vector/scalar field. More...
 
static void Laplacian (Matrix &EM, const FiniteElement &fe, double scale=1.0, bool stress=false, int basis=1)
 Compute a laplacian. More...
 
static void Stress (Matrix &EM, const FiniteElement &fe, double scale=1.0, int basis=1)
 Compute a stress operator. More...
 
static void LaplacianCoeff (Matrix &EM, const Matrix &K, const FiniteElement &fe, double scale=1.0, int basis=1)
 Compute a heteregenous coefficient laplacian. More...
 
static void ItgConstraint (Matrix &EM, const FiniteElement &fe, double scale=1.0, int basis=1)
 Compute an integration constraint. More...
 
static void Mass (Matrix &EM, const FiniteElement &fe, double scale=1.0, int basis=1)
 Compute a mass term. More...
 
static void Source (Vector &EV, const FiniteElement &fe, double scale=1.0, int cmp=1, int basis=1)
 Compute a source term. More...
 
static void Source (Vector &EV, const FiniteElement &fe, const Vec3 &f, double scale=1.0, int basis=1)
 Compute a vector-source term. More...
 

Detailed Description

Common weak operators using equal-ordered discretizations.

Member Function Documentation

◆ Advection()

void EqualOrderOperators::Weak::Advection ( Matrix EM,
const FiniteElement fe,
const Vec3 AC,
double  scale = 1.0,
WeakOperators::ConvectionForm  form = WeakOperators::CONVECTIVE,
int  basis = 1 
)
static

Compute an advection term.

Parameters
[out]EMThe element matrix to add contribution to
[in]feThe finite element to evaluate for
[in]ACAdvecting field
[in]scaleScaling factor for contribution
[in]formFormulation to use for advection
[in]basisBasis to use

References FiniteElement::basis(), FiniteElement::detJxW, utl::matrix< T >::getColumn(), FiniteElement::grad(), utl::matrix< T >::outer_product(), utl::matrix< T >::rows(), and utl::vector< T >::size().

◆ Convection()

void EqualOrderOperators::Weak::Convection ( Matrix EM,
const FiniteElement fe,
const Vec3 U,
const Tensor dUdX,
double  scale,
WeakOperators::ConvectionForm  form = WeakOperators::CONVECTIVE,
int  basis = 1 
)
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]dUdXGradient of advected field
[in]scaleScaling factor for contribution
[in]formWhich form of the convective term to use
[in]basisBasis to use

References utl::matrix< T >::add(), FiniteElement::basis(), FiniteElement::detJxW, utl::matrix< T >::getColumn(), FiniteElement::grad(), utl::matrix< T >::outer_product(), utl::matrix< T >::rows(), and utl::vector< T >::size().

◆ Divergence() [1/2]

void EqualOrderOperators::Weak::Divergence ( Matrix EM,
const FiniteElement fe,
double  scale = 1.0,
int  basis = 1,
int  tbasis = 1 
)
static

Compute a divergence term.

Parameters
[out]EMThe element matrix to add contribution to
[in]feThe finite element to evaluate for
[in]scaleScaling factor for contribution
[in]basisBasis for field
[in]tbasisTest function basis

◆ Divergence() [2/2]

void EqualOrderOperators::Weak::Divergence ( Vector EV,
const FiniteElement fe,
const Vec3 D,
double  scale = 1.0,
int  basis = 1 
)
static

Compute a divergence term.

Parameters
[out]EVThe element vector to add contribution to
[in]feThe finite element to evaluate for
[in]DDivergence of field
[in]scaleScaling factor for contribution
[in]basisTest function basis

References utl::matrix< T >::cols(), FiniteElement::detJxW, FiniteElement::grad(), utl::matrix< T >::multiply(), and Vec3::ptr().

◆ Gradient()

void EqualOrderOperators::Weak::Gradient ( Matrix EM,
const FiniteElement fe,
double  scale = 1.0,
int  basis = 1,
int  tbasis = 1 
)
static

Compute a gradient term for a (potentially mixed) vector/scalar field.

Parameters
[out]EMThe element matrix to add contribution to
[in]feThe finite element to evaluate for
[in]scaleScaling factor for contribution
[in]basisBasis for field
[in]tbasisTest function basis

◆ ItgConstraint()

void EqualOrderOperators::Weak::ItgConstraint ( Matrix EM,
const FiniteElement fe,
double  scale = 1.0,
int  basis = 1 
)
static

Compute an integration constraint.

Parameters
[out]EMThe element matrix to add contribution to
[in]feThe finite element to evaluate for
[in]scaleScaling factor for contribution
[in]basisBasis to use

References FiniteElement::basis(), FiniteElement::detJxW, utl::matrix< T >::rows(), and utl::vector< T >::size().

Referenced by CompatibleOperators::Weak::ItgConstraint().

◆ Laplacian()

void EqualOrderOperators::Weak::Laplacian ( Matrix EM,
const FiniteElement fe,
double  scale = 1.0,
bool  stress = false,
int  basis = 1 
)
static

Compute a laplacian.

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

References FiniteElement::basis(), FiniteElement::detJxW, FiniteElement::grad(), utl::matrix< T >::multiply(), utl::matrix< T >::rows(), and utl::vector< T >::size().

Referenced by CompatibleOperators::Weak::Laplacian().

◆ LaplacianCoeff()

void EqualOrderOperators::Weak::LaplacianCoeff ( Matrix EM,
const Matrix K,
const FiniteElement fe,
double  scale = 1.0,
int  basis = 1 
)
static

Compute a heteregenous coefficient laplacian.

Parameters
[out]EMThe element matrix to add contribution to
[out]KThe coefficient matrix
[in]feThe finite element to evaluate for
[in]scaleScaling factor for contribution
[in]basisBasis to use

References FiniteElement::detJxW, FiniteElement::grad(), K, and utl::matrix< T >::multiply().

◆ Mass()

void EqualOrderOperators::Weak::Mass ( Matrix EM,
const FiniteElement fe,
double  scale = 1.0,
int  basis = 1 
)
static

Compute a mass term.

Parameters
[out]EMThe element matrix to add contribution to
[in]feThe finite element to evaluate for
[in]scaleScaling factor for contribution
[in]basisBasis to use

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

Referenced by CompatibleOperators::Weak::Mass().

◆ Source() [1/2]

void EqualOrderOperators::Weak::Source ( Vector EV,
const FiniteElement fe,
const Vec3 f,
double  scale = 1.0,
int  basis = 1 
)
static

Compute a vector-source term.

Parameters
[out]EVThe element vector to add contribution to
[in]feThe finite element to evaluate for
[in]fVector with contributions
[in]scaleScaling factor for contribution
[in]basisBasis to use

References utl::vector< T >::add(), FiniteElement::basis(), FiniteElement::detJxW, and utl::vector< T >::size().

◆ Source() [2/2]

void EqualOrderOperators::Weak::Source ( Vector EV,
const FiniteElement fe,
double  scale = 1.0,
int  cmp = 1,
int  basis = 1 
)
static

Compute a source term.

Parameters
[out]EVThe element vector to add contribution to
[in]feThe finite element to evaluate for
[in]scaleScaling factor for contribution
[in]basisBasis to use
[in]cmpComponent to add (0 for all)

References utl::vector< T >::add(), FiniteElement::basis(), FiniteElement::detJxW, and utl::vector< T >::size().

Referenced by CompatibleOperators::Weak::Source().

◆ Stress()

void EqualOrderOperators::Weak::Stress ( Matrix EM,
const FiniteElement fe,
double  scale = 1.0,
int  basis = 1 
)
static

Compute a stress operator.

Parameters
[out]EMThe element matrix to add contribution to
[in]feThe finite element to evaluate for
[in]scaleScaling factor for contribution
[in]basisBasis to use

References FiniteElement::basis(), FiniteElement::detJxW, utl::matrix< T >::getColumn(), FiniteElement::grad(), utl::matrix< T >::outer_product(), utl::matrix< T >::rows(), and utl::vector< T >::size().


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