20 "Enforces continuity of flux and continuity of solution via penalty across an interface.");
23 "The penalty that penalizes jump between primary and neighbor secondary variables.");
25 params.
renameCoupledVar(
"neighbor_var",
"displacements",
"All the displacement variables");
32 _penalty(getParam<Real>(
"penalty")),
33 _velocity_var(getVectorVar(
"fluid_velocity", 0)),
34 _velocity(adCoupledVectorValue(
"fluid_velocity")),
35 _ad_JxW(_assembly.adJxWFace()),
36 _ad_coord(_assembly.adCoordTransformation())
39 paramError(
"fluid_velocity",
"The fluid velocity must be an actual variable");
66 for (
const auto qp : make_range(
_qrule->n_points()))
73 mooseAssert(phi.size() == dof_indices.size(),
"These should be the same");
79 for (
const auto i : index_range(phi))
80 for (
const auto qp : make_range(
_qrule->n_points()))
92 const auto & phi = disp_var->phiFaceNeighbor();
93 const auto & dof_indices = disp_var->dofIndicesNeighbor();
94 mooseAssert(phi.size() == dof_indices.size(),
"These should be the same");
100 for (
const auto qp : make_range(
_qrule->n_points()))
101 for (
const auto i : index_range(phi))
registerMooseObject("FsiApp", ADPenaltyVelocityContinuity)
Interface kernel for enforcing continuity of stress and velocity.
const MooseArray< ADReal > & _ad_coord
Coordinate transformation with displacement derivatives.
std::vector< ADReal > _residuals
Residuals data member to avoid constant heap allocation.
virtual ADRealVectorValue solidVelocity(const unsigned int qp) const
std::vector< const ADVariableValue * > _solid_velocities
Solid velocity values.
const ADVectorVariableValue & _velocity
Fluid velocity values.
static InputParameters validParams()
ADPenaltyVelocityContinuity(const InputParameters ¶meters)
const MooseArray< ADReal > & _ad_JxW
JxW with displacement derivatives.
std::vector< ADRealVectorValue > _qp_jumps
Jump data member to avoid constant heap allocations.
virtual void computeResidual() override
const VectorMooseVariable *const _velocity_var
Fluid velocity variable.
std::vector< const MooseVariable * > _displacements
Displacement variables.
const Real _penalty
The penalty factor.
virtual bool isCoupledConstant(const std::string &var_name) const
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
unsigned int coupledComponents(const std::string &var_name) const
static InputParameters validParams()
const QBase *const & _qrule
void paramError(const std::string ¶m, Args... args) const
void scalingFactor(const std::vector< Real > &factor)
const std::vector< dof_id_type > & dofIndices() const final
const FieldVariablePhiValue & phiFace() const override final
virtual const ADVariableValue & adCoupledNeighborValue(const std::string &var_name, unsigned int comp=0) const
void addResidualsAndJacobian(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)