diff --git a/Sofa/Component/Mass/src/sofa/component/mass/ElementFEMMass.cpp b/Sofa/Component/Mass/src/sofa/component/mass/ElementFEMMass.cpp index e2c0f520e30..947400539e6 100644 --- a/Sofa/Component/Mass/src/sofa/component/mass/ElementFEMMass.cpp +++ b/Sofa/Component/Mass/src/sofa/component/mass/ElementFEMMass.cpp @@ -41,27 +41,18 @@ template class SOFA_COMPONENT_MASS_API ElementFEMMassregisterObjects(sofa::core::ObjectRegistrationData("Finite-element mass (inertia and body force) defined on edges") + factory->registerObjects(sofa::core::ObjectRegistrationData("Finite-element mass (inertia and body force)") .add< ElementFEMMass >() .add< ElementFEMMass >() - .add< ElementFEMMass >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Finite-element mass (inertia and body force) defined on triangles") + .add< ElementFEMMass >() .add< ElementFEMMass >() - .add< ElementFEMMass >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Finite-element mass (inertia and body force) defined on quads") + .add< ElementFEMMass >() .add< ElementFEMMass >() - .add< ElementFEMMass >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Finite-element mass (inertia and body force) defined on tetrahedra") - .add< ElementFEMMass >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Finite-element mass (inertia and body force) defined on hexahedra") - .add< ElementFEMMass >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Finite-element mass (inertia and body force) defined on prisms") - .add< ElementFEMMass >(true)); + .add< ElementFEMMass >() + .add< ElementFEMMass >() + .add< ElementFEMMass >() + .add< ElementFEMMass >() + ); } } diff --git a/Sofa/Component/Mass/src/sofa/component/mass/ElementFEMMass.h b/Sofa/Component/Mass/src/sofa/component/mass/ElementFEMMass.h index f390189c375..71ae68345d6 100644 --- a/Sofa/Component/Mass/src/sofa/component/mass/ElementFEMMass.h +++ b/Sofa/Component/Mass/src/sofa/component/mass/ElementFEMMass.h @@ -80,24 +80,6 @@ class ElementFEMMass : public: - /** - * @brief Gets the class name according to the provided template parameters. - * - * For example, `ElementFEMMass` will return "EdgeFEMMass". - * - * @return A string representing the class name. - */ - static const std::string GetCustomClassName() - { - return std::string(sofa::geometry::elementTypeToString(ElementType::Element_type)) + "FEMMass"; - } - - /** - * @brief Gets the template name based on the data types. - * @return A string representing the template name (e.g., "Vec3d"). - */ - static const std::string GetCustomTemplateName() { return DataTypes::Name(); } - /** * @brief Link to the nodal mass density component. * diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementCorotationalFEMForceField.cpp b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementCorotationalFEMForceField.cpp index fd38c9e67bb..52a14a6bf00 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementCorotationalFEMForceField.cpp +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementCorotationalFEMForceField.cpp @@ -31,27 +31,18 @@ namespace sofa::component::solidmechanics::fem::elastic void registerElementCorotationalFEMForceField(sofa::core::ObjectFactory* factory) { - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear beams using the corotational approach") + factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law using the corotational approach") // .add< ElementCorotationalFEMForceField >() .add< ElementCorotationalFEMForceField >() - .add< ElementCorotationalFEMForceField >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear triangles using the corotational approach") + .add< ElementCorotationalFEMForceField >() .add< ElementCorotationalFEMForceField >() - .add< ElementCorotationalFEMForceField >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear quads using the corotational approach") + .add< ElementCorotationalFEMForceField >() .add< ElementCorotationalFEMForceField >() - .add< ElementCorotationalFEMForceField >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear tetrahedra using the corotational approach") - .add< ElementCorotationalFEMForceField >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear hexahedra using the corotational approach") - .add< ElementCorotationalFEMForceField >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear prisms using the corotational approach") - .add< ElementCorotationalFEMForceField >(true)); + .add< ElementCorotationalFEMForceField >() + .add< ElementCorotationalFEMForceField >() + .add< ElementCorotationalFEMForceField >() + .add< ElementCorotationalFEMForceField >() + ); } // template class SOFA_COMPONENT_SOLIDMECHANICS_FEM_ELASTIC_API ElementCorotationalFEMForceField; diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementCorotationalFEMForceField.h b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementCorotationalFEMForceField.h index 484a5c89697..f4e1fba588a 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementCorotationalFEMForceField.h +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementCorotationalFEMForceField.h @@ -121,21 +121,6 @@ class ElementCorotationalFEMForceField : SOFA_TEMPLATE2(BaseElementLinearFEMForceField, DataTypes, ElementType), SOFA_TEMPLATE2(FEMForceField, DataTypes, ElementType)); - /** - * The purpose of this function is to register the name of this class according to the provided - * pattern. - * - * Example: ElementCorotationalFEMForceField will produce - * the class name "EdgeCorotationalFEMForceField". - */ - static const std::string GetCustomClassName() - { - return std::string(sofa::geometry::elementTypeToString(ElementType::Element_type)) + - "CorotationalFEMForceField"; - } - - static const std::string GetCustomTemplateName() { return DataTypes::Name(); } - private: using trait = sofa::component::solidmechanics::fem::elastic::trait; using ElementForce = typename trait::ElementForce; diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementLinearSmallStrainFEMForceField.cpp b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementLinearSmallStrainFEMForceField.cpp index cb17452bdb2..2d6cc35ecec 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementLinearSmallStrainFEMForceField.cpp +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementLinearSmallStrainFEMForceField.cpp @@ -31,27 +31,18 @@ namespace sofa::component::solidmechanics::fem::elastic void registerElementLinearSmallStrainFEMForceField(sofa::core::ObjectFactory* factory) { - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear beams assuming small strain") + factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law assuming small strain") .add< ElementLinearSmallStrainFEMForceField >() .add< ElementLinearSmallStrainFEMForceField >() - .add< ElementLinearSmallStrainFEMForceField >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear triangles assuming small strain") + .add< ElementLinearSmallStrainFEMForceField >() .add< ElementLinearSmallStrainFEMForceField >() - .add< ElementLinearSmallStrainFEMForceField >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear quads assuming small strain") + .add< ElementLinearSmallStrainFEMForceField >() .add< ElementLinearSmallStrainFEMForceField >() - .add< ElementLinearSmallStrainFEMForceField >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear tetrahedra assuming small strain") - .add< ElementLinearSmallStrainFEMForceField >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear hexahedra assuming small strain") - .add< ElementLinearSmallStrainFEMForceField >(true)); - - factory->registerObjects(sofa::core::ObjectRegistrationData("Hooke's law on linear prisms assuming small strain") - .add< ElementLinearSmallStrainFEMForceField >(true)); + .add< ElementLinearSmallStrainFEMForceField >() + .add< ElementLinearSmallStrainFEMForceField >() + .add< ElementLinearSmallStrainFEMForceField >() + .add< ElementLinearSmallStrainFEMForceField >() + ); } template class SOFA_COMPONENT_SOLIDMECHANICS_FEM_ELASTIC_API ElementLinearSmallStrainFEMForceField; diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementLinearSmallStrainFEMForceField.h b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementLinearSmallStrainFEMForceField.h index db8436d83fc..cc737513032 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementLinearSmallStrainFEMForceField.h +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/ElementLinearSmallStrainFEMForceField.h @@ -45,23 +45,8 @@ class ElementLinearSmallStrainFEMForceField : SOFA_TEMPLATE2(BaseElementLinearFEMForceField, DataTypes, ElementType), SOFA_TEMPLATE2(FEMForceField, DataTypes, ElementType)); - /** - * The purpose of this function is to register the name of this class according to the provided - * pattern. - * - * Example: ElementLinearSmallStrainFEMForceField will produce - * the class name "EdgeLinearSmallStrainFEMForceField". - */ - static const std::string GetCustomClassName() - { - return std::string(sofa::geometry::elementTypeToString(ElementType::Element_type)) + - "LinearSmallStrainFEMForceField"; - } - - static const std::string GetCustomTemplateName() { return DataTypes::Name(); } - private: - using trait = sofa::component::solidmechanics::fem::elastic::trait; + using trait = typename FEMForceField::trait; using ElementStiffness = typename trait::ElementStiffness; using ElementDisplacement = typename trait::ElementDisplacement; using StrainDisplacement = typename trait::StrainDisplacement; diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.h b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.h index c5eb9f4a3ee..241c647cb84 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.h +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.h @@ -48,7 +48,7 @@ class FEMForceField : sofa::core::behavior::TopologyAccessor, sofa::simulation::TaskSchedulerUser); -private: +protected: using trait = sofa::component::solidmechanics::fem::elastic::trait; using ElementForce = typename trait::ElementForce; @@ -106,6 +106,8 @@ class FEMForceField : sofa::type::vector& df, const sofa::VecDeriv_t& dx); + virtual void beforeElementForceDeriv(const sofa::core::MechanicalParams* mparams) {} + virtual void computeElementsForcesDeriv( const sofa::simulation::Range& range, const sofa::core::MechanicalParams* mparams, diff --git a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.inl b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.inl index bdae03ead2b..46a22a772a4 100644 --- a/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.inl +++ b/Sofa/Component/SolidMechanics/FEM/Elastic/src/sofa/component/solidmechanics/fem/elastic/FEMForceField.inl @@ -163,6 +163,7 @@ void FEMForceField::computeElementsForcesDeriv( const sofa::VecDeriv_t& dx) { SCOPED_TIMER("ElementForcesDeriv"); + beforeElementForceDeriv(mparams); const auto& elements = trait::FiniteElement::getElementSequence(*this->l_topology); diff --git a/examples/Component/Topology/Mapping/Hexa2PrismTopologicalMapping.scn b/examples/Component/Topology/Mapping/Hexa2PrismTopologicalMapping.scn index c2867de54c2..f94d1b1185b 100644 --- a/examples/Component/Topology/Mapping/Hexa2PrismTopologicalMapping.scn +++ b/examples/Component/Topology/Mapping/Hexa2PrismTopologicalMapping.scn @@ -37,7 +37,7 @@ rotationMethod="polar" computeForceStrategy="sequenced" computeForceDerivStrategy="sequenced"/> - + diff --git a/examples/Validation/cantilever_beam/hexahedron/corotational/parallel/assembled/HexahedronCorotationalFEMForceField.scn b/examples/Validation/cantilever_beam/hexahedron/corotational/parallel/assembled/HexahedronCorotationalFEMForceField.scn index ffc08f685ae..fe245080f86 100644 --- a/examples/Validation/cantilever_beam/hexahedron/corotational/parallel/assembled/HexahedronCorotationalFEMForceField.scn +++ b/examples/Validation/cantilever_beam/hexahedron/corotational/parallel/assembled/HexahedronCorotationalFEMForceField.scn @@ -6,7 +6,8 @@ - + diff --git a/examples/Validation/cantilever_beam/hexahedron/corotational/parallel/matrixfree/HexahedronCorotationalFEMForceField.scn b/examples/Validation/cantilever_beam/hexahedron/corotational/parallel/matrixfree/HexahedronCorotationalFEMForceField.scn index c48bc2ef0b2..5132bedec93 100644 --- a/examples/Validation/cantilever_beam/hexahedron/corotational/parallel/matrixfree/HexahedronCorotationalFEMForceField.scn +++ b/examples/Validation/cantilever_beam/hexahedron/corotational/parallel/matrixfree/HexahedronCorotationalFEMForceField.scn @@ -4,7 +4,8 @@ - + diff --git a/examples/Validation/cantilever_beam/hexahedron/corotational/sequential/assembled/HexahedronCorotationalFEMForceField.scn b/examples/Validation/cantilever_beam/hexahedron/corotational/sequential/assembled/HexahedronCorotationalFEMForceField.scn index c1e3f1439de..690ef79063d 100644 --- a/examples/Validation/cantilever_beam/hexahedron/corotational/sequential/assembled/HexahedronCorotationalFEMForceField.scn +++ b/examples/Validation/cantilever_beam/hexahedron/corotational/sequential/assembled/HexahedronCorotationalFEMForceField.scn @@ -6,7 +6,8 @@ - + diff --git a/examples/Validation/cantilever_beam/hexahedron/corotational/sequential/matrixfree/HexahedronCorotationalFEMForceField.scn b/examples/Validation/cantilever_beam/hexahedron/corotational/sequential/matrixfree/HexahedronCorotationalFEMForceField.scn index ecbac27b125..6e81a7a9359 100644 --- a/examples/Validation/cantilever_beam/hexahedron/corotational/sequential/matrixfree/HexahedronCorotationalFEMForceField.scn +++ b/examples/Validation/cantilever_beam/hexahedron/corotational/sequential/matrixfree/HexahedronCorotationalFEMForceField.scn @@ -4,7 +4,8 @@ - + diff --git a/examples/Validation/cantilever_beam/hexahedron/linear/parallel/assembled/HexahedronLinearSmallStrainFEMForceField.scn b/examples/Validation/cantilever_beam/hexahedron/linear/parallel/assembled/HexahedronLinearSmallStrainFEMForceField.scn index 3a4a4a8f0c4..5895dacbf91 100644 --- a/examples/Validation/cantilever_beam/hexahedron/linear/parallel/assembled/HexahedronLinearSmallStrainFEMForceField.scn +++ b/examples/Validation/cantilever_beam/hexahedron/linear/parallel/assembled/HexahedronLinearSmallStrainFEMForceField.scn @@ -6,7 +6,8 @@ - + diff --git a/examples/Validation/cantilever_beam/hexahedron/linear/parallel/matrixfree/HexahedronLinearSmallStrainFEMForceField.scn b/examples/Validation/cantilever_beam/hexahedron/linear/parallel/matrixfree/HexahedronLinearSmallStrainFEMForceField.scn index 3af7b73e10e..b170bcc1fad 100644 --- a/examples/Validation/cantilever_beam/hexahedron/linear/parallel/matrixfree/HexahedronLinearSmallStrainFEMForceField.scn +++ b/examples/Validation/cantilever_beam/hexahedron/linear/parallel/matrixfree/HexahedronLinearSmallStrainFEMForceField.scn @@ -4,7 +4,8 @@ - + diff --git a/examples/Validation/cantilever_beam/hexahedron/linear/sequential/assembled/HexahedronLinearSmallStrainFEMForceField.scn b/examples/Validation/cantilever_beam/hexahedron/linear/sequential/assembled/HexahedronLinearSmallStrainFEMForceField.scn index a53c81fb0c3..0eab370dfc8 100644 --- a/examples/Validation/cantilever_beam/hexahedron/linear/sequential/assembled/HexahedronLinearSmallStrainFEMForceField.scn +++ b/examples/Validation/cantilever_beam/hexahedron/linear/sequential/assembled/HexahedronLinearSmallStrainFEMForceField.scn @@ -6,7 +6,8 @@ - + diff --git a/examples/Validation/cantilever_beam/hexahedron/linear/sequential/matrixfree/HexahedronLinearSmallStrainFEMForceField.scn b/examples/Validation/cantilever_beam/hexahedron/linear/sequential/matrixfree/HexahedronLinearSmallStrainFEMForceField.scn index 599d7db5dfb..18a76a8c91b 100644 --- a/examples/Validation/cantilever_beam/hexahedron/linear/sequential/matrixfree/HexahedronLinearSmallStrainFEMForceField.scn +++ b/examples/Validation/cantilever_beam/hexahedron/linear/sequential/matrixfree/HexahedronLinearSmallStrainFEMForceField.scn @@ -4,7 +4,8 @@ - + diff --git a/examples/Validation/cantilever_beam/tetrahedron/corotational/parallel/assembled/TetrahedronCorotationalFEMForceField.scn b/examples/Validation/cantilever_beam/tetrahedron/corotational/parallel/assembled/TetrahedronCorotationalFEMForceField.scn index 98a1c55cc9a..603cb2252e8 100644 --- a/examples/Validation/cantilever_beam/tetrahedron/corotational/parallel/assembled/TetrahedronCorotationalFEMForceField.scn +++ b/examples/Validation/cantilever_beam/tetrahedron/corotational/parallel/assembled/TetrahedronCorotationalFEMForceField.scn @@ -12,7 +12,8 @@ - diff --git a/examples/Validation/cantilever_beam/tetrahedron/corotational/parallel/matrixfree/TetrahedronCorotationalFEMForceField.scn b/examples/Validation/cantilever_beam/tetrahedron/corotational/parallel/matrixfree/TetrahedronCorotationalFEMForceField.scn index a5c6983f2fc..3c089fe1530 100644 --- a/examples/Validation/cantilever_beam/tetrahedron/corotational/parallel/matrixfree/TetrahedronCorotationalFEMForceField.scn +++ b/examples/Validation/cantilever_beam/tetrahedron/corotational/parallel/matrixfree/TetrahedronCorotationalFEMForceField.scn @@ -10,8 +10,9 @@ - + diff --git a/examples/Validation/cantilever_beam/tetrahedron/corotational/sequential/assembled/TetrahedronCorotationalFEMForceField.scn b/examples/Validation/cantilever_beam/tetrahedron/corotational/sequential/assembled/TetrahedronCorotationalFEMForceField.scn index 49d2891903e..3d034353b0d 100644 --- a/examples/Validation/cantilever_beam/tetrahedron/corotational/sequential/assembled/TetrahedronCorotationalFEMForceField.scn +++ b/examples/Validation/cantilever_beam/tetrahedron/corotational/sequential/assembled/TetrahedronCorotationalFEMForceField.scn @@ -12,8 +12,9 @@ - + diff --git a/examples/Validation/cantilever_beam/tetrahedron/corotational/sequential/matrixfree/TetrahedronCorotationalFEMForceField.scn b/examples/Validation/cantilever_beam/tetrahedron/corotational/sequential/matrixfree/TetrahedronCorotationalFEMForceField.scn index dffc83cd146..0198ae6e6c1 100644 --- a/examples/Validation/cantilever_beam/tetrahedron/corotational/sequential/matrixfree/TetrahedronCorotationalFEMForceField.scn +++ b/examples/Validation/cantilever_beam/tetrahedron/corotational/sequential/matrixfree/TetrahedronCorotationalFEMForceField.scn @@ -10,8 +10,9 @@ - + diff --git a/examples/Validation/cantilever_beam/tetrahedron/linear/parallel/assembled/TetrahedronLinearSmallStrainFEMForceField.scn b/examples/Validation/cantilever_beam/tetrahedron/linear/parallel/assembled/TetrahedronLinearSmallStrainFEMForceField.scn index 385d58095e4..52c91d8c6f4 100644 --- a/examples/Validation/cantilever_beam/tetrahedron/linear/parallel/assembled/TetrahedronLinearSmallStrainFEMForceField.scn +++ b/examples/Validation/cantilever_beam/tetrahedron/linear/parallel/assembled/TetrahedronLinearSmallStrainFEMForceField.scn @@ -12,8 +12,9 @@ - + diff --git a/examples/Validation/cantilever_beam/tetrahedron/linear/parallel/matrixfree/TetrahedronLinearSmallStrainFEMForceField.scn b/examples/Validation/cantilever_beam/tetrahedron/linear/parallel/matrixfree/TetrahedronLinearSmallStrainFEMForceField.scn index 92eed6a9101..e4f0da75eba 100644 --- a/examples/Validation/cantilever_beam/tetrahedron/linear/parallel/matrixfree/TetrahedronLinearSmallStrainFEMForceField.scn +++ b/examples/Validation/cantilever_beam/tetrahedron/linear/parallel/matrixfree/TetrahedronLinearSmallStrainFEMForceField.scn @@ -10,8 +10,9 @@ - + diff --git a/examples/Validation/cantilever_beam/tetrahedron/linear/sequential/assembled/TetrahedronLinearSmallStrainFEMForceField.scn b/examples/Validation/cantilever_beam/tetrahedron/linear/sequential/assembled/TetrahedronLinearSmallStrainFEMForceField.scn index 2830d933059..eaaa5d32a54 100644 --- a/examples/Validation/cantilever_beam/tetrahedron/linear/sequential/assembled/TetrahedronLinearSmallStrainFEMForceField.scn +++ b/examples/Validation/cantilever_beam/tetrahedron/linear/sequential/assembled/TetrahedronLinearSmallStrainFEMForceField.scn @@ -12,8 +12,9 @@ - + diff --git a/examples/Validation/cantilever_beam/tetrahedron/linear/sequential/matrixfree/TetrahedronLinearSmallStrainFEMForceField.scn b/examples/Validation/cantilever_beam/tetrahedron/linear/sequential/matrixfree/TetrahedronLinearSmallStrainFEMForceField.scn index 1967c27ef34..40ba7eff557 100644 --- a/examples/Validation/cantilever_beam/tetrahedron/linear/sequential/matrixfree/TetrahedronLinearSmallStrainFEMForceField.scn +++ b/examples/Validation/cantilever_beam/tetrahedron/linear/sequential/matrixfree/TetrahedronLinearSmallStrainFEMForceField.scn @@ -10,8 +10,9 @@ - +