19 params.addClassDescription(
"Weakly imposes Dirichlet boundary conditions for a "
20 "hybridized discretization of a diffusion equation");
21 params.addRequiredParam<MooseFunctorName>(
"functor",
22 "The Dirichlet value for the diffusing specie");
24 params.setDocString(
"variable",
"The diffusing specie concentration");
31 _dirichlet_val(getFunctor<Real>(
"functor")),
32 _cached_side(
libMesh::invalid_uint)
registerMooseObject("MooseApp", DiffusionLHDGDirichletBC)
Implements all the methods for assembling a hybridized local discontinuous Galerkin (LDG-H),...
void scalarDirichletJacobian(const MooseArray< Real > &JxW_face, const libMesh::QBase &qrule_face, const MooseArray< Point > &normals, DenseMatrix< Number > &scalar_vector_jac, DenseMatrix< Number > &scalar_scalar_jac)
Computes the Jacobian for a Dirichlet condition for the scalar field in the scalar field equation.
const std::vector< dof_id_type > & _qu_dof_indices
void createIdentityResidual(const MooseArray< Real > &JxW, const libMesh::QBase &qrule, const MooseArray< std::vector< Real > > &phi, const MooseArray< Number > &sol, DenseVector< Number > &re)
Creates residuals corresponding to the weak form (v, \hat{u}), or stated simply this routine can be u...
const MooseVariableFE< Real > & _u_var
DenseVector< Number > _scalar_re
void createIdentityJacobian(const MooseArray< Real > &JxW, const libMesh::QBase &qrule, const MooseArray< std::vector< Real > > &phi, DenseMatrix< Number > &ke)
As above, but for the Jacobians.
const MooseArray< Number > & _u_sol
DenseVector< Number > _lm_re
const std::vector< dof_id_type > & _lm_u_dof_indices
const MooseArray< libMesh::Gradient > & _qu_sol
void vectorDirichletResidual(const Moose::Functor< Real > &dirichlet_value, const MooseArray< Real > &JxW_face, const libMesh::QBase &qrule_face, const MooseArray< Point > &normals, const Elem *const current_elem, const unsigned int current_side, const MooseArray< Point > &q_point_face, DenseVector< Number > &vector_re)
Weakly imposes a Dirichlet condition for the scalar field in the vector (gradient) equation.
const MooseArray< std::vector< Real > > & _lm_phi_face
DenseMatrix< Number > _scalar_scalar_jac
const Elem * _cached_elem
A data member used for determining when to compute the Jacobian.
DenseVector< Number > _vector_re
const MooseArray< Number > & _lm_u_sol
DenseMatrix< Number > _lm_lm_jac
const std::vector< dof_id_type > & _u_dof_indices
DenseMatrix< Number > _scalar_vector_jac
static InputParameters validParams()
void scalarDirichletResidual(const MooseArray< Gradient > &vector_sol, const MooseArray< Number > &scalar_sol, const Moose::Functor< Real > &dirichlet_value, const MooseArray< Real > &JxW_face, const libMesh::QBase &qrule_face, const MooseArray< Point > &normals, const Elem *const current_elem, const unsigned int current_side, const MooseArray< Point > &q_point_face, DenseVector< Number > &scalar_re)
Weakly imposes a Dirichlet condition for the scalar field in the scalar field equation.
const MooseVariableFE< Real > & _u_face_var
const MooseVariableFE< RealVectorValue > & _grad_u_var
Weakly imposes Dirichlet boundary conditions for a hybridized discretization of diffusion.
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job.
DiffusionLHDGDirichletBC(const InputParameters ¶meters)
virtual void computeOffDiagJacobian(unsigned int jvar) override
Computes d-ivar-residual / d-jvar...
virtual void computeResidual() override
Compute this object's contribution to the residual.
unsigned int _cached_side
A cache variable to prevent multiple computations of Jacobians.
static InputParameters validParams()
const Moose::Functor< Real > & _dirichlet_val
Functor computing the Dirichlet boundary value.
virtual void computeJacobian() override
Compute this object's contribution to the diagonal Jacobian entries.
virtual void jacobianSetup() override
Gets called just before the Jacobian is computed and before this object is asked to do its job.
const unsigned int & _current_side
current side of the current element
const QBase *const & _qrule
active quadrature rule
const MooseArray< Real > & _JxW
transformed Jacobian weights
const Elem *const & _current_elem
current element
const MooseArray< Point > & _q_point
active quadrature points
Base class for deriving any boundary condition of a integrated type.
static InputParameters validParams()
const MooseArray< Point > & _normals
normals at quadrature points
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...
const unsigned int invalid_uint