[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