13 #ifndef EQUAL_ORDER_OPERATORS_H
14 #define EQUAL_ORDER_OPERATORS_H
22 namespace WeakOperators
51 const Vec3& AC,
double scale=1.0,
64 const Vec3& U,
const Tensor& dUdX,
double scale,
75 double scale=1.0,
int basis=1,
int tbasis=1);
84 const Vec3& D,
double scale=1.0,
int basis=1);
93 double scale=1.0,
int basis=1,
int tbasis=1);
102 double scale=1.0,
bool stress=
false,
int basis=1);
110 double scale=1.0,
int basis=1);
119 double scale=1.0,
int basis=1);
127 double scale = 1.0,
int basis = 1);
135 double scale=1.0,
int basis=1);
144 double scale=1.0,
int cmp=1,
int basis=1);
153 const Vec3& f,
double scale=1.0,
int basis=1);
168 double scale = 1.0,
int basis=1);
192 const Tensor& dUdX,
double scale=1.0,
201 double scale=1.0,
int basis=1);
210 const Vec3& dUdX,
double scale = 1.0,
221 const Tensor& dUdX,
double scale = 1.0,
222 bool stress =
false,
int basis = 1);
static SystemMatrix * K
Pointer to coefficient matrix A.
Definition: EigSolver.C:91
ConvectionForm
Enum for the form of the convection term.
Definition: EqualOrderOperators.h:26
@ CONSERVATIVE
-u_i u_j v_i,j
Definition: EqualOrderOperators.h:28
@ SKEWSYMMETRIC
(u_i u_j,i v_j - u_i u_j v_i,j)/2
Definition: EqualOrderOperators.h:29
@ CONVECTIVE
u_i u_j,i v_j
Definition: EqualOrderOperators.h:27
Finite element quantities at an integration point.
Global algebraic operations on index 1-based matrices and vectors.
Common weak residual operators using equal-ordered discretizations.
Definition: EqualOrderOperators.h:157
static void Laplacian(Vector &EV, const FiniteElement &fe, const Vec3 &dUdX, double scale=1.0, int basis=1)
Compute a laplacian term in a residual vector.
Definition: EqualOrderOperators.C:327
static void Advection(Vector &EV, const FiniteElement &fe, const Vec3 &AC, const Tensor &g, double scale=1.0, int basis=1)
Compute an advection term.
Definition: EqualOrderOperators.C:260
static void Convection(Vector &EV, const FiniteElement &fe, const Vec3 &U, const Tensor &dUdX, const Vec3 &UC, double scale, WeakOperators::ConvectionForm form=WeakOperators::CONVECTIVE, int basis=1)
Compute a convection term in a residual vector.
Definition: EqualOrderOperators.C:271
static void Gradient(Vector &EV, const FiniteElement &fe, double scale=1.0, int basis=1)
Compute a gradient term.
Definition: EqualOrderOperators.C:315
static void Divergence(Vector &EV, const FiniteElement &fe, const Tensor &dUdX, double scale=1.0, size_t basis=1)
Compute a divergence term in a residual vector.
Definition: EqualOrderOperators.C:306
Common weak operators using equal-ordered discretizations.
Definition: EqualOrderOperators.h:41
static void ItgConstraint(Matrix &EM, const FiniteElement &fe, double scale=1.0, int basis=1)
Compute an integration constraint.
Definition: EqualOrderOperators.C:225
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.
Definition: EqualOrderOperators.C:72
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.
Definition: EqualOrderOperators.C:104
static void LaplacianCoeff(Matrix &EM, const Matrix &K, const FiniteElement &fe, double scale=1.0, int basis=1)
Compute a heteregenous coefficient laplacian.
Definition: EqualOrderOperators.C:204
static void Stress(Matrix &EM, const FiniteElement &fe, double scale=1.0, int basis=1)
Compute a stress operator.
Definition: EqualOrderOperators.C:188
static void Divergence(Matrix &EM, const FiniteElement &fe, double scale=1.0, int basis=1, int tbasis=1)
Compute a divergence term.
Definition: EqualOrderOperators.C:152
static void Laplacian(Matrix &EM, const FiniteElement &fe, double scale=1.0, bool stress=false, int basis=1)
Compute a laplacian.
Definition: EqualOrderOperators.C:176
static void Source(Vector &EV, const FiniteElement &fe, double scale=1.0, int cmp=1, int basis=1)
Compute a source term.
Definition: EqualOrderOperators.C:236
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.
Definition: EqualOrderOperators.C:159
static void Mass(Matrix &EM, const FiniteElement &fe, double scale=1.0, int basis=1)
Compute a mass term.
Definition: EqualOrderOperators.C:214
Common discrete operators using equal-ordered discretizations.
Definition: EqualOrderOperators.h:38
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
A vector class with some added algebraic operations.
Definition: matrix.h:64