Hi all,
I am just finishing a major rewrite of the timestepping solvers in SfePy, with the aim to make those solvers actually usable for more than just simple quasistatic 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 timestepping ('save_steps' > 'save_times' option renamed and enhanced, 'verbose' option has to have a True value to see the timestepping 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 timestepping solvers in SfePy, with the aim to make those solvers actually usable for more than just simple quasistatic 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 timestepping ('save_steps' > 'save_times' option renamed and enhanced, 'verbose' option has to have a True value to see the timestepping 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