https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MassFluxPenaltyIPHDGAssemblyHelper.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://www.mooseframework.org
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
13#include "ADFunctorInterface.h"
14
15template <typename>
17
18/*
19 * Imposes a singular perturbation on the component momentum equations penalizing discontinuities in
20 * mass flux. Similar to \p MassFluxPenalty except it does not couple interior degrees of freedom on
21 * neighboring elements, which makes this class useful in tandem with hybridized discretizations
22 * because it supports static condensation
23 */
26{
27public:
29
30 MassFluxPenaltyIPHDGAssemblyHelper(const MooseObject * const moose_obj,
32 const TransientInterface * const ti,
33 const MooseMesh & mesh,
34 SystemBase & sys,
35 const Assembly & assembly,
36 const THREAD_ID tid,
37 const std::set<SubdomainID> & block_ids,
38 const std::set<BoundaryID> & boundary_ids);
39
40 virtual void scalarVolume() override {}
41
42 virtual void scalarFace() override;
43
44 virtual void lmFace() override;
45
46 virtual void scalarDirichlet(const Moose::Functor<Real> &) override
47 {
48 mooseError("A Dirichlet method doesn't make sense for this assembly helper");
49 }
50
55 const ADVariableValue * const _vel_z;
56 const unsigned short _comp;
57 const Real _gamma;
60 Real _hmax;
61
62private:
63 ADReal computeQpResidualOnSide(const unsigned int qp);
64};
DualNumber< Real, DNDerivativeType, true > ADReal
void mooseError(Args &&... args)
unsigned int THREAD_ID
virtual void scalarDirichlet(const Moose::Functor< Real > &) override
Real _hmax
Facet characteristic length for correct norm computations.
const Moose::Functor< ADRealVectorValue > & _face_velocity
MeshBase & mesh
VariableValueTempl< true > ADVariableValue