Hi all,
the code has underwent another major update of the core functionality, so this e-mail should both warn you and raise your interest [1] :).
Short summary
The fundamental "change of philosophy" is, that term arguments (basically materials and variables) are now assigned explicitely at the term construction time. Their "values" can be changed later at will, and the term can be re-evaluated. Before the change, the terms were constructed only with names of the real arguments - those had to be assigned later, e.g. in the assembling loop. This lead sometimes to problems like what more needs to be assigned in order to be able to evaluate a term. The current design is IMHO clearer, and better suited for interactive work e.g. in ipython (isfepy).
Details
See also previous thread "refactoring of terms".
Besides lots of smaller tweaks, there are two major changes, that change the high-level API significantly. Here by high-level I mean the level of tests/test_high_level.py - the example input files were mostly unaffected, apart those doing some advanced post-processing.
The major changes are: (a) variables are now an attribute of Equations, instead of ProblemDefinition (b) DOF connectivity setup moved from variables to fields.
Both changes simplified significantly the assembling loop, and improved term evaluation - this is where the most visible changes are, see the updated tests and examples (commit e6ab7410ce9cf594057cf7114d697f35f3f510e0).
The next aim is to finish the API prototyped in tests/test_high_level.py.
Also, I have to fix the sfepy.homogenization module, as it was not updated yet to reflect the changes (-> hence the one failing test).
Best regards, r.
participants (2)
-
Logan Sorenson
-
Robert Cimrman