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");
57 const auto solid_velocity = [&](
const auto qp)
74 mooseAssert(phi.size() == dof_indices.size(),
"These should be the same");
93 const auto & phi = disp_var->phiFaceNeighbor();
94 const auto & dof_indices = disp_var->dofIndicesNeighbor();
95 mooseAssert(phi.size() == dof_indices.size(),
"These should be the same");
const MooseArray< ADReal > & _ad_coord
Coordinate transformation with displacement derivatives.
void addResidualsAndJacobian(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
static InputParameters validParams()
virtual bool isCoupledConstant(const std::string &var_name) const
ADPenaltyVelocityContinuity(const InputParameters ¶meters)
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
std::vector< const MooseVariable * > _displacements
Displacement variables.
std::vector< const ADVariableValue * > _solid_velocities
Solid velocity values.
std::vector< ADRealVectorValue > _qp_jumps
Jump data member to avoid constant heap allocations.
const std::vector< dof_id_type > & dofIndices() const final
Interface kernel for enforcing continuity of stress and velocity.
registerMooseObject("FsiApp", ADPenaltyVelocityContinuity)
const QBase *const & _qrule
const Real _penalty
The penalty factor.
virtual const ADVariableValue & adCoupledNeighborValue(const std::string &var_name, unsigned int comp=0) const
void paramError(const std::string ¶m, Args... args) const
std::vector< ADReal > _residuals
Residuals data member to avoid constant heap allocation.
const MooseArray< ADReal > & _ad_JxW
JxW with displacement derivatives.
unsigned int coupledComponents(const std::string &var_name) const
const ADVectorVariableValue & _velocity
Fluid velocity values.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VectorMooseVariable *const _velocity_var
Fluid velocity variable.
virtual void computeResidual() override
static InputParameters validParams()
IntRange< T > make_range(T beg, T end)
const FieldVariablePhiValue & phiFace() const override final
auto index_range(const T &sizable)
void scalingFactor(const std::vector< Real > &factor)