Skip to content

[pull] master from sofa-framework:master#242

Merged
pull[bot] merged 1 commit intomcx:masterfrom
sofa-framework:master
Nov 11, 2025
Merged

[pull] master from sofa-framework:master#242
pull[bot] merged 1 commit intomcx:masterfrom
sofa-framework:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Nov 11, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

* Start removing assembly function from linear solvers

* move internal functions to protected

* cache factorization + cache invalidation

* remove more "assembly" functions

* fix AsyncSparseLDLSolver

* add missing templates to the factory

* CompositeLinearSystem can support multiple types of linear systems

* introduce preconditioned systems

* a bit of cleaning

* convert double to Real

* add an error if wrong type

* Restoration of the parameter controlling the assembly rate of the preconditioned matrix. It was the Data 'update_step' in PCGLinearSolver, but now it's the Data 'assemblingRate' in PreconditionedMatrixFreeSystem.

Benchmark of examples\Component\LinearSolver\Preconditioner\FEMBAR_PCG_JacobiPreconditioner.scn on 1000 time steps with variation of `assemblingRate`:

1: 700.128 FPS
2: 968.381 FPS
3: 1074.87 FPS
4: 1156.56 FPS
10: 1383.11 FPS
20: 1478.05 FPS
30: 1561.64 FPS
60: 1563.85 FPS

* restore removed Data with a deprecation layer

* restore initial parameter for regression tests

* fix PrecomputedLinearSolver

* mark WarpPreconditioner destructor as `override`

* minor cleaning

* simplify `checkLinearSystem` in WarpPreconditioner implementation

* add license header to RotationMatrixSystem header file

* fix typo in registration description of RotationMatrixSystem

* modernize code style

* add missing `RotationMatrixSystem.inl` to CMakeLists.txt

* replace `addSlave` with `addObject` in MatrixLinearSolver

This is to allow the added object to be initialized. Slaves are not initialized because visitors don't visit them. They are owned by their master, then it's up to their master to initialize them or not. There is no reason for a linear system to be a slave.

* add SOFA class macros for proper class hierarchy

* Missing space

* proper initialization of systems and solvers

* validate `l_linearSystem` type in `PCGLinearSolver`

* fix typo in error message of `PCGLinearSolver`

* validate `l_mainAssembledSystem` and handle missing or invalid linear systems in `RotationMatrixSystem`

* validate `l_linearSystem` type and ensure compatibility with `RotationMatrixSystem` in `WarpPreconditioner`

* don't link to itself

* refactor `RotationMatrixSystem` and `WarpPreconditioner` for clearer logic and enhanced matrix handling

* some comments

* proper deprecation

* update scene

* minor changes

* add `template` keyword to `get` and `getObjects` calls in `RotationMatrixSystem` for proper type resolution

* invert includes order to allow object factory to find the component module

* apply changes

* deprecation

* forgot a file

* simplify `checkLinearSystem` logic using `doCheckLinearSystem`

* add components that are created implicitly in the scene

* add a description to a class member

* see if regression test is happy

* rename `d_authorizeAssembly` to `d_enableAssembly`

* rename Data name

* fix call to MechanicalMultiVectorPeqBaseVectorVisitor but actually it is not called
@pull pull bot locked and limited conversation to collaborators Nov 11, 2025
@pull pull bot added the ⤵️ pull label Nov 11, 2025
@pull pull bot merged commit 60d44cf into mcx:master Nov 11, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant