13#ifndef EQUAL_ORDER_OPERATORS_H
14#define EQUAL_ORDER_OPERATORS_H
23namespace WeakOperators
52 const Vec3& AC,
double scale=1.0,
65 const Vec3& U,
const Tensor& dUdX,
double scale,
76 double scale=1.0,
int basis=1,
int tbasis=1);
85 const Vec3& D,
double scale=1.0,
int basis=1);
94 double scale=1.0,
int basis=1,
int tbasis=1);
103 double scale=1.0,
bool stress=
false,
int basis=1);
111 double scale=1.0,
int basis=1);
120 double scale=1.0,
int basis=1);
129 double scale=1.0,
int basis=1);
137 double scale = 1.0,
int basis = 1);
145 double scale=1.0,
int basis=1);
154 double scale=1.0,
int cmp=1,
int basis=1);
163 const Vec3& f,
double scale=1.0,
int basis=1);
178 double scale = 1.0,
int basis=1);
202 const Tensor& dUdX,
double scale=1.0,
211 double scale=1.0,
int basis=1);
220 const Vec3& dUdX,
double scale = 1.0,
231 const Tensor& dUdX,
double scale = 1.0,
232 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:27
@ CONSERVATIVE
-u_i u_j v_i,j
Definition EqualOrderOperators.h:29
@ SKEWSYMMETRIC
(u_i u_j,i v_j - u_i u_j v_i,j)/2
Definition EqualOrderOperators.h:30
@ CONVECTIVE
u_i u_j,i v_j
Definition EqualOrderOperators.h:28
Global algebraic operations on index 1-based matrices and vectors.
Common weak residual operators using equal-ordered discretizations.
Definition EqualOrderOperators.h:167
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:336
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:268
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:280
static void Gradient(Vector &EV, const FiniteElement &fe, double scale=1.0, int basis=1)
Compute a gradient term.
Definition EqualOrderOperators.C:325
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:316
Common weak operators using equal-ordered discretizations.
Definition EqualOrderOperators.h:42
static void ItgConstraint(Matrix &EM, const FiniteElement &fe, double scale=1.0, int basis=1)
Compute an integration constraint.
Definition EqualOrderOperators.C:230
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:54
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:86
static void LaplacianCoeff(Matrix &EM, const Matrix &K, const FiniteElement &fe, double scale=1.0, int basis=1)
Compute a heterogeneous coefficient laplacian.
Definition EqualOrderOperators.C:194
static void Stress(Matrix &EM, const FiniteElement &fe, double scale=1.0, int basis=1)
Compute a stress operator.
Definition EqualOrderOperators.C:177
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:134
static void Laplacian(Matrix &EM, const FiniteElement &fe, double scale=1.0, bool stress=false, int basis=1)
Compute a laplacian.
Definition EqualOrderOperators.C:158
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:243
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:141
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:39
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