Hi all,
I am just finishing a major rewrite of the time-stepping solvers in SfePy, with the aim to make those solvers actually usable for more than just simple quasi-static problems - for example, two elastodynamics solvers have been implemented: the Newmark method and the Bathe method.
The new implementation is purely algebraic - the solvers do not "see" the equations/problem etc., they work only with vectors and matrices. This should make adding new solvers quite easy. On the other hand, it required significant changes in Problem class and its handling of solvers, which in turn changed the way of creating a script or a problem description interactively. For the moment, see the updates in the "interactive" examples in git - the docs update is in progress. One of the important changes is that Problem.__init__() does not take solvers as arguments - Problem.set_solver() needs to be called instead.
The problem description files need not be modified, except two small changes required in those that use a time-stepping ('save_steps' -> 'save_times' option renamed and enhanced, 'verbose' option has to have a True value to see the time-stepping info).
You can check the new code on github under the pull request #446 [1]. The new solvers are used in examples/linear_elasticity/elastodynamic.py (work in progress). Some rough edges are to be expected, so let me know under the PR or by asking here.
r.
FYI: Merged, do not hesitate to ask in case of problems.
r.
On 02/15/2018 03:56 PM, Robert Cimrman wrote:
Hi all,
I am just finishing a major rewrite of the time-stepping solvers in SfePy, with the aim to make those solvers actually usable for more than just simple quasi-static problems - for example, two elastodynamics solvers have been implemented: the Newmark method and the Bathe method.
The new implementation is purely algebraic - the solvers do not "see" the equations/problem etc., they work only with vectors and matrices. This should make adding new solvers quite easy. On the other hand, it required significant changes in Problem class and its handling of solvers, which in turn changed the way of creating a script or a problem description interactively. For the moment, see the updates in the "interactive" examples in git - the docs update is in progress. One of the important changes is that Problem.__init__() does not take solvers as arguments - Problem.set_solver() needs to be called instead.
The problem description files need not be modified, except two small changes required in those that use a time-stepping ('save_steps' -> 'save_times' option renamed and enhanced, 'verbose' option has to have a True value to see the time-stepping info).
You can check the new code on github under the pull request #446 [1]. The new solvers are used in examples/linear_elasticity/elastodynamic.py (work in progress). Some rough edges are to be expected, so let me know under the PR or by asking here.
r.
participants (1)
-
Robert Cimrman