Re: redesign term evaluation and assembling
On Thu, Jul 15, 2010 at 5:48 AM, Robert Cimrman cimr...@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!
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. :)
Greetings, Logan
r. [1] http://github.com/rc/sfepy
-- You received this message because you are subscribed to the Google Groups "sfepy-devel" group. To post to this group, send email to sfepy...@googlegroups.com. To unsubscribe from this group, send email to sfepy-devel...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sfepy-devel?hl=en.
On Thu, Jul 15, 2010 at 7:43 PM, Logan Sorenson logan.s...@gmail.com wrote:
On Thu, Jul 15, 2010 at 5:48 AM, Robert Cimrman cimr...@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 wasn't able to get to this during this weekend...hope I can find time soon.
Greetings, Logan
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. :)
Greetings, Logan
r. [1] http://github.com/rc/sfepy
-- You received this message because you are subscribed to the Google Groups "sfepy-devel" group. To post to this group, send email to sfepy...@googlegroups.com. To unsubscribe from this group, send email to sfepy-devel...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sfepy-devel?hl=en.
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
Hi Robert,
2010/7/26 Robert Cimrman cimr...@ntc.zcu.cz:
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".
This makes sense to do a release before embarking in the new direction. I'm going to be fairly busy for the next month and a half so I probably can't look into the code too much, but I hope I can do some testing and editing of the docs.
Best, Logan
cheers, r.
Greetings, Logan
r. [1] http://github.com/rc/sfepy
Hi Logan,
On 07/29/10 19:00, Logan Sorenson wrote:
Hi Robert,
2010/7/26 Robert Cimrmancimr...@ntc.zcu.cz:
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".
This makes sense to do a release before embarking in the new direction. I'm going to be fairly busy for the next month and a half so I probably can't look into the code too much, but I hope I can do some testing and editing of the docs.
Even helping with the docs would be awesome - I am just finishing the high level interface, committing heavily - it should be done today (rough edges to be expected). Due to the redesign the docs are quite out of sync. Now it seems it will actually work, so I will write better docstrings + tutorial on the new stuff.
I would also like to get the development version into femhub and try the new API in the web notebook...
cheers, r.
participants (2)
-
Logan Sorenson
-
Robert Cimrman