diff --git a/bindings/Modules/tests/SofaConstraintSolver/matrix_access.py b/bindings/Modules/tests/SofaConstraintSolver/matrix_access.py index 037796fe3..cd0692e03 100644 --- a/bindings/Modules/tests/SofaConstraintSolver/matrix_access.py +++ b/bindings/Modules/tests/SofaConstraintSolver/matrix_access.py @@ -17,14 +17,14 @@ def simulate_pendulum(self): "Sofa.Component.Mapping.NonLinear", "Sofa.Component.Mapping.MappedMatrix", "Sofa.Component.Mass", - "Sofa.Component.ODESolver.Backward", + "Sofa.Component.IntegrationSchemes.Backward", "Sofa.Component.Topology.Container.Dynamic"]) root.addObject("FreeMotionAnimationLoop", solveVelocityConstraintFirst=True) root.addObject("BlockGaussSeidelConstraintSolver", name="constraint_solver", tolerance=1e-9, maxIterations=1000) root.addObject("StringMeshCreator", name="loader", resolution="20") - root.addObject("EulerImplicitSolver") + root.addObject("EulerImplicitIntegrationScheme") root.addObject("EigenSimplicialLLT") root.addObject("GenericConstraintCorrection") diff --git a/bindings/Modules/tests/SofaLinearSolver/matrix_access.py b/bindings/Modules/tests/SofaLinearSolver/matrix_access.py index 8738b4ed5..d2b90884e 100644 --- a/bindings/Modules/tests/SofaLinearSolver/matrix_access.py +++ b/bindings/Modules/tests/SofaLinearSolver/matrix_access.py @@ -9,14 +9,14 @@ def simulate_beam(self, linear_solver_template): loop = root.addObject('DefaultAnimationLoop') - root.addObject('RequiredPlugin', pluginName='Sofa.Component.ODESolver.Backward') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.IntegrationSchemes.Backward') root.addObject('RequiredPlugin', pluginName='Sofa.Component.LinearSolver.Direct') root.addObject('RequiredPlugin', pluginName='Sofa.Component.Engine.Select') root.addObject('RequiredPlugin', pluginName='Sofa.Component.Constraint.Projective') root.addObject('RequiredPlugin', pluginName='Sofa.Component.SolidMechanics.FEM.Elastic') root.addObject('RequiredPlugin', pluginName='Sofa.Component.Mass') - root.addObject('EulerImplicitSolver', rayleighStiffness="0.1", rayleighMass="0.1") + root.addObject('EulerImplicitIntegrationScheme', rayleighStiffness="0.1", rayleighMass="0.1") linear_solver = root.addObject('SparseLDLSolver', name='linear_solver', template=linear_solver_template) root.addObject('MechanicalObject', name="DoFs") diff --git a/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_BaseComponent.cpp b/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_BaseComponent.cpp index 3e0c6d82b..f37750ad4 100644 --- a/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_BaseComponent.cpp +++ b/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_BaseComponent.cpp @@ -34,23 +34,6 @@ #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include #include #include diff --git a/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_Node.cpp b/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_Node.cpp index 85d0de2bf..291280b7e 100644 --- a/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_Node.cpp +++ b/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_Node.cpp @@ -629,9 +629,9 @@ py::object getMechanicalState(Node *self) } -py::object hasODESolver(Node *self) +py::object hasIntergationScheme(Node *self) { - const bool hasODE = self->solver.size() > 0; + const bool hasODE = self->integrationScheme.size() > 0; return py::cast(hasODE); } @@ -719,7 +719,7 @@ void moduleAddNode(py::module &m) { p.def("getAsACreateObjectParameter", &getLinkPath, sofapython3::doc::sofa::core::Node::getAsACreateObjectParameter); p.def("detachFromGraph", &Node::detachFromGraph, sofapython3::doc::sofa::core::Node::detachFromGraph); p.def("getMass", &getMass, sofapython3::doc::sofa::core::Node::getMass); - p.def("hasODESolver", &hasODESolver, sofapython3::doc::sofa::core::Node::hasODESolver); + p.def("hasIntergationScheme", &hasIntergationScheme, sofapython3::doc::sofa::core::Node::hasIntergationScheme); p.def("getForceField", &getForceField, sofapython3::doc::sofa::core::Node::getForceField); p.def("getMechanicalState", &getMechanicalState, sofapython3::doc::sofa::core::Node::getMechanicalState); p.def("getMechanicalMapping", &getMechanicalMapping, sofapython3::doc::sofa::core::Node::getMechanicalMapping); diff --git a/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_Node_doc.h b/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_Node_doc.h index 56ca7411a..1ea103246 100644 --- a/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_Node_doc.h +++ b/bindings/Sofa/src/SofaPython3/Sofa/Core/Binding_Node_doc.h @@ -378,9 +378,9 @@ static auto getMechanicalState = Get the mechanical state of the node. )"; -static auto hasODESolver = +static auto hasIntergationScheme = R"( - Return true if the node includes an ODE Solver + Return true if the node includes an integration scheme )"; static auto getMechanicalMapping = diff --git a/bindings/Sofa/tests/Core/ForceField.py b/bindings/Sofa/tests/Core/ForceField.py index ba48b357c..a3dd3231c 100644 --- a/bindings/Sofa/tests/Core/ForceField.py +++ b/bindings/Sofa/tests/Core/ForceField.py @@ -12,10 +12,10 @@ def createIntegrationScheme(node, use_implicit_scheme): if use_implicit_scheme is True: - node.addObject('EulerImplicitSolver', name='odeImplicitSolver', + node.addObject('EulerImplicitIntegrationScheme', name='odeImplicitSolver', rayleighStiffness='0.1', rayleighMass='0.1') else: - node.addObject('EulerExplicitSolver', name='odeExplicitSolver') + node.addObject('EulerExplicitIntegrationScheme', name='odeExplicitSolver') def createSolver(node, use_iterative_solver): @@ -44,7 +44,7 @@ def rssffScene(use_implicit_scheme=True, use_iterative_solver=True): node.addObject('DefaultAnimationLoop') node.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") node.addObject("RequiredPlugin", pluginName="Sofa.Component.LinearSolver") - node.addObject("RequiredPlugin", pluginName="Sofa.Component.ODESolver") + node.addObject("RequiredPlugin", pluginName="Sofa.Component.IntegrationScheme") node.addObject("RequiredPlugin", pluginName="Sofa.Component.Mass") node.gravity = [0, -10, 0] @@ -112,12 +112,12 @@ def simulate_beam(linear_solver_template): root.addObject('RequiredPlugin', pluginName='Sofa.Component.Engine.Select') root.addObject('RequiredPlugin', pluginName='Sofa.Component.LinearSolver.Direct') root.addObject('RequiredPlugin', pluginName='Sofa.Component.Mass') - root.addObject('RequiredPlugin', pluginName='Sofa.Component.ODESolver.Backward') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.IntegrationSchemes.Backward') root.addObject('RequiredPlugin', pluginName='Sofa.Component.SolidMechanics.FEM.Elastic') root.addObject('RequiredPlugin', pluginName='Sofa.Component.StateContainer') root.addObject('RequiredPlugin', pluginName='Sofa.Component.Topology.Container.Grid') - root.addObject('EulerImplicitSolver', rayleighStiffness="0.1", rayleighMass="0.1") + root.addObject('EulerImplicitIntegrationScheme', rayleighStiffness="0.1", rayleighMass="0.1") root.addObject('SparseLDLSolver', template=linear_solver_template) root.addObject('MechanicalObject', name="DoFs") diff --git a/bindings/Sofa/tests/Core/Mass.py b/bindings/Sofa/tests/Core/Mass.py index 4255c1a5b..1c04845af 100644 --- a/bindings/Sofa/tests/Core/Mass.py +++ b/bindings/Sofa/tests/Core/Mass.py @@ -16,7 +16,7 @@ def simulate_beam(linear_solver_template): root.addObject('DefaultAnimationLoop') root.addObject('RequiredPlugin', pluginName='Sofa.Component.StateContainer') - root.addObject('RequiredPlugin', pluginName='Sofa.Component.ODESolver.Backward') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.IntegrationSchemes.Backward') root.addObject('RequiredPlugin', pluginName='Sofa.Component.LinearSolver.Direct') root.addObject('RequiredPlugin', pluginName='Sofa.Component.Engine.Select') root.addObject('RequiredPlugin', pluginName='Sofa.Component.Constraint.Projective') @@ -24,7 +24,7 @@ def simulate_beam(linear_solver_template): root.addObject('RequiredPlugin', pluginName='Sofa.Component.Mass') root.addObject('RequiredPlugin', pluginName='Sofa.Component.Topology.Container.Grid') - root.addObject('EulerImplicitSolver', rayleighStiffness="0.1", rayleighMass="0.1") + root.addObject('EulerImplicitIntegrationScheme', rayleighStiffness="0.1", rayleighMass="0.1") root.addObject('SparseLDLSolver', template=linear_solver_template) root.addObject('MechanicalObject', name="DoFs") diff --git a/docs/sphinx/source/content/FirstSteps.rst b/docs/sphinx/source/content/FirstSteps.rst index a0b9ad014..a2fdb9103 100644 --- a/docs/sphinx/source/content/FirstSteps.rst +++ b/docs/sphinx/source/content/FirstSteps.rst @@ -242,14 +242,14 @@ We add properties to the sphere. First, we add a mass, then an object called 'Un .. code-block:: python - SofaRuntime.importPlugin("Sofa.Component.ODESolver.Backward") + SofaRuntime.importPlugin("Sofa.Component.IntegrationSchemes.Backward") SofaRuntime.importPlugin("Sofa.Component.LinearSolver.Iterative") SofaRuntime.importPlugin("Sofa.Component.Mass") SofaRuntime.importPlugin("Sofa.Component.Constraint.Lagrangian.Correction") # Creating the falling sphere object sphere = rootNode.addChild("sphere") - sphere.addObject('EulerImplicitSolver', name='odesolver') + sphere.addObject('EulerImplicitIntegrationScheme', name='odesolver') sphere.addObject('CGLinearSolver', name='Solver', iterations=25, tolerance=1e-05, threshold=1e-05) sphere.addObject('MechanicalObject', name="mstate", template="Rigid3", translation2=[0., 0., 0.], rotation2=[0., 0., 0.], showObjectScale=50) sphere.addObject('UniformMass', name="mass", vertexMass=[totalMass, volume, inertiaMatrix[:]]) @@ -425,7 +425,7 @@ Here is the entire code of the scene : confignode.addObject('RequiredPlugin', name="Sofa.Component.LinearSolver.Iterative", printLog=False) confignode.addObject('RequiredPlugin', name="Sofa.Component.Mapping.NonLinear", printLog=False) confignode.addObject('RequiredPlugin', name="Sofa.Component.Mass", printLog=False) - confignode.addObject('RequiredPlugin', name="Sofa.Component.ODESolver.Backward", printLog=False) + confignode.addObject('RequiredPlugin', name="Sofa.Component.IntegrationSchemes.Backward", printLog=False) confignode.addObject('RequiredPlugin', name="Sofa.Component.StateContainer", printLog=False) confignode.addObject('RequiredPlugin', name="Sofa.Component.Topology.Container.Constant", printLog=False) confignode.addObject('RequiredPlugin', name="Sofa.Component.Visual", printLog=False) @@ -450,7 +450,7 @@ Here is the entire code of the scene : sphere = rootNode.addChild("sphere") - sphere.addObject('EulerImplicitSolver', name='odesolver') + sphere.addObject('EulerImplicitIntegrationScheme', name='odesolver') sphere.addObject('CGLinearSolver', name='Solver', iterations=25, tolerance=1e-05, threshold=1e-05) sphere.addObject('MechanicalObject', name="mstate", template="Rigid3", translation2=[0., 0., 0.], rotation2=[0., 0., 0.], showObjectScale=50) sphere.addObject('UniformMass', name="mass", vertexMass=[totalMass, volume, inertiaMatrix[:]]) diff --git a/docs/sphinx/source/content/UsingThePlugin.rst b/docs/sphinx/source/content/UsingThePlugin.rst index d076d7dce..9f18405e8 100644 --- a/docs/sphinx/source/content/UsingThePlugin.rst +++ b/docs/sphinx/source/content/UsingThePlugin.rst @@ -301,7 +301,7 @@ We add properties to the sphere. First, we add a mass, then an object called 'Un # Creating the falling sphere object sphere = rootNode.addChild("sphere") - sphere.addObject('EulerImplicitSolver', name='odesolver') + sphere.addObject('EulerImplicitIntegrationScheme', name='odesolver') sphere.addObject('CGLinearSolver', name='Solver', iterations=25, tolerance=1e-05, threshold=1e-05) sphere.addObject('MechanicalObject', name="mstate", template="Rigid3", translation2=[0., 0., 0.], rotation2=[0., 0., 0.], showObjectScale=50) sphere.addObject('UniformMass', name="mass", vertexMass=[totalMass, volume, inertiaMatrix[:]]) @@ -462,7 +462,7 @@ Here is the entire code of the scene : confignode.addObject('RequiredPlugin', name="Sofa.Component.LinearSolver.Iterative", printLog=False) confignode.addObject('RequiredPlugin', name="Sofa.Component.Mapping.NonLinear", printLog=False) confignode.addObject('RequiredPlugin', name="Sofa.Component.Mass", printLog=False) - confignode.addObject('RequiredPlugin', name="Sofa.Component.ODESolver.Backward", printLog=False) + confignode.addObject('RequiredPlugin', name="Sofa.Component.IntegrationSchemes.Backward", printLog=False) confignode.addObject('RequiredPlugin', name="Sofa.Component.StateContainer", printLog=False) confignode.addObject('RequiredPlugin', name="Sofa.Component.Topology.Container.Constant", printLog=False) confignode.addObject('RequiredPlugin', name="Sofa.Component.Visual", printLog=False) @@ -486,7 +486,7 @@ Here is the entire code of the scene : sphere = rootNode.addChild("sphere") - sphere.addObject('EulerImplicitSolver', name='odesolver') + sphere.addObject('EulerImplicitIntegrationScheme', name='odesolver') sphere.addObject('CGLinearSolver', name='Solver', iterations=25, tolerance=1e-05, threshold=1e-05) sphere.addObject('MechanicalObject', name="mstate", template="Rigid3", translation2=[0., 0., 0.], rotation2=[0., 0., 0.], showObjectScale=50) sphere.addObject('UniformMass', name="mass", vertexMass=[totalMass, volume, inertiaMatrix[:]]) diff --git a/examples/CCDIntersection.py b/examples/CCDIntersection.py index 2a09e96d4..2c7fe8d91 100644 --- a/examples/CCDIntersection.py +++ b/examples/CCDIntersection.py @@ -25,7 +25,7 @@ def createScene(root_node): "Sofa.Component.Collision.Geometry", "Sofa.Component.Collision.Response.Contact", "Sofa.Component.Constraint.Lagrangian.Correction", "Sofa.Component.Constraint.Lagrangian.Solver", "Sofa.Component.IO.Mesh", "Sofa.Component.LinearSolver.Direct", "Sofa.Component.Mapping.Linear", - "Sofa.Component.Mass", "Sofa.Component.ODESolver.Backward", "Sofa.Component.SolidMechanics.FEM.Elastic", + "Sofa.Component.Mass", "Sofa.Component.IntegrationSchemes.Backward", "Sofa.Component.SolidMechanics.FEM.Elastic", "Sofa.Component.StateContainer", "Sofa.Component.Topology.Container.Dynamic", "Sofa.Component.Topology.Container.Grid", "Sofa.Component.Topology.Mapping", "Sofa.Component.Visual", "Sofa.GL.Component.Rendering3D", "Sofa.Component.Engine.Select", "Sofa.GUI.Component"]) @@ -45,7 +45,7 @@ def createScene(root_node): #Liver mecha Liver = root_node.addChild('Liver') - Liver.addObject('EulerImplicitSolver') + Liver.addObject('EulerImplicitIntegrationScheme') Liver.addObject('SparseLDLSolver', name="ldl", template="CompressedRowSparseMatrixMat3x3", parallelInverseProduct=True) Liver.addObject('MeshGmshLoader', name="meshLoader", filename="mesh/liver.msh", scale3d=[0.2, 0.2, 0.2], rotation=[0, 180, -45], translation=[15.2, -0.15, 0.14]) Liver.addObject('TetrahedronSetTopologyContainer', name="Container", src='@meshLoader') @@ -89,7 +89,7 @@ def createScene(root_node): #Plate mecha PlateMecha = root_node.addChild('PlateMecha') - PlateMecha.addObject('EulerImplicitSolver') + PlateMecha.addObject('EulerImplicitIntegrationScheme') PlateMecha.addObject('SparseLDLSolver', name="ldl", template="CompressedRowSparseMatrixMat3x3", parallelInverseProduct=True) PlateMecha.addObject('TetrahedronSetTopologyContainer', name="Container", position="@../BeamDomainFromGridTopology/HexaTop.position", tetrahedra="@../BeamDomainFromGridTopology/TetraTopology/Container.tetrahedra") PlateMecha.addObject('TetrahedronSetTopologyModifier', name="Modifier") diff --git a/examples/MessageHandler.py b/examples/MessageHandler.py index 43d061422..10eb59957 100644 --- a/examples/MessageHandler.py +++ b/examples/MessageHandler.py @@ -54,7 +54,7 @@ def createScene(root): 'Sofa.Component.Engine.Select', 'Sofa.Component.LinearSolver.Direct', 'Sofa.Component.Mass', - 'Sofa.Component.ODESolver.Backward', + 'Sofa.Component.IntegrationSchemes.Backward', 'Sofa.Component.SolidMechanics.FEM.Elastic', 'Sofa.Component.StateContainer', 'Sofa.Component.Topology.Container.Grid', @@ -66,7 +66,7 @@ def createScene(root): root.addObject('DefaultAnimationLoop') root.addObject('DefaultVisualManagerLoop') - root.addObject('EulerImplicitSolver', rayleighStiffness=0.1, rayleighMass=0.1, printLog=False) + root.addObject('EulerImplicitIntegrationScheme', rayleighStiffness=0.1, rayleighMass=0.1, printLog=False) root.addObject('SparseLDLSolver', template="CompressedRowSparseMatrixd") root.addObject('MechanicalObject', name="DoFs") diff --git a/examples/RPYC/ExampleLocalCreateSceneMethod.py b/examples/RPYC/ExampleLocalCreateSceneMethod.py index 782c3ff06..baf12e5bc 100644 --- a/examples/RPYC/ExampleLocalCreateSceneMethod.py +++ b/examples/RPYC/ExampleLocalCreateSceneMethod.py @@ -22,7 +22,7 @@ def createScene(root): root.addObject("RequiredPlugin", pluginName='Sofa.Component.LinearSolver.Iterative') root.addObject("RequiredPlugin", pluginName='Sofa.Component.Mapping.Linear') root.addObject("RequiredPlugin", pluginName='Sofa.Component.Mass') - root.addObject("RequiredPlugin", pluginName='Sofa.Component.ODESolver.Backward') + root.addObject("RequiredPlugin", pluginName='Sofa.Component.IntegrationSchemes.Backward') root.addObject("RequiredPlugin", pluginName='Sofa.Component.SolidMechanics.FEM.Elastic') root.addObject("RequiredPlugin", pluginName='Sofa.Component.StateContainer') root.addObject("RequiredPlugin", pluginName='Sofa.Component.Topology.Container.Dynamic') @@ -42,7 +42,7 @@ def createScene(root): root.addObject('MeshOBJLoader', name="LiverSurface", filename="mesh/liver-smooth.obj") liver = root.addChild('Liver') - liver.addObject('EulerImplicitSolver', name="cg_odesolver", rayleighStiffness="0.1", rayleighMass="0.1") + liver.addObject('EulerImplicitIntegrationScheme', name="cg_odesolver", rayleighStiffness="0.1", rayleighMass="0.1") liver.addObject('CGLinearSolver', name="linear_solver", iterations="25", tolerance="1e-09", threshold="1e-09") liver.addObject('MeshGmshLoader', name="meshLoader", filename="mesh/liver.msh") liver.addObject('TetrahedronSetTopologyContainer', name="topo", src="@meshLoader") diff --git a/examples/RPYC/ExampleManipulatingTheNodeLocally.py b/examples/RPYC/ExampleManipulatingTheNodeLocally.py index af7e50412..e3a7c4ede 100644 --- a/examples/RPYC/ExampleManipulatingTheNodeLocally.py +++ b/examples/RPYC/ExampleManipulatingTheNodeLocally.py @@ -27,7 +27,7 @@ root.addObject("RequiredPlugin", pluginName='Sofa.Component.LinearSolver.Iterative') root.addObject("RequiredPlugin", pluginName='Sofa.Component.Mapping.Linear') root.addObject("RequiredPlugin", pluginName='Sofa.Component.Mass') - root.addObject("RequiredPlugin", pluginName='Sofa.Component.ODESolver.Backward') + root.addObject("RequiredPlugin", pluginName='Sofa.Component.IntegrationSchemes.Backward') root.addObject("RequiredPlugin", pluginName='Sofa.Component.SolidMechanics.FEM.Elastic') root.addObject("RequiredPlugin", pluginName='Sofa.Component.StateContainer') root.addObject("RequiredPlugin", pluginName='Sofa.Component.Topology.Container.Dynamic') @@ -47,7 +47,7 @@ root.addObject('MeshOBJLoader', name="LiverSurface", filename="mesh/liver-smooth.obj") liver = root.addChild('Liver') - liver.addObject('EulerImplicitSolver', name="cg_odesolver", rayleighStiffness="0.1", rayleighMass="0.1") + liver.addObject('EulerImplicitIntegrationScheme', name="cg_odesolver", rayleighStiffness="0.1", rayleighMass="0.1") liver.addObject('CGLinearSolver', name="linear_solver", iterations="25", tolerance="1e-09", threshold="1e-09") liver.addObject('MeshGmshLoader', name="meshLoader", filename="mesh/liver.msh") liver.addObject('TetrahedronSetTopologyContainer', name="topo", src="@meshLoader") diff --git a/examples/ReadTheDocs_Example.py b/examples/ReadTheDocs_Example.py index 5c14e3b31..58b465577 100644 --- a/examples/ReadTheDocs_Example.py +++ b/examples/ReadTheDocs_Example.py @@ -26,7 +26,7 @@ def createScene(rootNode): 'Sofa.Component.LinearSolver.Iterative', 'Sofa.Component.Mapping.NonLinear', 'Sofa.Component.Mass', - 'Sofa.Component.ODESolver.Backward', + 'Sofa.Component.IntegrationSchemes.Backward', 'Sofa.Component.StateContainer', 'Sofa.Component.Topology.Container.Constant', 'Sofa.Component.Visual', @@ -92,7 +92,7 @@ def createScene(rootNode): sphere.addObject('UniformMass', name="mass", vertexMass=[totalMass, volume, inertiaMatrix[:]]) sphere.addObject('UncoupledConstraintCorrection') - sphere.addObject('EulerImplicitSolver', name='odesolver') + sphere.addObject('EulerImplicitIntegrationScheme', name='odesolver') sphere.addObject('CGLinearSolver', name='Solver', iterations=25, tolerance=1e-5, threshold=1e-5) collision = sphere.addChild('collision') diff --git a/examples/access_compliance_matrix.py b/examples/access_compliance_matrix.py index 8c80d6efa..3530744fa 100644 --- a/examples/access_compliance_matrix.py +++ b/examples/access_compliance_matrix.py @@ -16,7 +16,7 @@ def createScene(root): "Sofa.Component.LinearSolver.Direct", "Sofa.Component.Mapping.MappedMatrix", "Sofa.Component.Mass", - "Sofa.Component.ODESolver.Backward", + "Sofa.Component.IntegrationSchemes.Backward", "Sofa.Component.Topology.Container.Dynamic", "Sofa.Component.Mapping.NonLinear", "Sofa.Component.StateContainer" @@ -26,7 +26,7 @@ def createScene(root): constraint_solver = root.addObject("BlockGaussSeidelConstraintSolver", tolerance=1e-9, maxIterations=1000) root.addObject("StringMeshCreator", name="loader", resolution="20") - root.addObject("EulerImplicitSolver") + root.addObject("EulerImplicitIntegrationScheme") root.addObject("EigenSimplicialLLT", template='CompressedRowSparseMatrixMat3x3d') root.addObject("GenericConstraintCorrection") diff --git a/examples/access_constraint_matrix.py b/examples/access_constraint_matrix.py index 50adf7099..eec1234a1 100644 --- a/examples/access_constraint_matrix.py +++ b/examples/access_constraint_matrix.py @@ -15,7 +15,7 @@ def createScene(root): "Sofa.Component.LinearSolver.Direct", "Sofa.Component.Mapping.MappedMatrix", "Sofa.Component.Mass", - "Sofa.Component.ODESolver.Backward", + "Sofa.Component.IntegrationSchemes.Backward", "Sofa.Component.Topology.Container.Dynamic", "Sofa.Component.Mapping.NonLinear", "Sofa.Component.StateContainer" @@ -25,7 +25,7 @@ def createScene(root): root.addObject("BlockGaussSeidelConstraintSolver", tolerance=1e-9, maxIterations=1000) root.addObject("StringMeshCreator", name="loader", resolution="20") - root.addObject("EulerImplicitSolver") + root.addObject("EulerImplicitIntegrationScheme") root.addObject("EigenSimplicialLLT", template='CompressedRowSparseMatrixMat3x3d') root.addObject("GenericConstraintCorrection") diff --git a/examples/access_contact_forces.py b/examples/access_contact_forces.py index c857df9a3..0f99905f1 100644 --- a/examples/access_contact_forces.py +++ b/examples/access_contact_forces.py @@ -34,7 +34,7 @@ def createScene(root): 'Sofa.Component.Collision.Detection.Intersection', 'Sofa.Component.Collision.Geometry', 'Sofa.Component.Collision.Response.Contact', 'Sofa.Component.Constraint.Projective', 'Sofa.Component.IO.Mesh','Sofa.Component.LinearSolver.Iterative', - 'Sofa.Component.Mapping.Linear', 'Sofa.Component.Mass', 'Sofa.Component.ODESolver.Backward', + 'Sofa.Component.Mapping.Linear', 'Sofa.Component.Mass', 'Sofa.Component.IntegrationSchemes.Backward', 'Sofa.Component.SolidMechanics.FEM.Elastic','Sofa.Component.StateContainer', 'Sofa.Component.Topology.Container.Dynamic','Sofa.Component.Visual', 'Sofa.GL.Component.Rendering3D','Sofa.Component.Constraint.Lagrangian.Correction', @@ -56,7 +56,7 @@ def createScene(root): root.addObject('MeshOBJLoader', name="load_liver_surface", filename="mesh/liver-smooth.obj") liver = root.addChild('Liver') - liver.addObject('EulerImplicitSolver', name="cg_odesolver", rayleighStiffness=0.1, rayleighMass=0.1) + liver.addObject('EulerImplicitIntegrationScheme', name="cg_odesolver", rayleighStiffness=0.1, rayleighMass=0.1) liver.addObject('SparseLDLSolver', name="linear_solver", template="CompressedRowSparseMatrixMat3x3d") liver.addObject('MeshGmshLoader', name="loader_liver_volume", filename="mesh/liver.msh") liver.addObject('TetrahedronSetTopologyContainer', name="topo", src="@loader_liver_volume") @@ -85,7 +85,7 @@ def createScene(root): particle = root.addChild('Particle') - particle.addObject('EulerImplicitSolver') + particle.addObject('EulerImplicitIntegrationScheme') particle.addObject('CGLinearSolver', threshold=1e-09, tolerance=1e-09, iterations=200) # Particle MechanicalObject where the constraint/contact forces will be stored in the (x,y,z) coordinate system particleMO = particle.addObject('MechanicalObject', showObject=True, position=[-2, 10, 0, 0, 0, 0, 1], name=f'particle_DoFs', template='Rigid3d') diff --git a/examples/access_energy.py b/examples/access_energy.py index 1c80b3a81..01869a101 100644 --- a/examples/access_energy.py +++ b/examples/access_energy.py @@ -13,7 +13,7 @@ def createScene(rootNode, dt=0.01, m=1, g=1, L=100, mu=0): rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.LinearSolver.Iterative') rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Mapping.Linear') rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Mass') - rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.ODESolver.Backward') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.IntegrationSchemes.Backward') rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.SolidMechanics.Spring') rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.StateContainer') rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Topology.Container.Constant') @@ -46,7 +46,7 @@ def createScene(rootNode, dt=0.01, m=1, g=1, L=100, mu=0): # rootNode/Box Box = rootNode.addChild('Box') - Box.addObject('EulerImplicitSolver', name='EulerImplicitScheme') + Box.addObject('EulerImplicitIntegrationScheme', name='EulerImplicitScheme') Box.addObject('SparseLDLSolver', name='linearSolver', template='CompressedRowSparseMatrixd', linearSystem='@system') Box.addObject('MatrixLinearSystem', template='CompressedRowSparseMatrixd', name='system') diff --git a/examples/access_mass_matrix.py b/examples/access_mass_matrix.py index ce37af205..d634cd59e 100644 --- a/examples/access_mass_matrix.py +++ b/examples/access_mass_matrix.py @@ -33,7 +33,7 @@ def createScene(root): 'Sofa.Component.LinearSolver.Ordering', 'Sofa.Component.LinearSystem', 'Sofa.Component.Mass', - 'Sofa.Component.ODESolver.Backward', + 'Sofa.Component.IntegrationSchemes.Backward', 'Sofa.Component.SolidMechanics.FEM.Elastic', 'Sofa.Component.StateContainer', 'Sofa.Component.Topology.Container.Grid', @@ -43,7 +43,7 @@ def createScene(root): root.addObject('DefaultAnimationLoop') root.addObject('DefaultVisualManagerLoop') - root.addObject('EulerImplicitSolver', rayleighStiffness="0.1", rayleighMass="0.1") + root.addObject('EulerImplicitIntegrationScheme', rayleighStiffness="0.1", rayleighMass="0.1") matrices = root.addChild('matrices') # in this Node, two linear systems are declared: diff --git a/examples/access_matrix.py b/examples/access_matrix.py index 1ba44ddc7..bc457487c 100644 --- a/examples/access_matrix.py +++ b/examples/access_matrix.py @@ -7,7 +7,7 @@ def createBeam(root, matrix_type): node = root.addChild(matrix_type) - node.addObject('EulerImplicitSolver', rayleighStiffness="0.1", rayleighMass="0.1") + node.addObject('EulerImplicitIntegrationScheme', rayleighStiffness="0.1", rayleighMass="0.1") linear_system = node.addObject('MatrixLinearSystem', template=matrix_type) node.addObject('MechanicalObject', name="DoFs") @@ -31,7 +31,7 @@ def createScene(root): 'Sofa.Component.Topology.Container.Grid', 'Sofa.Component.Visual', 'Sofa.Component.Constraint.Projective', 'Sofa.Component.Engine.Select', 'Sofa.Component.LinearSolver.Direct', 'Sofa.Component.LinearSystem', - 'Sofa.Component.ODESolver.Backward','Sofa.Component.SolidMechanics.FEM.Elastic' + 'Sofa.Component.IntegrationSchemes.Backward','Sofa.Component.SolidMechanics.FEM.Elastic' ]) root.addObject('DefaultAnimationLoop', parallelODESolving=True) diff --git a/examples/access_stiffness_matrix.py b/examples/access_stiffness_matrix.py index 53da11fff..dbee33de7 100644 --- a/examples/access_stiffness_matrix.py +++ b/examples/access_stiffness_matrix.py @@ -18,7 +18,7 @@ def createScene(root): 'Sofa.Component.Engine.Select', 'Sofa.Component.LinearSolver.Direct', 'Sofa.Component.Mass', - 'Sofa.Component.ODESolver.Backward', + 'Sofa.Component.IntegrationSchemes.Backward', 'Sofa.Component.SolidMechanics.FEM.Elastic', 'Sofa.Component.StateContainer', 'Sofa.Component.Topology.Container.Grid', @@ -28,7 +28,7 @@ def createScene(root): root.addObject('DefaultAnimationLoop') root.addObject('DefaultVisualManagerLoop') - root.addObject('EulerImplicitSolver', rayleighStiffness="0.1", rayleighMass="0.1") + root.addObject('EulerImplicitIntegrationScheme', rayleighStiffness="0.1", rayleighMass="0.1") root.addObject('SparseLDLSolver', template="CompressedRowSparseMatrixd") root.addObject('MechanicalObject', name="DoFs") diff --git a/examples/additional-examples/pygame_example.py b/examples/additional-examples/pygame_example.py index bba86c5a0..b7f876f1f 100644 --- a/examples/additional-examples/pygame_example.py +++ b/examples/additional-examples/pygame_example.py @@ -64,7 +64,7 @@ def createScene(root): root.addObject("MeshOBJLoader", name="meshLoaderFine", filename="mesh/liver-smooth.obj") - root.addObject("EulerImplicitSolver") + root.addObject("EulerImplicitIntegrationScheme") root.addObject("CGLinearSolver", iterations="200", tolerance="1e-09", threshold="1e-09") diff --git a/examples/additional-examples/pyqt_example.py b/examples/additional-examples/pyqt_example.py index fe60bd8d4..bde909363 100644 --- a/examples/additional-examples/pyqt_example.py +++ b/examples/additional-examples/pyqt_example.py @@ -108,7 +108,7 @@ def __init__(self): root.addObject("MeshOBJLoader", name="meshLoaderFine", filename="mesh/liver-smooth.obj") - root.addObject("EulerImplicitSolver") + root.addObject("EulerImplicitIntegrationScheme") root.addObject("CGLinearSolver", iterations="200", tolerance="1e-09", threshold="1e-09") diff --git a/examples/advanced_timer.py b/examples/advanced_timer.py index dba1bccd0..9cef2cad4 100644 --- a/examples/advanced_timer.py +++ b/examples/advanced_timer.py @@ -48,7 +48,7 @@ def createScene(root): 'Sofa.Component.Engine.Select', 'Sofa.Component.LinearSolver.Iterative', 'Sofa.Component.MechanicalLoad', - 'Sofa.Component.ODESolver.Backward', + 'Sofa.Component.IntegrationSchemes.Backward', 'Sofa.Component.SolidMechanics.FEM.Elastic', 'Sofa.Component.StateContainer', 'Sofa.Component.Topology.Container.Dynamic', @@ -70,9 +70,8 @@ def createScene(root): # Create our mechanical node with root.addChild("meca") as meca: - meca.addObject("NewtonRaphsonSolver", name="newtonSolver_springs", maxNbIterationsNewton=5, - maxNbIterationsLineSearch=1, warnWhenLineSearchFails=False, printLog=False) - meca.addObject("StaticSolver", newtonSolver="@newtonSolver_springs") + meca.addObject("StaticEquilibriumIntegrationScheme", maxNbIterationsNewton=5, + maxNbIterationsLineSearch=1) meca.addObject("CGLinearSolver", iterations=25, tolerance=1e-5, threshold=1e-5) meca.addObject('MechanicalObject', name='mo', position='@../grid.position') diff --git a/examples/emptyForceField.py b/examples/emptyForceField.py index 90bcb6cef..4a8d42801 100644 --- a/examples/emptyForceField.py +++ b/examples/emptyForceField.py @@ -40,14 +40,14 @@ def createScene(root): root.bbox = [[-1, -1, -1],[1,1,1]] root.addObject("RequiredPlugin", pluginName=["Sofa.Component.LinearSolver.Iterative", - "Sofa.Component.ODESolver.Backward", + "Sofa.Component.IntegrationSchemes.Backward", "Sofa.Component.StateContainer" ]) root.addObject('DefaultAnimationLoop') node1 = root.addChild("Node1") - node1.addObject('EulerImplicitSolver') + node1.addObject('EulerImplicitIntegrationScheme') node1.addObject('CGLinearSolver', iterations="100", tolerance="10-3", threshold="10-3") node1.addObject('MechanicalObject', template="Vec3d") diff --git a/examples/example-forcefield.py b/examples/example-forcefield.py index 60c474525..995ccedb2 100644 --- a/examples/example-forcefield.py +++ b/examples/example-forcefield.py @@ -32,7 +32,7 @@ def addDForce(self, params, df, dx): def createScene(root): root.addObject("RequiredPlugin", pluginName=["Sofa.GL.Component", - "Sofa.Component.ODESolver.Backward", + "Sofa.Component.IntegrationSchemes.Backward", "Sofa.Component.LinearSolver.Direct", "Sofa.Component.LinearSolver.Iterative", "Sofa.Component.Mass", @@ -42,7 +42,7 @@ def createScene(root): root.addObject("LineAxis") root.addObject("DefaultAnimationLoop", name="loop") - root.addObject("EulerImplicitSolver") + root.addObject("EulerImplicitIntegrationScheme") root.addObject("CGLinearSolver", tolerance=1e-12, threshold=1e-12, iterations=25) o = root.addChild("Object") diff --git a/examples/example-mapping.py b/examples/example-mapping.py index c32183897..4f0bac92e 100644 --- a/examples/example-mapping.py +++ b/examples/example-mapping.py @@ -41,7 +41,7 @@ def applyConstraintsJT(self, m, outDeriv, inDeriv): def createScene(root): root.addObject("RequiredPlugin", pluginName=["Sofa.GL.Component", - "Sofa.Component.ODESolver.Backward", + "Sofa.Component.IntegrationSchemes.Backward", "Sofa.Component.LinearSolver.Direct", "Sofa.Component.LinearSolver.Iterative", "Sofa.Component.Mass", @@ -71,7 +71,7 @@ def createScene(root): m.addObject( IdentityMapping(name="CPPObject", input=c, output=sm ) ) root.addChild("Simulation") - root.Simulation.addObject("EulerImplicitSolver") + root.Simulation.addObject("EulerImplicitIntegrationScheme") root.Simulation.addObject("CGLinearSolver", tolerance=1e-12, threshold=1e-12, iterations=25) root.Simulation.addChild(root.Modelling) diff --git a/examples/example-mapping_3_to_1.py b/examples/example-mapping_3_to_1.py index d486855fd..c3735be85 100644 --- a/examples/example-mapping_3_to_1.py +++ b/examples/example-mapping_3_to_1.py @@ -43,7 +43,7 @@ def applyConstraintsJT(self, m, outDeriv, inDeriv): def createScene(root): root.addObject("RequiredPlugin", pluginName=["Sofa.GL.Component", - "Sofa.Component.ODESolver.Backward", + "Sofa.Component.IntegrationSchemes.Backward", "Sofa.Component.LinearSolver.Direct", "Sofa.Component.LinearSolver.Iterative", "Sofa.Component.Mass", @@ -71,7 +71,7 @@ def createScene(root): m.addObject( MSELossMapping(name="MSELossObject", input=c, output=sm, target=c ) ) root.addChild("Simulation") - root.Simulation.addObject("EulerImplicitSolver") + root.Simulation.addObject("EulerImplicitIntegrationScheme") root.Simulation.addObject("CGLinearSolver", tolerance=1e-12, threshold=1e-12, iterations=25) root.Simulation.addChild(root.Modelling) diff --git a/examples/jax/forcefield.py b/examples/jax/forcefield.py index ccd827e84..d86acd0d6 100644 --- a/examples/jax/forcefield.py +++ b/examples/jax/forcefield.py @@ -113,8 +113,8 @@ def createScene(root, method="implicit-matrix-assembly", n_particles=1_000, use_ "RequiredPlugin", pluginName=[ 'Sofa.Component.Visual', - 'Sofa.Component.ODESolver.Forward', - 'Sofa.Component.ODESolver.Backward', + 'Sofa.Component.IntegrationSchemes.Forward', + 'Sofa.Component.IntegrationSchemes.Backward', 'Sofa.Component.LinearSolver.Iterative', 'Sofa.Component.LinearSolver.Direct', 'Sofa.Component.StateContainer', @@ -129,12 +129,12 @@ def createScene(root, method="implicit-matrix-assembly", n_particles=1_000, use_ physics = root.addChild("Physics") if method.lower() == "explicit": # Requires the implementation of 'addForce' - physics.addObject("EulerExplicitSolver", name="eulerExplicit") + physics.addObject("EulerExplicitIntegrationScheme", name="eulerExplicit") elif method.lower() == "implicit-matrix-free": # Requires the implementation of 'addForce' and 'addDForce' - physics.addObject("EulerImplicitSolver", name="eulerImplicit") + physics.addObject("EulerImplicitIntegrationScheme", name="eulerImplicit") physics.addObject("CGLinearSolver", template="GraphScattered", name="solver", iterations=50, tolerance=1e-5, threshold=1e-5) elif method == "implicit-matrix-assembly": # Requires the implementation of 'addForce', 'addDForce' and 'addKToMatrix' - physics.addObject("EulerImplicitSolver", name="eulerImplicit") + physics.addObject("EulerImplicitIntegrationScheme", name="eulerImplicit") physics.addObject("SparseLDLSolver", name="solver", template="CompressedRowSparseMatrixd") position = np.random.uniform(-1, 1, (n_particles, 3)) diff --git a/examples/liver-scriptcontroller.py b/examples/liver-scriptcontroller.py index 43f72fcce..613166b62 100644 --- a/examples/liver-scriptcontroller.py +++ b/examples/liver-scriptcontroller.py @@ -40,7 +40,7 @@ def createScene(root): 'Sofa.Component.LinearSolver.Iterative', 'Sofa.Component.Mapping.Linear', 'Sofa.Component.Mass', - 'Sofa.Component.ODESolver.Backward', + 'Sofa.Component.IntegrationSchemes.Backward', 'Sofa.Component.SolidMechanics.FEM.Elastic', 'Sofa.Component.StateContainer', 'Sofa.Component.MechanicalLoad', @@ -61,7 +61,7 @@ def createScene(root): root.addObject('MeshOBJLoader', name="LiverSurface", filename="mesh/liver-smooth.obj") liver = root.addChild('Liver') - liver.addObject('EulerImplicitSolver', name="cg_odesolver", rayleighStiffness=0.1, rayleighMass=0.1) + liver.addObject('EulerImplicitIntegrationScheme', name="cg_odesolver", rayleighStiffness=0.1, rayleighMass=0.1) liver.addObject('CGLinearSolver', name="linear_solver", iterations=25, tolerance=1e-09, threshold=1e-09) liver.addObject('MeshGmshLoader', name="meshLoader", filename="mesh/liver.msh") liver.addObject('TetrahedronSetTopologyContainer', name="topo", src="@meshLoader") @@ -102,7 +102,7 @@ def onKeypressedEvent(self, event): def createNewSphere(self): root = self.getContext() newSphere = root.addChild('FallingSphere-'+str(self.iteration)) - newSphere.addObject('EulerImplicitSolver') + newSphere.addObject('EulerImplicitIntegrationScheme') newSphere.addObject('CGLinearSolver', threshold='1e-09', tolerance='1e-09', iterations='200') MO = newSphere.addObject('MechanicalObject', showObject=True, position=[-2, 10+self.iteration, 0, 0, 0, 0, 1], name=f'Particle-{self.iteration}', template='Rigid3d') Mass = newSphere.addObject('UniformMass', totalMass=1) diff --git a/examples/liver.py b/examples/liver.py index 0acb3fed8..b40d925a5 100644 --- a/examples/liver.py +++ b/examples/liver.py @@ -35,7 +35,7 @@ def createScene(root): 'Sofa.Component.LinearSolver.Iterative', 'Sofa.Component.Mapping.Linear', 'Sofa.Component.Mass', - 'Sofa.Component.ODESolver.Backward', + 'Sofa.Component.IntegrationSchemes.Backward', 'Sofa.Component.SolidMechanics.FEM.Elastic', 'Sofa.Component.StateContainer', 'Sofa.Component.Topology.Container.Dynamic', @@ -55,7 +55,7 @@ def createScene(root): root.addObject('MeshOBJLoader', name="LiverSurface", filename="mesh/liver-smooth.obj") liver = root.addChild('Liver') - liver.addObject('EulerImplicitSolver', name="cg_odesolver", rayleighStiffness="0.1", rayleighMass="0.1") + liver.addObject('EulerImplicitIntegrationScheme', name="cg_odesolver", rayleighStiffness="0.1", rayleighMass="0.1") liver.addObject('CGLinearSolver', name="linear_solver", iterations="25", tolerance="1e-09", threshold="1e-09") liver.addObject('MeshGmshLoader', name="meshLoader", filename="mesh/liver.msh") liver.addObject('TetrahedronSetTopologyContainer', name="topo", src="@meshLoader") diff --git a/examples/springForceField.py b/examples/springForceField.py index 2a8753cf7..0c1f6df80 100644 --- a/examples/springForceField.py +++ b/examples/springForceField.py @@ -11,7 +11,7 @@ def createScene(root): 'Sofa.Component.Mapping.NonLinear', 'Sofa.Component.Mass', 'Sofa.Component.MechanicalLoad', - 'Sofa.Component.ODESolver.Backward', + 'Sofa.Component.IntegrationSchemes.Backward', 'Sofa.Component.SolidMechanics.Spring', 'Sofa.Component.StateContainer', 'Sofa.GL.Component.Rendering3D' @@ -23,7 +23,7 @@ def createScene(root): surface_node = root.addChild('Surface') surface_loader = surface_node.addObject('MeshOBJLoader', name='surface_loader', filename='mesh/ball.obj') - root.addObject('EulerImplicitSolver', name='ODE', rayleighStiffness=0.1, rayleighMass=0.1) + root.addObject('EulerImplicitIntegrationScheme', name='ODE', rayleighStiffness=0.1, rayleighMass=0.1) root.addObject('CGLinearSolver', name='linear solver', iterations=25, tolerance=1e-08, threshold=1e-08) ball_0 = add_ball(root, 'ball_0', (-2, 0, 0), surface_loader) diff --git a/examples/taskScheduler.py b/examples/taskScheduler.py index 598bec9f2..d3a50ff7a 100644 --- a/examples/taskScheduler.py +++ b/examples/taskScheduler.py @@ -11,7 +11,7 @@ def createScene(root): "Sofa.Component.Engine.Select", "Sofa.Component.LinearSolver.Iterative", "Sofa.Component.Mass", - "Sofa.Component.ODESolver.Backward", + "Sofa.Component.IntegrationSchemes.Backward", "Sofa.Component.StateContainer", "Sofa.Component.Topology.Container.Grid", "Sofa.Component.Visual", @@ -19,7 +19,7 @@ def createScene(root): ]) root.addObject('VisualStyle', displayFlags="showForceFields") root.addObject('DefaultAnimationLoop') - root.addObject('EulerImplicitSolver', rayleighStiffness=0.1, rayleighMass=0.1) + root.addObject('EulerImplicitIntegrationScheme', rayleighStiffness=0.1, rayleighMass=0.1) root.addObject('CGLinearSolver', iterations=25, tolerance=1.0e-9, threshold=1.0e-9) root.addObject('MechanicalObject', template="Vec3") root.addObject('UniformMass', vertexMass=1) diff --git a/examples/thermoelasticity.py b/examples/thermoelasticity.py index ba29187ea..b83a26069 100644 --- a/examples/thermoelasticity.py +++ b/examples/thermoelasticity.py @@ -27,7 +27,7 @@ def createScene(root): root.addObject('DefaultAnimationLoop') root.addObject('DefaultVisualManagerLoop') root.addObject('RequiredPlugin', pluginName=['Sofa.Component.Constraint.Projective', 'Sofa.Component.Diffusion', 'Sofa.Component.Engine.Select', - 'Sofa.Component.LinearSolver.Direct', 'Sofa.Component.LinearSolver.Iterative', 'Sofa.Component.Mass', 'Sofa.Component.ODESolver.Backward', 'Sofa.Component.SolidMechanics.FEM.Elastic', + 'Sofa.Component.LinearSolver.Direct', 'Sofa.Component.LinearSolver.Iterative', 'Sofa.Component.Mass', 'Sofa.Component.IntegrationSchemes.Backward', 'Sofa.Component.SolidMechanics.FEM.Elastic', 'Sofa.Component.Topology.Container.Dynamic', 'Sofa.Component.Topology.Container.Grid', 'Sofa.Component.Topology.Mapping', 'Sofa.Component.Visual', 'Sofa.GL.Component.Engine', 'Sofa.GL.Component.Rendering2D', 'Sofa.GL.Component.Rendering3D', 'Sofa.Component.StateContainer', 'Sofa.Component.Mapping.Linear']) root.addObject('VisualStyle', displayFlags="hideCollisionModels showVisualModels hideForceFields showBehaviorModels") @@ -45,7 +45,7 @@ def createScene(root): meca = tetraTopo.addChild("Mechanics") - meca.addObject("EulerImplicitSolver", name="Euler Impl IntegrationScheme") + meca.addObject("EulerImplicitIntegrationScheme", name="Euler Impl IntegrationScheme") meca.addObject("SparseLDLSolver", name="LDL LinearSolver", template="CompressedRowSparseMatrixMat3x3d") meca.addObject("TetrahedronSetTopologyContainer", name="tetContainer", src=tetrahedraContainer.linkpath) meca.addObject("TetrahedronSetGeometryAlgorithms", name="tetGeometry", template="Vec3d") @@ -59,7 +59,7 @@ def createScene(root): thermo = tetraTopo.addChild("Thermodynamics") - thermo.addObject("EulerImplicitSolver", name="Euler Impl IntegrationScheme", firstOrder=True) + thermo.addObject("EulerImplicitIntegrationScheme", name="Euler Impl IntegrationScheme", firstOrder=True) thermo.addObject("CGLinearSolver", name="Conjugate Gradient", iterations="1000", tolerance=1.0e-10, threshold=1.0e-30) thermo.addObject("TetrahedronSetTopologyContainer", name="tetContainer", src="@../tetContainer") thermo.addObject("TetrahedronSetGeometryAlgorithms", name="tetGeometry", template="Vec3d")