diff --git a/examples/component/constraint/CableConstraint/CableSmoothActuation.py b/examples/component/constraint/CableConstraint/CableSmoothActuation.py index 9a4d5287..b73e04cf 100644 --- a/examples/component/constraint/CableConstraint/CableSmoothActuation.py +++ b/examples/component/constraint/CableConstraint/CableSmoothActuation.py @@ -35,7 +35,7 @@ def createScene(rootNode): rootNode.addObject('VisualStyle', displayFlags='showVisualModels hideBehaviorModels showCollisionModels hideBoundingCollisionModels hideForceFields showInteractionForceFields hideWireframe') rootNode.addObject('FreeMotionAnimationLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', printLog='0') + rootNode.addObject('BlockGaussSeidelConstraintSolver', printLog='0') ################################################################################################################ ################################################### Bunny ###################################################### diff --git a/examples/component/constraint/CableConstraint/DisplacementVsForceControl.py b/examples/component/constraint/CableConstraint/DisplacementVsForceControl.py index 72aaf71d..da4dc02c 100644 --- a/examples/component/constraint/CableConstraint/DisplacementVsForceControl.py +++ b/examples/component/constraint/CableConstraint/DisplacementVsForceControl.py @@ -17,7 +17,7 @@ def createScene(rootNode): "Sofa.Component.Collision.Response.Contact", # Needed to use components RuleBasedContactManager "Sofa.Component.Constraint.Lagrangian.Correction", # Needed to use components LinearSolverConstraintCorrection - "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components ProjectedGaussSeidelConstraintSolver + "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components BlockGaussSeidelConstraintSolver "Sofa.Component.Engine.Select", # Needed to use components BoxROI "Sofa.Component.IO.Mesh", # Needed to use components MeshSTLLoader, MeshVTKLoader "Sofa.Component.LinearSolver.Direct", # Needed to use components SparseLDLSolver diff --git a/examples/component/constraint/CableConstraint/Finger.py b/examples/component/constraint/CableConstraint/Finger.py index dc6161b2..e9bb14fe 100644 --- a/examples/component/constraint/CableConstraint/Finger.py +++ b/examples/component/constraint/CableConstraint/Finger.py @@ -11,7 +11,7 @@ def createScene(rootNode): rootNode.addObject('RequiredPlugin', pluginName=[ "Sofa.Component.AnimationLoop", # Needed to use components FreeMotionAnimationLoop "Sofa.Component.Constraint.Lagrangian.Correction", # Needed to use components GenericConstraintCorrection - "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components ProjectedGaussSeidelConstraintSolver + "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components BlockGaussSeidelConstraintSolver "Sofa.Component.Engine.Select", # Needed to use components BoxROI "Sofa.Component.IO.Mesh", # Needed to use components MeshSTLLoader, MeshVTKLoader "Sofa.Component.LinearSolver.Direct", # Needed to use components SparseLDLSolver @@ -34,8 +34,8 @@ def createScene(rootNode): # when manipulating the robots by specifying their effector's position instead of by direct control # of the actuator's parameters. # rootNode.addObject('QPInverseProblemSolver', printLog=False) - # Otherwise use a ProjectedGaussSeidelConstraintSolver - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', tolerance=1e-5, maxIterations=100) + # Otherwise use a BlockGaussSeidelConstraintSolver + rootNode.addObject('BlockGaussSeidelConstraintSolver', tolerance=1e-5, maxIterations=100) rootNode.gravity = [0, -9810, 0] rootNode.dt = 0.01 diff --git a/examples/component/constraint/CableConstraint/FingerWithSTLIB.py b/examples/component/constraint/CableConstraint/FingerWithSTLIB.py index 36aa11cd..1aded738 100644 --- a/examples/component/constraint/CableConstraint/FingerWithSTLIB.py +++ b/examples/component/constraint/CableConstraint/FingerWithSTLIB.py @@ -19,7 +19,7 @@ def createScene(rootNode): "Sofa.Component.AnimationLoop", # Needed to use components FreeMotionAnimationLoop "Sofa.Component.Constraint.Lagrangian.Correction", # Needed to use components LinearSolverConstraintCorrection - "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components ProjectedGaussSeidelConstraintSolver + "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components BlockGaussSeidelConstraintSolver "Sofa.Component.Engine.Select", # Needed to use components BoxROI "Sofa.Component.IO.Mesh", # Needed to use components MeshSTLLoader, MeshVTKLoader "Sofa.Component.LinearSolver.Direct", # Needed to use components SparseLDLSolver @@ -36,7 +36,7 @@ def createScene(rootNode): rootNode.addObject("FreeMotionAnimationLoop") rootNode.addObject('DefaultVisualManagerLoop') - rootNode.addObject("ProjectedGaussSeidelConstraintSolver", maxIterations=1000, tolerance=0.001) + rootNode.addObject("BlockGaussSeidelConstraintSolver", maxIterations=1000, tolerance=0.001) finger = ElasticMaterialObject(name="finger", volumeMeshFileName="mesh/finger.vtk", diff --git a/examples/component/constraint/JointConstraint/JointConstraint.py b/examples/component/constraint/JointConstraint/JointConstraint.py index 00a5d145..fea6d87c 100644 --- a/examples/component/constraint/JointConstraint/JointConstraint.py +++ b/examples/component/constraint/JointConstraint/JointConstraint.py @@ -10,7 +10,7 @@ def createScene(rootNode): rootNode.addObject('RequiredPlugin', name='ArticulatedSystemPlugin') # Needed to use components [ArticulatedHierarchyContainer,ArticulatedSystemMapping,Articulation,ArticulationCenter] rootNode.addObject('RequiredPlugin', name='Sofa.Component.AnimationLoop') # Needed to use components [FreeMotionAnimationLoop] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Correction') # Needed to use components [UncoupledConstraintCorrection] - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to use components [ProjectedGaussSeidelConstraintSolver] + rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to use components [BlockGaussSeidelConstraintSolver] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Projective') # Needed to use components [FixedProjectiveConstraint] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Engine.Generate') # Needed to use components [GenerateRigidMass] rootNode.addObject('RequiredPlugin', name='Sofa.Component.IO.Mesh') # Needed to use components [MeshSTLLoader] @@ -28,7 +28,7 @@ def createScene(rootNode): rootNode.gravity = [0., -9810., 0.] rootNode.addObject('VisualStyle', displayFlags='showBehaviorModels') rootNode.addObject('FreeMotionAnimationLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=500, tolerance=1e-4) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=500, tolerance=1e-4) # Simulation node simulation = rootNode.addChild('Simulation') diff --git a/examples/component/constraint/PositionConstraint/PositionConstraint.py b/examples/component/constraint/PositionConstraint/PositionConstraint.py index 6df3d279..da3a6e08 100644 --- a/examples/component/constraint/PositionConstraint/PositionConstraint.py +++ b/examples/component/constraint/PositionConstraint/PositionConstraint.py @@ -3,7 +3,7 @@ def createScene(rootnode): rootnode.addObject('RequiredPlugin', name='SoftRobots') rootnode.addObject('FreeMotionAnimationLoop') - rootnode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=1e4, tolerance=1e-5, printLog=True) + rootnode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=1e4, tolerance=1e-5, printLog=True) rootnode.gravity = [0, -9.81, 0] rootnode.addObject('VisualStyle', displayFlags='showForceFields') diff --git a/examples/component/constraint/SurfacePressureConstraint/PressureVsVolumeGrowthControl.py b/examples/component/constraint/SurfacePressureConstraint/PressureVsVolumeGrowthControl.py index 76765b5b..edeab60b 100644 --- a/examples/component/constraint/SurfacePressureConstraint/PressureVsVolumeGrowthControl.py +++ b/examples/component/constraint/SurfacePressureConstraint/PressureVsVolumeGrowthControl.py @@ -13,7 +13,7 @@ def createScene(rootNode): "Sofa.Component.AnimationLoop", # Needed to use components FreeMotionAnimationLoop "Sofa.Component.Constraint.Lagrangian.Correction", # Needed to use components LinearSolverConstraintCorrection - "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components ProjectedGaussSeidelConstraintSolver + "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components BlockGaussSeidelConstraintSolver "Sofa.Component.Engine.Select", # Needed to use components BoxROI "Sofa.Component.IO.Mesh", # Needed to use components MeshOBJLoader, MeshVTKLoader "Sofa.Component.LinearSolver.Direct", # Needed to use components SparseLDLSolver @@ -36,7 +36,7 @@ def createScene(rootNode): rootNode.addObject('FreeMotionAnimationLoop') rootNode.addObject('DefaultVisualManagerLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=500, printLog=False, tolerance=0.0000001) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=500, printLog=False, tolerance=0.0000001) Bunny(rootNode, name='BunnyPressure', controlType='pressure', initialValue=2) Bunny(rootNode, translation=[15, 0, 0], controlType='volumeGrowth', name='BunnyVolume', initialValue=40) diff --git a/examples/component/constraint/SurfacePressureConstraint/Springy.py b/examples/component/constraint/SurfacePressureConstraint/Springy.py index 5279fc5a..5037f0bd 100644 --- a/examples/component/constraint/SurfacePressureConstraint/Springy.py +++ b/examples/component/constraint/SurfacePressureConstraint/Springy.py @@ -14,7 +14,7 @@ def createScene(rootNode): "Sofa.Component.AnimationLoop", # Needed to use components FreeMotionAnimationLoop "Sofa.Component.Constraint.Lagrangian.Correction", # Needed to use components LinearSolverConstraintCorrection - "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components ProjectedGaussSeidelConstraintSolver + "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components BlockGaussSeidelConstraintSolver "Sofa.Component.Engine.Select", # Needed to use components BoxROI "Sofa.Component.IO.Mesh", # Needed to use components MeshSTLLoader, MeshVTKLoader "Sofa.Component.LinearSolver.Direct", # Needed to use components SparseLDLSolver @@ -33,7 +33,7 @@ def createScene(rootNode): rootNode.addObject('FreeMotionAnimationLoop') rootNode.addObject('DefaultVisualManagerLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=1000, tolerance=1e-3) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=1000, tolerance=1e-3) rootNode.addObject('BackgroundSetting', color=[0, 0.168627, 0.211765, 1]) rootNode.findData('gravity').value = [0, 0, -981.0] diff --git a/examples/component/constraint/SurfacePressureConstraint/SurfacePressureConstraint.py b/examples/component/constraint/SurfacePressureConstraint/SurfacePressureConstraint.py index 4b63358d..fdf4b25e 100644 --- a/examples/component/constraint/SurfacePressureConstraint/SurfacePressureConstraint.py +++ b/examples/component/constraint/SurfacePressureConstraint/SurfacePressureConstraint.py @@ -8,7 +8,7 @@ def createScene(rootNode): rootNode.addObject('RequiredPlugin', name='Sofa.Component.AnimationLoop') # Needed to use components [FreeMotionAnimationLoop] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Correction') # Needed to use components [LinearSolverConstraintCorrection] - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to use components [ProjectedGaussSeidelConstraintSolver] + rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to use components [BlockGaussSeidelConstraintSolver] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Engine.Select') # Needed to use components [BoxROI] rootNode.addObject('RequiredPlugin', name='Sofa.Component.IO.Mesh') # Needed to use components [MeshOBJLoader,MeshVTKLoader] rootNode.addObject('RequiredPlugin', name='Sofa.Component.LinearSolver.Direct') # Needed to use components [EigenSimplicialLDLT] @@ -32,7 +32,7 @@ def createScene(rootNode): rootNode.addObject('FreeMotionAnimationLoop') rootNode.addObject('DefaultVisualManagerLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=100, tolerance=0.0000001) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=100, tolerance=0.0000001) # bunny bunny = rootNode.addChild('bunny') diff --git a/examples/component/constraint/UnilateralPlaneConstraint/ArticulatedTentacle.py b/examples/component/constraint/UnilateralPlaneConstraint/ArticulatedTentacle.py index b2bd7c62..f9e5b403 100644 --- a/examples/component/constraint/UnilateralPlaneConstraint/ArticulatedTentacle.py +++ b/examples/component/constraint/UnilateralPlaneConstraint/ArticulatedTentacle.py @@ -18,7 +18,7 @@ def createScene(rootNode): "Sofa.Component.Collision.Response.Contact", # Needed to use components CollisionResponse "Sofa.Component.Constraint.Lagrangian.Correction", # Needed to use components LinearSolverConstraintCorrection - "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components ProjectedGaussSeidelConstraintSolver + "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components BlockGaussSeidelConstraintSolver "Sofa.Component.Engine.Select", # Needed to use components BoxROI "Sofa.Component.IO.Mesh", # Needed to use components MeshSTLLoader, MeshVTKLoader "Sofa.Component.LinearSolver.Direct", # Needed to use components SparseLDLSolver @@ -35,7 +35,7 @@ def createScene(rootNode): rootNode.addObject('VisualStyle', displayFlags="showVisualModels hideBehaviorModels showCollisionModels hideBoundingCollisionModels hideForceFields showInteractionForceFields hideWireframe") rootNode.addObject('FreeMotionAnimationLoop') rootNode.addObject('DefaultVisualManagerLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=1000, tolerance=1e-3) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=1000, tolerance=1e-3) rootNode.addObject('CollisionPipeline') rootNode.addObject('BruteForceBroadPhase', name="N2") diff --git a/examples/component/controller/CommunicationController/SimulationDirect_Receiver.py b/examples/component/controller/CommunicationController/SimulationDirect_Receiver.py index b1c9b302..e0a5913a 100644 --- a/examples/component/controller/CommunicationController/SimulationDirect_Receiver.py +++ b/examples/component/controller/CommunicationController/SimulationDirect_Receiver.py @@ -9,7 +9,7 @@ def createScene(rootNode): "Sofa.Component.AnimationLoop", # Needed to use components FreeMotionAnimationLoop "Sofa.Component.Constraint.Lagrangian.Correction", # Needed to use components LinearSolverConstraintCorrection - "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components ProjectedGaussSeidelConstraintSolver + "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components BlockGaussSeidelConstraintSolver "Sofa.Component.Engine.Select", # Needed to use components BoxROI "Sofa.Component.IO.Mesh", # Needed to use components MeshSTLLoader, MeshVTKLoader "Sofa.Component.LinearSolver.Direct", # Needed to use components SparseLDLSolver @@ -26,7 +26,7 @@ def createScene(rootNode): rootNode.addObject('FreeMotionAnimationLoop') rootNode.addObject('DefaultVisualManagerLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=1000, tolerance=1e-14) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=1000, tolerance=1e-14) rootNode.gravity.value = [0, 0, -981.0] rootNode.dt.value = 0.01 diff --git a/examples/component/controller/CommunicationController/SimulationInverse_Sender.py b/examples/component/controller/CommunicationController/SimulationInverse_Sender.py index 9cc6b103..0bf8a182 100644 --- a/examples/component/controller/CommunicationController/SimulationInverse_Sender.py +++ b/examples/component/controller/CommunicationController/SimulationInverse_Sender.py @@ -12,7 +12,7 @@ def createScene(rootNode): "Sofa.Component.Collision.Geometry", # Needed to use components SphereCollisionModel "Sofa.Component.Constraint.Lagrangian.Correction", # Needed to use components LinearSolverConstraintCorrection, UncoupledConstraintCorrection - "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components ProjectedGaussSeidelConstraintSolver + "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components BlockGaussSeidelConstraintSolver "Sofa.Component.Engine.Select", # Needed to use components BoxROI "Sofa.Component.IO.Mesh", # Needed to use components MeshSTLLoader, MeshVTKLoader "Sofa.Component.LinearSolver.Direct", # Needed to use components SparseLDLSolver @@ -35,7 +35,7 @@ def createScene(rootNode): rootNode.addObject('RequiredPlugin', name='SoftRobots.Inverse') rootNode.addObject('QPInverseProblemSolver', epsilon=1e-1, maxIterations=1000, tolerance=1e-14) else: - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=500, tolerance=1e-5) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=500, tolerance=1e-5) rootNode.gravity.value = [0, 0, -981.0] rootNode.dt.value = 0.01 diff --git a/examples/component/controller/DataVariationLimiter/DataVariationLimiter.py b/examples/component/controller/DataVariationLimiter/DataVariationLimiter.py index de61e76f..c3619297 100644 --- a/examples/component/controller/DataVariationLimiter/DataVariationLimiter.py +++ b/examples/component/controller/DataVariationLimiter/DataVariationLimiter.py @@ -17,7 +17,7 @@ def createScene(rootNode): "Sofa.Component.Constraint.Lagrangian.Correction", # Needed to use components LinearSolverConstraintCorrection, UncoupledConstraintCorrection "Sofa.Component.Constraint.Lagrangian.Solver", - # Needed to use components ProjectedGaussSeidelConstraintSolver + # Needed to use components BlockGaussSeidelConstraintSolver "Sofa.Component.Engine.Select", # Needed to use components BoxROI "Sofa.Component.IO.Mesh", # Needed to use components MeshOBJLoader, MeshSTLLoader, MeshVTKLoader @@ -53,7 +53,7 @@ def createScene(rootNode): rootNode.addObject('RequiredPlugin', name='SoftRobots.Inverse') rootNode.addObject('QPInverseProblemSolver', epsilon=1e-1, maxIterations=1000, tolerance=1e-14) else: - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=500, tolerance=1e-5) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=500, tolerance=1e-5) rootNode.gravity.value = [0, 0, -981.0] rootNode.dt.value = 0.01 diff --git a/examples/thematicalDocs/T4-DirectActuation/Actuators/Cable/CableDisplacement.py b/examples/thematicalDocs/T4-DirectActuation/Actuators/Cable/CableDisplacement.py index 99194a9c..8951efe9 100644 --- a/examples/thematicalDocs/T4-DirectActuation/Actuators/Cable/CableDisplacement.py +++ b/examples/thematicalDocs/T4-DirectActuation/Actuators/Cable/CableDisplacement.py @@ -15,7 +15,7 @@ def createScene(rootNode): rootNode.addObject('FreeMotionAnimationLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', tolerance=1e-5, maxIterations=100) + rootNode.addObject('BlockGaussSeidelConstraintSolver', tolerance=1e-5, maxIterations=100) rootNode.addObject('BackgroundSetting', color=[0, 0.168627, 0.211765, 1]) rootNode.addObject('OglSceneFrame', style="Arrows", alignment="TopRight") diff --git a/examples/thematicalDocs/T4-DirectActuation/Actuators/Cable/CableForce.py b/examples/thematicalDocs/T4-DirectActuation/Actuators/Cable/CableForce.py index e4f17dd9..f2345d1d 100644 --- a/examples/thematicalDocs/T4-DirectActuation/Actuators/Cable/CableForce.py +++ b/examples/thematicalDocs/T4-DirectActuation/Actuators/Cable/CableForce.py @@ -15,7 +15,7 @@ def createScene(rootNode): rootNode.addObject('FreeMotionAnimationLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', tolerance=1e-5, maxIterations=100) + rootNode.addObject('BlockGaussSeidelConstraintSolver', tolerance=1e-5, maxIterations=100) rootNode.addObject('BackgroundSetting', color=[0, 0.168627, 0.211765, 1]) rootNode.addObject('OglSceneFrame', style="Arrows", alignment="TopRight") diff --git a/examples/thematicalDocs/T4-DirectActuation/Actuators/Pneumatic/SurfaceConstraintPressure.py b/examples/thematicalDocs/T4-DirectActuation/Actuators/Pneumatic/SurfaceConstraintPressure.py index f06a655a..8c2d0043 100644 --- a/examples/thematicalDocs/T4-DirectActuation/Actuators/Pneumatic/SurfaceConstraintPressure.py +++ b/examples/thematicalDocs/T4-DirectActuation/Actuators/Pneumatic/SurfaceConstraintPressure.py @@ -14,7 +14,7 @@ def createScene(rootNode): displayFlags='showVisualModels hideBehaviorModels showCollisionModels hideBoundingCollisionModels hideForceFields showInteractionForceFields hideWireframe') rootNode.addObject('FreeMotionAnimationLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=100, tolerance=0.0000001) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=100, tolerance=0.0000001) # bunny mechanical model bunny = rootNode.addChild('bunny') diff --git a/examples/thematicalDocs/T4-DirectActuation/Actuators/Pneumatic/SurfaceConstraintVolume.py b/examples/thematicalDocs/T4-DirectActuation/Actuators/Pneumatic/SurfaceConstraintVolume.py index 7f9d8181..cf82cd19 100644 --- a/examples/thematicalDocs/T4-DirectActuation/Actuators/Pneumatic/SurfaceConstraintVolume.py +++ b/examples/thematicalDocs/T4-DirectActuation/Actuators/Pneumatic/SurfaceConstraintVolume.py @@ -12,7 +12,7 @@ def createScene(rootNode): displayFlags='showVisualModels hideBehaviorModels showCollisionModels hideBoundingCollisionModels hideForceFields showInteractionForceFields hideWireframe') rootNode.addObject('FreeMotionAnimationLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=100, tolerance=0.0000001) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=100, tolerance=0.0000001) # bunny mechanical model bunny = rootNode.addChild('bunny') diff --git a/examples/thematicalDocs/T4-DirectActuation/DriveTheRobot/Simulation.py b/examples/thematicalDocs/T4-DirectActuation/DriveTheRobot/Simulation.py index b531f805..023c9c6f 100644 --- a/examples/thematicalDocs/T4-DirectActuation/DriveTheRobot/Simulation.py +++ b/examples/thematicalDocs/T4-DirectActuation/DriveTheRobot/Simulation.py @@ -16,7 +16,7 @@ def createScene(rootNode): rootNode.gravity = [0., 0., -9810] rootNode.addObject('FreeMotionAnimationLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', tolerance=1e-6, maxIterations=50000) + rootNode.addObject('BlockGaussSeidelConstraintSolver', tolerance=1e-6, maxIterations=50000) rootNode.addObject('BackgroundSetting', color=[0, 0.168627, 0.211765, 1]) rootNode.addObject('OglSceneFrame', style="Arrows", alignment="TopRight") diff --git a/examples/tutorials/CableGripper/details/step3.py b/examples/tutorials/CableGripper/details/step3.py index 6b8c6e43..9f47341e 100644 --- a/examples/tutorials/CableGripper/details/step3.py +++ b/examples/tutorials/CableGripper/details/step3.py @@ -54,7 +54,7 @@ def createScene(rootNode): MainHeader(rootNode, plugins=["SoftRobots"]) rootNode.VisualStyle.displayFlags = "showBehavior showCollisionModels" rootNode.addObject('FreeMotionAnimationLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', tolerance=1e-5, maxIterations=100) + rootNode.addObject('BlockGaussSeidelConstraintSolver', tolerance=1e-5, maxIterations=100) Finger(rootNode) diff --git a/examples/tutorials/CircularRobot/circularrobot.py b/examples/tutorials/CircularRobot/circularrobot.py index 9ed8f2e8..32abf670 100644 --- a/examples/tutorials/CircularRobot/circularrobot.py +++ b/examples/tutorials/CircularRobot/circularrobot.py @@ -122,7 +122,7 @@ def createScene(rootNode): "Sofa.Component.Constraint.Lagrangian.Correction", # Needed to use components GenericConstraintCorrection, UncoupledConstraintCorrection "Sofa.Component.Constraint.Lagrangian.Solver", - # Needed to use components ProjectedGaussSeidelConstraintSolver + # Needed to use components BlockGaussSeidelConstraintSolver "Sofa.Component.IO.Mesh", # Needed to use components MeshOBJLoader, MeshSTLLoader, MeshVTKLoader "Sofa.Component.LinearSolver.Direct", @@ -160,7 +160,7 @@ def createScene(rootNode): rootNode.addObject('QPInverseProblemSolver', epsilon=2e-0, maxIterations=2500, tolerance=1e-7, responseFriction=0.8) else: - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=500, tolerance=1e-5) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=500, tolerance=1e-5) # Contact detection methods rootNode.addObject('CollisionPipeline') diff --git a/examples/tutorials/DiamondRobot/DiamondRobot.py b/examples/tutorials/DiamondRobot/DiamondRobot.py index d4247657..4d4dce62 100644 --- a/examples/tutorials/DiamondRobot/DiamondRobot.py +++ b/examples/tutorials/DiamondRobot/DiamondRobot.py @@ -20,7 +20,7 @@ def createScene(rootNode): "Sofa.Component.AnimationLoop", # Needed to use components FreeMotionAnimationLoop "Sofa.Component.Constraint.Lagrangian.Correction", # Needed to use components LinearSolverConstraintCorrection - "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components ProjectedGaussSeidelConstraintSolver + "Sofa.Component.Constraint.Lagrangian.Solver", # Needed to use components BlockGaussSeidelConstraintSolver "Sofa.Component.Constraint.Projective", # Needed to use components FixedProjectiveConstraint "Sofa.Component.Engine.Select", # Needed to use components BoxROI "Sofa.Component.IO.Mesh", # Needed to use components MeshVTKLoader @@ -35,7 +35,7 @@ def createScene(rootNode): # Constraint solver, here we use a Gauss Seidel algorithm rootNode.addObject('FreeMotionAnimationLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=500, tolerance=1e-8) + rootNode.addObject('BlockGaussSeidelConstraintSolver', maxIterations=500, tolerance=1e-8) # Robot robot = rootNode.addChild('Robot') diff --git a/examples/tutorials/PneunetGripper/details/step6-pneumaticActuatorAndPythonScriptController.py b/examples/tutorials/PneunetGripper/details/step6-pneumaticActuatorAndPythonScriptController.py index 1109fd50..4d836b94 100644 --- a/examples/tutorials/PneunetGripper/details/step6-pneumaticActuatorAndPythonScriptController.py +++ b/examples/tutorials/PneunetGripper/details/step6-pneumaticActuatorAndPythonScriptController.py @@ -8,7 +8,7 @@ def createScene(rootNode): rootNode.addObject('RequiredPlugin', name='Sofa.Component.AnimationLoop') # Needed to use components [FreeMotionAnimationLoop] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Correction') # Needed to use components [LinearSolverConstraintCorrection] - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to use components [ProjectedGaussSeidelConstraintSolver] + rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to use components [BlockGaussSeidelConstraintSolver] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Engine.Select') # Needed to use components [BoxROI] rootNode.addObject('RequiredPlugin', name='Sofa.Component.IO.Mesh') # Needed to use components [MeshSTLLoader,MeshVTKLoader] rootNode.addObject('RequiredPlugin', name='Sofa.Component.LinearSolver.Direct') # Needed to use components [SparseLDLSolver] @@ -25,7 +25,7 @@ def createScene(rootNode): rootNode.gravity.value = [-9810, 0, 0] rootNode.addObject('AttachBodyButtonSetting', stiffness=10) rootNode.addObject('FreeMotionAnimationLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', tolerance=1e-7, maxIterations=1000) + rootNode.addObject('BlockGaussSeidelConstraintSolver', tolerance=1e-7, maxIterations=1000) finger = rootNode.addChild('Finger') finger.addObject('EulerImplicitSolver', rayleighStiffness=0.1, rayleighMass=0.1) diff --git a/examples/tutorials/PneunetGripper/details/step7-grabTheCube.py b/examples/tutorials/PneunetGripper/details/step7-grabTheCube.py index 3d9ac980..0ae7e277 100644 --- a/examples/tutorials/PneunetGripper/details/step7-grabTheCube.py +++ b/examples/tutorials/PneunetGripper/details/step7-grabTheCube.py @@ -24,7 +24,7 @@ def createScene(rootNode): rootNode.addObject('RequiredPlugin', name='Sofa.Component.Collision.Geometry') # Needed to use components [LineCollisionModel,PointCollisionModel,TriangleCollisionModel] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Collision.Response.Contact') # Needed to use components [CollisionResponse] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Correction') # Needed to use components [GenericConstraintCorrection,UncoupledConstraintCorrection] - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to use components [ProjectedGaussSeidelConstraintSolver] + rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to use components [BlockGaussSeidelConstraintSolver] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Engine.Select') # Needed to use components [BoxROI] rootNode.addObject('RequiredPlugin', name='Sofa.Component.IO.Mesh') # Needed to use components [MeshOBJLoader,MeshSTLLoader,MeshVTKLoader] rootNode.addObject('RequiredPlugin', name='Sofa.Component.LinearSolver.Direct') # Needed to use components [SparseLDLSolver] @@ -48,7 +48,7 @@ def createScene(rootNode): 'showInteractionForceFields hideWireframe') rootNode.gravity.value = [-9810, 0, 0] rootNode.addObject('FreeMotionAnimationLoop') - rootNode.addObject('ProjectedGaussSeidelConstraintSolver', tolerance=1e-7, maxIterations=1000) + rootNode.addObject('BlockGaussSeidelConstraintSolver', tolerance=1e-7, maxIterations=1000) rootNode.addObject('CollisionPipeline') rootNode.addObject('BruteForceBroadPhase') rootNode.addObject('BVHNarrowPhase') diff --git a/examples/tutorials/PneunetGripper/details/step7-withSTLIB.py b/examples/tutorials/PneunetGripper/details/step7-withSTLIB.py index 5ed9dab6..2ffa545c 100644 --- a/examples/tutorials/PneunetGripper/details/step7-withSTLIB.py +++ b/examples/tutorials/PneunetGripper/details/step7-withSTLIB.py @@ -23,7 +23,7 @@ def createScene(rootNode): rootNode.addObject('RequiredPlugin', name='Sofa.Component.Collision.Geometry') # Needed to use components [LineCollisionModel,PointCollisionModel,TriangleCollisionModel] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Collision.Response.Contact') # Needed to use components [RuleBasedContactManager] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Correction') # Needed to use components [LinearSolverConstraintCorrection,UncoupledConstraintCorrection] - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to use components [ProjectedGaussSeidelConstraintSolver] + rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to use components [BlockGaussSeidelConstraintSolver] rootNode.addObject('RequiredPlugin', name='Sofa.Component.Engine.Select') # Needed to use components [BoxROI] rootNode.addObject('RequiredPlugin', name='Sofa.Component.LinearSolver.Direct') # Needed to use components [SparseLDLSolver] rootNode.addObject('RequiredPlugin', name='Sofa.Component.LinearSolver.Iterative') # Needed to use components [CGLinearSolver] diff --git a/examples/tutorials/PneunetGripper/pneunetgripper-tuto.html b/examples/tutorials/PneunetGripper/pneunetgripper-tuto.html index a92030e1..906f31a8 100644 --- a/examples/tutorials/PneunetGripper/pneunetgripper-tuto.html +++ b/examples/tutorials/PneunetGripper/pneunetgripper-tuto.html @@ -127,9 +127,9 @@
In this case, the controller allows to interactively inflate the cavity by pressing ctrl + ‘+’ and deflate it by pressing ctrl + ‘-’.
To solve the constraints, such as the one define by the pressure actuator, we have to add to the rootNode the component FreeMotionAnimationLoop that will build up the system including constraints. The component ProjectedGaussSeidelConstraintSolver will also be added to solve the constraints problem. Finally, we add the component LinearConstraintCorrection to the finger Node to take into account the correction due to the cavity constraint to the velocity and position:
+To solve the constraints, such as the one define by the pressure actuator, we have to add to the rootNode the component FreeMotionAnimationLoop that will build up the system including constraints. The component BlockGaussSeidelConstraintSolver will also be added to solve the constraints problem. Finally, we add the component LinearConstraintCorrection to the finger Node to take into account the correction due to the cavity constraint to the velocity and position:
rootNode.addObject('FreeMotionAnimationLoop')
-rootNode.addObject('ProjectedGaussSeidelConstraintSolver', maxIterations=10000, tolerance=1e-3)With all these components, the scene is now runable and can be used to inflate and deflate the finger.
@@ -211,7 +211,7 @@