20 params.renameParam(
"variable",
"u",
"The diffusing specie concentration");
21 params.addClassDescription(
"Implements a flux boundary condition for use with a hybridized " 22 "discretization of the diffusion equation");
23 params.addParam<MooseFunctorName>(
24 "normal_gradient", 0,
"The prescribed value of the gradient dotted with the normal");
32 _normal_gradient(getFunctor<
Real>(
"normal_gradient")),
const std::vector< dof_id_type > & _lm_u_dof_indices
const MooseArray< Number > & _u_sol
const unsigned int invalid_uint
const MooseArray< Point > & _normals
normals at quadrature points
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 Elem * _cached_elem
A data member used for determining when to compute the Jacobian.
const MooseArray< std::vector< Real > > & _lm_phi_face
const Elem *const & _current_elem
current element
DenseMatrix< Number > _vector_lm_jac
void resize(const unsigned int n)
Moose::StateArg determineState() const
Create a functor state argument that corresponds to the implicit state of this object.
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.
DenseMatrix< Number > _lm_vector_jac
static InputParameters validParams()
const MooseArray< libMesh::Gradient > & _qu_sol
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job...
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
DenseMatrix< Number > _vector_vector_jac
const std::vector< dof_id_type > & _qu_dof_indices
DenseVector< Number > _vector_re
const MooseArray< Point > & _q_point
active quadrature points
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.
Implements a fixed normal gradient boundary condition for use with a hybridized discretization of the...
virtual void computeResidual() override
Compute this object's contribution to the residual.
DenseMatrix< Number > _lm_scalar_jac
DenseMatrix< Number > _scalar_vector_jac
static InputParameters validParams()
Implements all the methods for assembling a hybridized local discontinuous Galerkin (LDG-H)...
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...
virtual void computeOffDiagJacobian(unsigned int jvar) override
Computes d-ivar-residual / d-jvar...
DenseMatrix< Number > _scalar_lm_jac
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...
Base class for deriving any boundary condition of a integrated type.
const MaterialProperty< Real > & _diff
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 Moose::Functor< Real > & _normal_gradient
Prescribed normal gradient along the boundary.
const MooseVariableFE< Real > & _u_face_var
const QBase *const & _qrule
active quadrature rule
const unsigned int & _current_side
current side of the current element
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MooseVariableFE< Real > & _u_var
const MooseArray< Number > & _lm_u_sol
DiffusionLHDGPrescribedGradientBC(const InputParameters ¶meters)
void resize(const unsigned int new_m, const unsigned int new_n)
IntRange< T > make_range(T beg, T end)
DenseMatrix< Number > _lm_lm_jac
DenseVector< Number > _lm_re
DenseVector< Number > _scalar_re
unsigned int _cached_side
A cache variable to prevent multiple computations of Jacobians.
virtual void computeJacobian() override
Compute this object's contribution to the diagonal Jacobian entries.
const MooseVariableFE< RealVectorValue > & _grad_u_var
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...
registerMooseObject("MooseApp", DiffusionLHDGPrescribedGradientBC)
DenseMatrix< Number > _scalar_scalar_jac
auto index_range(const T &sizable)
static InputParameters validParams()
Argument for requesting functor evaluation at quadrature point locations on an element side...
const MooseArray< Real > & _JxW
transformed Jacobian weights
void scalingFactor(const std::vector< Real > &factor)
Set the scaling factor for this variable.
DenseMatrix< Number > _vector_scalar_jac
virtual void jacobianSetup() override
Gets called just before the Jacobian is computed and before this object is asked to do its job...