[ET Trac] [Einstein Toolkit] #1797: allow new timelevels to be created at runtime

Einstein Toolkit trac-noreply at einsteintoolkit.org
Fri Jul 24 04:14:21 CDT 2015


#1797: allow new timelevels to be created at runtime
--------------------------------+-------------------------------------------
 Reporter:  rhaas               |       Owner:                     
     Type:  enhancement         |      Status:  new                
 Priority:  optional            |   Milestone:                     
Component:  Cactus              |     Version:  development version
 Keywords:  Cactus Carpet PUGH  |  
--------------------------------+-------------------------------------------
 The set of patches in

 https://bitbucket.org/cactuscode/cactus/branch/rhaas%2FunlimitedTimelevels
 https://bitbucket.org/cactuscode/cactuspugh/branch/rhaas%2FunlimitedTimelevels
 https://bitbucket.org/eschnett/carpet/branch/rhaas%2FunlimitedTimelevels

 extend the flesh and the PUGH and Carpet drivers such that user thorns can
 enable more timelevels than the TIMELEVELS attribute in interface.ccl
 specifies.

 This separates the number of {{{_p}}} and {{{_p_p}}} etc. variables, which
 continues to be controlled by interface.ccl's TIMELEVELS attribute, from
 the number of timelevels that are accessible via {{{CCTK_VarDataPtr()}}}.

 This means that evolution thorns can ask for only ask many timelevels as
 they need for their own evolution algorithm (so 2 of MoL based thorns) and
 don't have to worry about how many timelevels Carpet may require for time
 interpolation. Similarly some MoL evolution methods (for example AB type
 methods) require multiple past timelevels of the RHS variables which MoL
 can enable by its own when using this functionality.

 Their should be very little user visible changes, mostly since few thorns
 actually needed to know the number of timelevels. The exisiting flesh
 functions {{{CCTK_MaxTimeLevels}}} continue to return the value set in
 TIMELEVELS while new functions {{{CCTK_MaxActiveTimeLevels}}} return the
 maximum number of timelevels that were ever activated or
 {{{CCTK_MaxTimeLevels}}}, whichever is larger.

 A possible improvement would be to make the existing
 {{{CCTK_MaxTimeLevels}}} return what {{{CCTK_MaxActiveTimeLevels}}}, yet
 no user code should ever need knowledge of {{{CCTK_MaxTimeLevels}}} anyway
 since it only ever returned the value set in {{{interface.ccl}}} so only
 drivers etc. should have used it to check for invalid timelevel
 parameters.

 The downside of that approach is that it changes the meaning of an
 existing flesh function rather than introducing a new one and deprecating
 the old one. This is fine if the meaning of {{{CCTK_MaxTimeLevels}}}
 really is "upper bound on {{{CCTK_ActiveTimeLevels}}} that could have been
 seen" rather than "the value of TIMELEVELS from interface.ccl".

 The patches pass all tests.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1797>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list