13 #ifndef PIOLA_OPERATORS_H_
14 #define PIOLA_OPERATORS_H_
47 const std::array<std::array<int, 3>, 3>& idx,
61 const std::array<std::array<int, 3>, 3>& idx,
72 std::array<int,3>& idx,
81 const std::array<int,3>& idx);
92 const std::array<std::array<int,3>,3>& idx,
93 double scale,
bool stress);
102 const std::array<std::array<int,3>,3>& idx,
112 const Vec3& f,
const std::array<int,3>& idx,
132 const std::array<int,3>& idx,
double scale,
141 const std::array<int,3>& idx,
double scale = 1.0);
152 const std::array<int, 3>& idx,
double scale = 1.0,
153 bool stress =
false);
163 const std::array<std::array<int,3>,3>& idx,
173 const std::array<int,3>& idx,
Various equal-ordered discrete operators.
ConvectionForm
Enum for the form of the convection term.
Definition: EqualOrderOperators.h:26
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition: ImmersedBoundaries.h:29
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
std::vector< Matrix > Matrices
An array of real-valued matrices with algebraic operations.
Definition: MatVec.h:39
Class representing a finite element.
Definition: FiniteElement.h:29
Common weak residual operators using div-compatible discretizations.
Definition: PiolaOperators.h:118
static void Gradient(Vectors &EV, const FiniteElement &fe, const std::array< int, 3 > &idx, double scale=1.0)
Compute a gradient term.
Definition: PiolaOperators.C:169
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: PiolaOperators.C:149
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: PiolaOperators.C:183
Common weak operators using Piola mapped discretizations.
Definition: PiolaOperators.h:36
static void Gradient(Matrices &EM, const FiniteElement &fe, std::array< int, 3 > &idx, double scale=1.0)
Compute a gradient term.
Definition: PiolaOperators.C:79
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.
Definition: PiolaOperators.C:54
static void Mass(Matrices &EM, const FiniteElement &fe, const std::array< std::array< int, 3 >, 3 > &idx, double scale)
Compute a mass term.
Definition: PiolaOperators.C:126
static void Source(Vectors &EV, const FiniteElement &fe, const Vec3 &f, const std::array< int, 3 > &idx, double scale)
Compute a vector-source term.
Definition: PiolaOperators.C:137
static void Laplacian(Matrices &EM, const FiniteElement &fe, const std::array< std::array< int, 3 >, 3 > &idx, double scale, bool stress)
Compute a laplacian.
Definition: PiolaOperators.C:111
static void ItgConstraint(std::vector< Matrix > &EM, const FiniteElement &fe, const std::array< int, 3 > &idx)
Compute an integration constraint.
Definition: PiolaOperators.C:102
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.
Definition: PiolaOperators.C:36
Common operators using Piola mapped discretizations.
Definition: PiolaOperators.h:32
static void Copy(Matrices &EM, const FiniteElement &fe, const std::array< std::array< int, 3 >, 3 > &idx, const Matrix &A)
Add the full Piola operator to the blocks.
Definition: PiolaOperators.C:200
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