77from Sofa .Core import Node
88from typing import override
99
10- import splib
11-
10+ from splib .simulation .ode_solvers import addImplicitODE
11+ from splib .simulation .linear_solvers import addLinearSolver
12+ from splib .simulation .headers import setupLagrangianCollision
13+ from splib .simulation .headers import setupPenalityCollisionHeader
14+ from splib .simulation .headers import setupDefaultHeader
1215
1316@dataclasses .dataclass
1417class SimulationSolversParameters (BaseNodeModifierParameters ):
@@ -24,15 +27,16 @@ class SimulationSolversParameters(BaseNodeModifierParameters):
2427 @override
2528 @AffectedNodes (1 )
2629 def modify (self , owner , node : list [Node ]) -> list [Node ]:
27- splib .simulation .ode_solvers .addImplicitODE (node [0 ], static = self .staticODE , ** self .kwargs )
28- splib .simulation .linear_solvers .addLinearSolver (node [0 ], iterative = self .iterative ,
29- iterations = self .iterations ,
30- tolerance = self .tolerance ,
31- threshold = self .threshold ,
32- template = self .template ,
33- constantSparsity = self .constantSparsity ,
34- parallelInverseProduct = self .parallelInverseProduct ,
35- ** self .kwargs )
30+ addImplicitODE (node [0 ], static = self .staticODE , ** self .kwargs )
31+ addLinearSolver (node [0 ],
32+ iterative = self .iterative ,
33+ iterations = self .iterations ,
34+ tolerance = self .tolerance ,
35+ threshold = self .threshold ,
36+ template = self .template ,
37+ constantSparsity = self .constantSparsity ,
38+ parallelInverseProduct = self .parallelInverseProduct ,
39+ ** self .kwargs )
3640 return [owner ]
3741
3842
@@ -41,7 +45,7 @@ def modify(self, owner, node : list[Node]) -> list[Node]:
4145class SimulationSettingsParameters (BaseNodeModifierParameters ):
4246 enableCollisionDetection : bool = False
4347 useLagrangian : bool = False
44- displayFlags : list [str ] = dataclasses .field (default_factory = lambda : ["showVisualModels " ])
48+ displayFlags : list [str ] = dataclasses .field (default_factory = lambda : ["showBehavior " ])
4549 backgroundColor : list [float ] = dataclasses .field (default_factory = lambda : [0.8 ,0.8 ,0.8 ,1 ])
4650
4751 #Collision detection specific
@@ -85,18 +89,18 @@ def _addConstraintCorrectionToMechanicalNodes(node, constraintCorrectionType : s
8589 @AffectedNodes (1 )
8690 def modify (self , owner , node : list [Node ]) -> list [Node ]:
8791 if (self .useLagrangian ):
88- splib . simulation . headers . setupLagrangianCollision (node [0 ],
89- enableCollision = self .enableCollisionDetection ,
90- displayFlags = self .displayFlags ,
91- backgroundColor = self .backgroundColor ,
92- parallelComputing = self .parallelComputing ,
93- alarmDistance = self .alarmDistance ,
94- contactDistance = self .contactDistance ,
95- frictionCoef = self .frictionCoef ,
96- tolerance = self .tolerance ,
97- maxIterations = self .maxIterations ,
98- stick = self .stick ,
99- ** self .kwargs )
92+ setupLagrangianCollision (node [0 ],
93+ enableCollision = self .enableCollisionDetection ,
94+ displayFlags = self .displayFlags ,
95+ backgroundColor = self .backgroundColor ,
96+ parallelComputing = self .parallelComputing ,
97+ alarmDistance = self .alarmDistance ,
98+ contactDistance = self .contactDistance ,
99+ frictionCoef = self .frictionCoef ,
100+ tolerance = self .tolerance ,
101+ maxIterations = self .maxIterations ,
102+ stick = self .stick ,
103+ ** self .kwargs )
100104
101105
102106 nodeLinearSolver = node [0 ].getLinearSolver (0 )
@@ -109,20 +113,20 @@ def modify(self, owner, node : list[Node]) -> list[Node]:
109113 return [owner ] + touchedNodes
110114
111115 elif self .enableCollisionDetection :
112- splib . simulation . headers . setupPenalityCollisionHeader (node [0 ],
113- displayFlags = self .displayFlags ,
114- backgroundColor = self .backgroundColor ,
115- parallelComputing = self .parallelComputing ,
116- alarmDistance = self .alarmDistance ,
117- contactDistance = self .contactDistance ,
118- stick = self .stick ,
119- ** self .kwargs )
116+ setupPenalityCollisionHeader (node [0 ],
117+ displayFlags = self .displayFlags ,
118+ backgroundColor = self .backgroundColor ,
119+ parallelComputing = self .parallelComputing ,
120+ alarmDistance = self .alarmDistance ,
121+ contactDistance = self .contactDistance ,
122+ stick = self .stick ,
123+ ** self .kwargs )
120124 return [owner ]
121125
122126 else :
123- splib . simulation . headers . setupDefaultHeader (node [0 ],
124- displayFlags = self .displayFlags ,
125- backgroundColor = self .backgroundColor ,
126- parallelComputing = self .parallelComputing ,
127- ** self .kwargs )
127+ setupDefaultHeader (node [0 ],
128+ displayFlags = self .displayFlags ,
129+ backgroundColor = self .backgroundColor ,
130+ parallelComputing = self .parallelComputing ,
131+ ** self .kwargs )
128132 return [owner ]
0 commit comments