Add immutable MITC4 drilling selection and direct director springs
This commit is contained in:
@@ -54,6 +54,8 @@ struct NonlinearMitc4InternalEquilibrium {
|
||||
Matrix drilling_metric{0U, 0U};
|
||||
double drilling_energy = 0.0;
|
||||
Vector force_directional_second{0U};
|
||||
/// @brief Stores D2(f_drill)[v,v] separately; direct springs give exact zero.
|
||||
Vector drilling_force_directional_second{0U};
|
||||
Vector drilling_constraint{0U};
|
||||
Matrix drilling_constraint_gradient{0U, 0U};
|
||||
std::array<Matrix, 4> drilling_constraint_hessian{
|
||||
@@ -104,6 +106,11 @@ class NonlinearMitc4Shell {
|
||||
std::array<ShellNodeInitialFrame, 4> initial_frames,
|
||||
const ShellSection& section, const LinearElasticMaterial& material);
|
||||
|
||||
/// @brief Returns this immutable kernel's numerical drilling formulation.
|
||||
[[nodiscard]] Mitc4DrillingMode DrillingMode() const noexcept {
|
||||
return drilling_mode_;
|
||||
}
|
||||
|
||||
/// @brief Evaluates trial physical kinematics and fixed recovery rows.
|
||||
/// @param trial Global nodal translation and fixed-global rotation vectors.
|
||||
/// @return Physical recovery or a fail-closed trial diagnostic.
|
||||
@@ -134,6 +141,7 @@ class NonlinearMitc4Shell {
|
||||
|
||||
private:
|
||||
friend struct nonlinear_mitc4_internal::ConfigurationSnapshot;
|
||||
friend struct mitc4_drilling_internal::TestAccess;
|
||||
|
||||
/// @brief Retains validated fixed-reference data without analysis ownership.
|
||||
NonlinearMitc4Shell(std::array<Vector3, 4> coordinates,
|
||||
@@ -155,6 +163,7 @@ class NonlinearMitc4Shell {
|
||||
double youngs_modulus_;
|
||||
double poisson_ratio_;
|
||||
double drilling_stiffness_;
|
||||
Mitc4DrillingMode drilling_mode_;
|
||||
SourceLocation source_location_;
|
||||
std::string identity_;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user