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' ->
renamed and enhanced, 'verbose' option has to have a True value to see the
You can check the new code on github under the pull request #446 . 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.