29 params.renameParam(
"variable",
"u",
"The diffusing specie concentration");
30 params.addParam<MooseFunctorName>(
"source", 0,
"Source for the diffusing species");
31 params.addClassDescription(
"Adds the element and interior face weak forms for a hybridized local " 32 "discontinuous Galerkin discretization of a diffusion term.");
39 _source(getFunctor<
Real>(
"source")),
40 _qrule_face(_assembly.qRuleFace()),
41 _q_point_face(_assembly.qPointsFace()),
42 _JxW_face(_assembly.JxWFace()),
43 _normals(_assembly.normals())
152 std::set<std::string>
const std::vector< dof_id_type > & _lm_u_dof_indices
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job...
const MooseArray< Number > & _u_sol
A kernel for hybridized finite element formulations.
static InputParameters validParams()
void vectorVolumeJacobian(const MooseArray< Real > &JxW, const libMesh::QBase &qrule, DenseMatrix< Number > &vector_vector_jac, DenseMatrix< Number > &vector_scalar_jac)
Computes a local Jacobian matrix for the weak form: (q, v) + (u, div(v)) where q is the vector field ...
virtual void computeResidual() override
Compute this Kernel's contribution to the residual.
const std::vector< dof_id_type > & _u_dof_indices
void vectorFaceResidual(const MooseArray< Number > &lm_sol, const MooseArray< Real > &JxW_face, const libMesh::QBase &qrule_face, const MooseArray< Point > &normals, DenseVector< Number > &vector_re)
Computes a local residual vector for the weak form: -<{u}, n*v> where {u} is the trace of the scalar ...
const MooseArray< Real > & _JxW
The current quadrature point weight value.
const Elem * _cached_elem
A data member used for determining when to compute the Jacobian.
const MooseArray< Point > & _normals
face normals
virtual void computeJacobian() override
Compute this object's entire Jacobian, both on- and off-diagonal.
DenseMatrix< Number > _vector_lm_jac
void resize(const unsigned int n)
void addResiduals(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
Add the provided incoming residuals corresponding to the provided dof indices.
virtual void computeResidualOnSide() override
DenseMatrix< Number > _lm_vector_jac
const std::string & name() const override
Get the variable name.
const MooseArray< libMesh::Gradient > & _qu_sol
const Moose::Functor< Real > & _source
optional source
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Implements the diffusion equation for a hybridized discretization.
virtual void jacobianSetup() override
Gets called just before the Jacobian is computed and before this object is asked to do its job...
DenseMatrix< Number > _vector_vector_jac
const std::vector< dof_id_type > & _qu_dof_indices
DenseVector< Number > _vector_re
virtual void computeOffDiagJacobian(unsigned int jvar) override
Forwards to computeJacobian() the first time this is called for a given element.
void addJacobian(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
Add the provided residual derivatives into the Jacobian for the provided dof indices.
DenseMatrix< Number > _lm_scalar_jac
virtual std::set< std::string > additionalROVariables() override
void vectorVolumeResidual(const MooseArray< Gradient > &vector_sol, const MooseArray< Number > &scalar_sol, const MooseArray< Real > &JxW, const libMesh::QBase &qrule, DenseVector< Number > &vector_re)
Computes a local residual vector for the weak form: (q, v) + (u, div(v)) where q is the vector field ...
DenseMatrix< Number > _scalar_vector_jac
static InputParameters validParams()
Implements all the methods for assembling a hybridized local discontinuous Galerkin (LDG-H)...
const QBase *const & _qrule
active quadrature rule
void scalarFaceJacobian(const MooseArray< Real > &JxW_face, const libMesh::QBase &qrule_face, const MooseArray< Point > &normals, DenseMatrix< Number > &scalar_vector_jac, DenseMatrix< Number > &scalar_scalar_jac, DenseMatrix< Number > &scalar_lm_jac)
Computes a local Jacobian matrix for the weak form: -<Dq*n, w> + < * (u - {u}) * n * n...
DenseMatrix< Number > _scalar_lm_jac
virtual void computeJacobianOnSide() override
void lmFaceJacobian(const MooseArray< Real > &JxW_face, const libMesh::QBase &qrule_face, const MooseArray< Point > &normals, DenseMatrix< Number > &lm_vec_jac, DenseMatrix< Number > &lm_scalar_jac, DenseMatrix< Number > &lm_lm_jac)
Computes a local Jacobian matrix for the weak form: -<Dq*n, > + < * (u - {u}) * n * n...
void lmFaceResidual(const MooseArray< Gradient > &vector_sol, const MooseArray< Number > &scalar_sol, const MooseArray< Number > &lm_sol, const MooseArray< Real > &JxW_face, const libMesh::QBase &qrule_face, const MooseArray< Point > &normals, DenseVector< Number > &lm_re)
Computes a local residual vector for the weak form: -<Dq*n, > + < * (u - {u}) * n * n...
registerMooseObject("MooseApp", DiffusionLHDGKernel)
void scalarVolumeResidual(const MooseArray< Gradient > &vector_field, const Moose::Functor< Real > &source, const MooseArray< Real > &JxW, const libMesh::QBase &qrule, const Elem *const current_elem, const MooseArray< Point > &q_point, DenseVector< Number > &scalar_re)
Computes a local residual vector for the weak form: (Dq, grad(w)) - (f, w) where D is the diffusivity...
Assembly & _assembly
Reference to this Kernel's assembly object.
void vectorFaceJacobian(const MooseArray< Real > &JxW_face, const libMesh::QBase &qrule_face, const MooseArray< Point > &normals, DenseMatrix< Number > &vector_lm_jac)
Computes a local Jacobian matrix for the weak form: -<{u}, n*v> where {u} is the trace of the scalar ...
const MooseVariableFE< Real > & _u_face_var
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MooseVariableFE< Real > & _u_var
const MooseArray< Number > & _lm_u_sol
void resize(const unsigned int new_m, const unsigned int new_n)
const MooseArray< Real > & _JxW_face
transformed Jacobian weights on the current element face
DenseMatrix< Number > _lm_lm_jac
void scalarVolumeJacobian(const MooseArray< Real > &JxW, const libMesh::QBase &qrule, DenseMatrix< Number > &scalar_vector_jac)
Computes a local Jacobian matrix for the weak form: (Dq, grad(w)) - (f, w) where D is the diffusivity...
DenseVector< Number > _lm_re
DenseVector< Number > _scalar_re
const Elem *const & _current_elem
Current element.
const MooseVariableFE< RealVectorValue > & _grad_u_var
static InputParameters validParams()
DiffusionLHDGKernel(const InputParameters ¶ms)
void scalarFaceResidual(const MooseArray< Gradient > &vector_sol, const MooseArray< Number > &scalar_sol, const MooseArray< Number > &lm_sol, const MooseArray< Real > &JxW_face, const libMesh::QBase &qrule_face, const MooseArray< Point > &normals, DenseVector< Number > &scalar_re)
Computes a local residual vector for the weak form: -<Dq*n, w> + < * (u - {u}) * n * n...
DenseMatrix< Number > _scalar_scalar_jac
const QBase *const & _qrule_face
The face quadrature rule.
const MooseArray< Point > & _q_point
The physical location of the element's quadrature Points, indexed by _qp.
void scalingFactor(const std::vector< Real > &factor)
Set the scaling factor for this variable.
DenseMatrix< Number > _vector_scalar_jac