[ET Trac] [Einstein Toolkit] #572: Change scoping of TmunuBase parameter to allow parameter checking in other thorns

Einstein Toolkit trac-noreply at einsteintoolkit.org
Wed Sep 21 11:11:17 CDT 2011


#572: Change scoping of TmunuBase parameter to allow parameter checking in other
thorns
-------------------------------+--------------------------------------------
  Reporter:  filga@…           |       Owner:        
      Type:  defect            |      Status:  review
  Priority:  major             |   Milestone:        
 Component:  Other             |     Version:        
Resolution:                    |    Keywords:        
-------------------------------+--------------------------------------------

Comment (by eschnett):

 Making the parameters steerable is not possible since the execution
 schedule is decided on startup, not dynamically.

 In this case, the easiest solution is probably indeed to check the
 parameters support_old_CalcTmunu_mechanism and/or stress_energy_at_RHS.
 Both could be made restricted. The parameter stress_energy_storage should
 remain private; instead, the grid scalar stress_energy_state needs to be
 examined, since storage may change at run time, and it is much simpler to
 change a grid scalar than to steer a parameter.

 The "friend" mechanism is used to push one's own grid variables into
 another thorn, not only to access another thorn's variables. This is
 necessary for the high-level function inlining that Cactus supports, an
 important performance optimization. These days, I would not recommend
 using "friend" any more, since there are other, cleaner abstractions
 available for this.

 I would support a patch to make support_old_CalcTmunu_mechanism and/or
 stress_energy_at_RHS restricted.



 To make thorns less finnicky over parameters one would have to use
 accumulator parameters, akin to MoL's number of evolved grid functions. I
 believe Cactus doesn't support boolean accumulator parameters, hence one
 would use integers instead, and thorns requiring the old CalcTmunu
 mechanism and/or Tmunu at RHS would add to this parameter. Of course, once
 these requirements depend on other parameters, things become more complex,
 and one would need some run-time logic.

 Since this can become complex, and since complex things tend to fail and
 frustrate people, it's often easier to just check for errors in paramcheck
 and require users to do the right thing.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/572#comment:4>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list