Template Class MetricFlowXVesselWallConstraint¶
Defined in File metric_flow_x_vessel_wall_constraint.h
Class Documentation¶
-
template<typename SolidField, typename WallObservable>
class MetricFlowXVesselWallConstraint¶ MetricFlowX vessel-wall interaction.
With
Bthe scalar-multiplier/vector-displacement pairing andP(A)the nonlinear Area-to-wall pairing, the current residual rows areF_solid + B lambda = 0, B^T displacement - P(A) = 0, F_flow(A, U, …) + F_DeltaP(lambda) = 0.
The multiplier
lambdais the pressure differencelambda = p_external - p_internal,tube.
Consequently positive lambda produces an inward wall traction through
+B lambda, while the MetricFlowX external-pressure convention receivesp_external_pressure = -lambda. This is the action/reaction sign implied by the outward wall normal and the residual conventioninternal force - applied force.Public Types
-
using MatrixType = ImmersXLA::MPI::SparseMatrix¶
-
using VectorType = ImmersXLA::MPI::Vector¶
-
using ExternalPressureProvider = typename WallObservable::ExternalPressureProvider¶
Public Functions
-
inline MetricFlowXVesselWallConstraint(const SolidField &solid, const WallObservable &wall)¶
-
inline auto multiplier_field() const¶
-
inline ExternalPressureProvider make_external_pressure_provider(const VectorType &multiplier) const¶
-
inline const dealii::IndexSet &multiplier_locally_owned_dofs() const¶
-
inline const dealii::IndexSet &multiplier_locally_relevant_dofs() const¶
-
inline void set_multiplier(const VectorType &new_multiplier)¶
Accept the scalar pressure-difference state at an accepted step.
-
inline const VectorType &multiplier() const¶
-
inline void output_results(const std::string &output_directory, const std::string &output_name = "pressure_jump", const unsigned int cycle = 0, const double time = std::numeric_limits<double>::quiet_NaN()) const¶
Write the accepted scalar multiplier on the MetricFlowX centerline.
-
inline dealii::PackagedOperation<VectorType> flow_pressure_residual(const EvaluationContext<VectorType> &context, const FieldId flow_state, const FieldId multiplier) const¶
-
inline dealii::LinearOperator<VectorType, VectorType> flow_pressure_jacobian(const EvaluationContext<VectorType> &context, const FieldId flow_state, const FieldId multiplier) const¶
Public Static Attributes
-
static constexpr unsigned int spacedim = SolidField::spacedimension()¶
-
static constexpr bool flow_pressure_feedback_is_implemented = true¶
-
using MatrixType = ImmersXLA::MPI::SparseMatrix¶