[ET Trac] [Einstein Toolkit] #1066: Implement IMEX integrators in MoL
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Mon Sep 16 19:52:10 CDT 2013
#1066: Implement IMEX integrators in MoL
------------------------------------+---------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Resolution: | Keywords:
------------------------------------+---------------------------------------
Comment (by rhaas):
The code in line 659 of the patch seems to be incorrect to me since it
will always require a RHS2 for evolved grid arrays.
There is also no test included that would allow us to check whether the
merge succeeded.
I attach an updated patch that applies against rev202 of MoL (ie after the
multipatch changes).
After this code has been merged in (or before if we find that the tests
fail), we should rewrite the registration and changetype code. This is
currently very messy with very much duplicated code and very long.
Registration etc. should be possible with very few lines of code and a C++
map object, something like:
{{{
enum MoLType {MoL_Type_Invalid = 0, MoL_Type_SafeAndrRestore.
MoL_Type_Constrained, MoL_Type_Evolved, MoL_Type_EvolvedSlow,
MoL_Type_EvolvedIMEX};
map<int,int> RegisteredVariables;
map<init,int> RHSIndex, RHS2Index;
void MoLRegisterEvolved(groupIdx,rhsIdx) {
RegisteredVariables[groupIdx] = MoL_Type_Evolved;
RHSIndex[groupIdx] = rhsIdx;
}
void MoLChangeToConstrained(groupIdx) {
RegisteredVariables[groupIdx] = MoL_Type_Constrained;
if(RHSIndex.count(groupIdx)) RHSIndex.erase(groupIdx);
}
}}}
Rather than the 197 lines currently used.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1066#comment:3>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list