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"))
registerMooseObject("MooseApp", DiffusionLHDGKernel)
Implements all the methods for assembling a hybridized local discontinuous Galerkin (LDG-H),...
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 ...
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> + <\tau * (u - \hat{u}) * n * n,...
const std::vector< dof_id_type > & _qu_dof_indices
DenseMatrix< Number > _lm_scalar_jac
DenseMatrix< Number > _vector_scalar_jac
const MooseVariableFE< Real > & _u_var
DenseVector< Number > _scalar_re
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: -<\hat{u}, n*v> where \hat{u} is the trace of the...
const MooseArray< Number > & _u_sol
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, \mu> + <\tau * (u - \hat{u}) * n * n,...
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 ...
DenseVector< Number > _lm_re
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: -<\hat{u}, n*v> where \hat{u} is the trace of the...
const std::vector< dof_id_type > & _lm_u_dof_indices
const MooseArray< libMesh::Gradient > & _qu_sol
DenseMatrix< Number > _scalar_scalar_jac
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, \mu> + <\tau * (u - \hat{u}) * n * n,...
const Elem * _cached_elem
A data member used for determining when to compute the Jacobian.
DenseVector< Number > _vector_re
DenseMatrix< Number > _vector_vector_jac
const MooseArray< Number > & _lm_u_sol
DenseMatrix< Number > _lm_lm_jac
DenseMatrix< Number > _scalar_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...
const std::vector< dof_id_type > & _u_dof_indices
DenseMatrix< Number > _scalar_vector_jac
static InputParameters validParams()
DenseMatrix< Number > _lm_vector_jac
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...
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> + <\tau * (u - \hat{u}) * n * n,...
const MooseVariableFE< Real > & _u_face_var
DenseMatrix< Number > _vector_lm_jac
const MooseVariableFE< RealVectorValue > & _grad_u_var
Implements the diffusion equation for a hybridized discretization.
virtual void computeOffDiagJacobian(unsigned int jvar) override
Forwards to computeJacobian() the first time this is called for a given element.
virtual void computeResidual() override
Compute this Kernel's contribution to the residual.
virtual void computeJacobianOnSide() override
DiffusionLHDGKernel(const InputParameters ¶ms)
virtual void computeJacobian() override
Compute this object's entire Jacobian, both on- and off-diagonal.
static InputParameters validParams()
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job.
virtual void computeResidualOnSide() override
const Moose::Functor< Real > & _source
optional source
virtual void jacobianSetup() override
Gets called just before the Jacobian is computed and before this object is asked to do its job.
virtual std::set< std::string > additionalROVariables() override
Base kernel for hybridized finite element formulations.
const QBase *const & _qrule_face
The face quadrature rule.
const MooseArray< Point > & _normals
face normals
const MooseArray< Real > & _JxW_face
transformed Jacobian weights on the current element face
static InputParameters validParams()
const MooseArray< Point > & _q_point
The physical location of the element's quadrature Points, indexed by _qp.
const MooseArray< Real > & _JxW
The current quadrature point weight value.
const Elem *const & _current_elem
Current element.
const QBase *const & _qrule
active quadrature rule
const std::string & name() const
Get the name of the class.
void scalingFactor(const std::vector< Real > &factor)
Set the scaling factor for this variable.
Assembly & _assembly
Reference to this Kernel's assembly object.
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.
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.
void resize(const unsigned int new_m, const unsigned int new_n)
void resize(const unsigned int n)
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real