19 params.addClassDescription(
"Weakly imposes Dirichlet boundary conditions for the velocity for a " 20 "hybridized discretization of the Navier-Stokes equations");
21 params.addRequiredParam<MooseFunctorName>(
"dirichlet_u",
22 "The Dirichlet value for the x-component of velocity");
23 params.addRequiredParam<MooseFunctorName>(
"dirichlet_v",
24 "The Dirichlet value for the y-component of velocity");
25 params.addParam<MooseFunctorName>(
26 "dirichlet_w", 0,
"The Dirichlet value for the z-component of velocity");
27 params.renameParam(
"variable",
"u",
"The x-component of velocity");
39 "For a 3D simulation, the Dirichlet value of the z-velocity must be supplied");
const MooseArray< Number > & _v_sol
const std::vector< dof_id_type > & _lm_u_dof_indices
const MooseArray< Number > & _u_sol
virtual void computeOffDiagJacobian(unsigned int jvar) override
DenseMatrix< Number > _u_u_jac
static InputParameters validParams()
static InputParameters validParams()
const MooseVariableFE< Real > & _v_var
unsigned int _cached_side
A cache variable to prevent multiple computations of Jacobians.
const unsigned int invalid_uint
const MooseArray< Point > & _normals
const std::vector< dof_id_type > & _u_dof_indices
const Elem * _cached_elem
std::array< const Moose::Functor< Real > *, 3 > _dirichlet_vel
Dirichlet velocity.
const MooseArray< std::vector< Real > > & _lm_phi_face
const Elem *const & _current_elem
void resize(const unsigned int n)
void addResiduals(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
const MooseVariableFE< Real > & _v_face_var
static InputParameters validParams()
const MooseArray< libMesh::Gradient > & _qu_sol
const std::vector< dof_id_type > & _qv_dof_indices
Containers for dof indices.
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
virtual void computeJacobian() override
DenseVector< Number > _grad_u_vel_re
Weakly imposes Dirichlet boundary conditions for the velocity for a hybridized discretization of the ...
DenseVector< Number > _lm_v_vel_re
const std::vector< dof_id_type > & _qu_dof_indices
const MooseArray< Point > & _q_point
void addJacobian(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
DenseMatrix< Number > _v_p_jac
void scalarDirichletResidual(const MooseArray< Gradient > &vector_sol, const MooseArray< Number > &scalar_sol, const unsigned int vel_component, const std::array< const Moose::Functor< Real > *, 3 > &dirichlet_vel, 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)
virtual unsigned int dimension() const
DenseMatrix< Number > _lm_u_lm_u_jac
const MooseVariableFE< RealVectorValue > & _grad_v_var
const std::vector< dof_id_type > & _lm_v_dof_indices
virtual void computeResidual() override
const std::vector< dof_id_type > & _v_dof_indices
void paramError(const std::string ¶m, Args... args) const
DenseMatrix< Number > _v_grad_v_jac
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)
DenseVector< Number > _p_re
const MooseVariableFE< Real > & _pressure_var
bool isParamSetByUser(const std::string &nm) const
const MooseVariableFE< Real > & _u_face_var
DenseVector< Number > _grad_v_vel_re
const QBase *const & _qrule
DenseVector< Number > _v_vel_re
const unsigned int & _current_side
const std::vector< dof_id_type > & _p_dof_indices
DenseMatrix< Number > _u_p_jac
void pressureDirichletResidual(const std::array< const Moose::Functor< Real > *, 3 > &dirichlet_vel, 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 > &pressure_re)
DenseMatrix< Number > _v_v_jac
const MooseVariableFE< Real > & _u_var
const MooseArray< Number > & _lm_u_sol
void createIdentityResidual(const MooseArray< Real > &JxW, const libMesh::QBase &qrule, const MooseArray< std::vector< Real >> &phi, const MooseArray< Number > &sol, DenseVector< Number > &re)
void resize(const unsigned int new_m, const unsigned int new_n)
const MooseArray< Number > & _lm_v_sol
const MooseArray< Gradient > & _qv_sol
local solutions at quadrature points
DenseVector< Number > _lm_u_vel_re
DenseMatrix< Number > _lm_v_lm_v_jac
registerMooseObject("NavierStokesApp", NavierStokesLHDGVelocityDirichletBC)
const MooseVariableFE< RealVectorValue > & _grad_u_var
NavierStokesLHDGVelocityDirichletBC(const InputParameters ¶meters)
void createIdentityJacobian(const MooseArray< Real > &JxW, const libMesh::QBase &qrule, const MooseArray< std::vector< Real >> &phi, DenseMatrix< Number > &ke)
void scalarDirichletJacobian(const unsigned int vel_component, 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_pressure_jac)
DenseMatrix< Number > _u_grad_u_jac
Implements all the methods for assembling a hybridized local discontinuous Galerkin (LDG-H)...
virtual void jacobianSetup() override
DenseVector< Number > _u_vel_re
const MooseArray< Real > & _JxW
void scalingFactor(const std::vector< Real > &factor)
virtual void initialSetup() override