13 #ifndef COMPATIBLE_OPERATORS_H_
14 #define COMPATIBLE_OPERATORS_H_
44 const std::array<std::array<int,3>,3>& idx,
58 const std::array<std::array<int,3>,3>& idx,
67 static void Gradient(std::vector<Matrix>& EM,
69 const std::array<int,3>& idx,
78 const std::array<int,3>& idx);
88 const std::array<std::array<int,3>,3>& idx,
89 double scale = 1.0,
bool stress =
false);
96 static void Mass(std::vector<Matrix>& EM,
98 const std::array<std::array<int,3>,3>& idx,
107 const std::array<int,3>& idx,
double scale = 1.0);
116 const Vec3& f,
const std::array<int,3>& idx,
136 const std::array<int,3>& idx,
146 const std::array<int,3>& idx,
double scale = 1.0);
157 const std::array<int,3>& idx,
159 bool stress =
false);
Various equal-ordered discrete operators.
ConvectionForm
Enum for the form of the convection term.
Definition: EqualOrderOperators.h:26
Global algebraic operations on index 1-based matrices and vectors.
std::vector< Vector > Vectors
An array of real-valued vectors with algebraic operations.
Definition: MatVec.h:37
Common weak residual operators using div-compatible discretizations.
Definition: CompatibleOperators.h:122
static void Gradient(Vectors &EV, const FiniteElement &fe, const std::array< int, 3 > &idx, double scale=1.0)
Compute a gradient term.
Definition: CompatibleOperators.C:190
static void Laplacian(Vectors &EV, const FiniteElement &fe, const Tensor &dUdX, const std::array< int, 3 > &idx, double scale=1.0, bool stress=false)
Compute a laplacian term in a residual vector.
Definition: CompatibleOperators.C:199
static void Convection(Vectors &EV, const FiniteElement &fe, const Vec3 &U, const Tensor &dUdX, const Vec3 &UC, const std::array< int, 3 > &idx, double scale, WeakOperators::ConvectionForm form=WeakOperators::CONVECTIVE)
Compute a convection term in a residual vector.
Definition: CompatibleOperators.C:152
Common weak operators using div-compatible discretizations.
Definition: CompatibleOperators.h:33
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.
Definition: CompatibleOperators.C:122
static void Source(Vectors &EV, const FiniteElement &fe, const std::array< int, 3 > &idx, double scale=1.0)
Compute a scalar source term.
Definition: CompatibleOperators.C:142
static void ItgConstraint(std::vector< Matrix > &EM, const FiniteElement &fe, const std::array< int, 3 > &idx)
Compute an integration constraint.
Definition: CompatibleOperators.C:92
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.
Definition: CompatibleOperators.C:102
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.
Definition: CompatibleOperators.C:44
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.
Definition: CompatibleOperators.C:19
static void Gradient(std::vector< Matrix > &EM, const FiniteElement &fe, const std::array< int, 3 > &idx, double scale=1.0)
Compute a gradient term.
Definition: CompatibleOperators.C:81
Common operators using div-compatible discretizations.
Definition: CompatibleOperators.h:30
Class representing a finite element.
Definition: FiniteElement.h:29
Simple class for representing a non-symmetric second-order tensor.
Definition: Tensor.h:28
Simple class for representing a point in 3D space.
Definition: Vec3.h:27