added: add ConvectionForm argument to CompatibleOperators::Advection

currently only CONVECTIVE is implemented
This commit is contained in:
Arne Morten Kvarving 2022-02-18 10:46:04 +01:00
parent 7787ed15d9
commit a85e46a147
2 changed files with 6 additions and 3 deletions

View File

@ -18,7 +18,8 @@
void CompatibleOperators::Weak::Advection(std::vector<Matrix>& EM,
const FiniteElement& fe,
const Vec3& AC, double scale)
const Vec3& AC, double scale,
WeakOperators::ConvectionForm cnvForm)
{
size_t nsd = fe.grad(1).cols();
for (size_t n = 1; n <= nsd; ++n)

View File

@ -35,8 +35,10 @@ public:
//! \param[in] fe The finite element to evaluate for
//! \param[in] AC Advecting field
//! \param[in] scale Scaling factor for contribution
//! \param[in] cnvForm Form of advection operator
static void Advection(std::vector<Matrix>& EM, const FiniteElement& fe,
const Vec3& AC, double scale=1.0);
const Vec3& AC, double scale=1.0,
WeakOperators::ConvectionForm cnvForm = WeakOperators::CONVECTIVE);
//! \brief Compute a (nonlinear) convection term.
//! \param[out] EM The element matrix to add contribution to
@ -47,7 +49,7 @@ public:
//! \param[in] form Which form of the convective form to use
static void Convection(std::vector<Matrix>& EM, const FiniteElement& fe,
const Vec3& U, const Tensor& dUdX, double scale,
WeakOperators::ConvectionForm form=WeakOperators::CONVECTIVE);
WeakOperators::ConvectionForm form = WeakOperators::CONVECTIVE);
//! \brief Compute a gradient term.
//! \param[out] EM The element matrix to add contribution to