Hi Logan,
On 07/16/10 01:43, Logan Sorenson wrote:
On Thu, Jul 15, 2010 at 5:48 AM, Robert Cimrmancimr...@ntc.zcu.cz wrote:
Hi all,
the next big change is (almost) done.
I have basically rewritten the term assembling and evaluation to be more hierarchical (more on this below), to have much less side effects and to assume less context.
By hierarchical I mean there is now
- ProblemDefinition.evaluate(), which calls
- evaluate() (in sfepy/fem/evaluate.py), which calls
- Equation.evaluate(), which calls (finally)
- Term.evaluate(), and, if assembling, Term.assemble_to()
As each level can be used by itself, this will IMHO greatly enhance (and simplify) the interactive use of the code, or building custom scripts with particular applications.
This sounds really interesting...I played with the interactive terms a few weeks ago and it was looking good, so this will probably bring things close to completion.
As ProblemDefinition.evaluate() changed completely, and eval_term_op() is not updated and will be removed, some tests fail for the moment:
49 test file(s) executed in 41.53 s, 13 failure(s) of 67 test(s)
That is why the code is at [1] only.
Basically, to fix them, one would need to follow tests/test_assembling.py, which was already updated for the new evaluation code. I am now leaving for holidays, so if somebody wants to dive into it before I return (next Sunday), it should not be that difficult. Any comments/criticisms welcome!
I'll see if I can make time this weekend, but I've got a lot of stuff going on here...so if anybody else can help out feel free!
I will do at least some of them today, to get back to "work mode".
The next steps are:
- clean up and update sfepy/fem/evaluate.py (remove eval_term(), eval_term_op, assemble_vector(), assemble_matrix, update evaluators)
- make all tests pass :)
- swig -> Cython, rewrite terms, couple with hermes,<joke>world domination</joke>
Cool, I've been studying hermes a lot lately which uses cython, so I hope I can help out some here. :)
That would be great! It is not only about the wrappers - I plan to revisit the inner assembling loop, to finally get rid off the element groups. Then it will be necessary to rewrite all the C code of terms anyway - perfect occasion to do it in Cython.
But before that, we should make another release, after all tests pass with the current changes. That way, there will be a fairly usable "last working version".
cheers, r.
Greetings, Logan
r. [1] http://github.com/rc/sfepy