[ET Trac] #2956: CarpetX: Allow conditional expressions after SCHEDULE declarations

Maxwell Rizzo trac-noreply at einsteintoolkit.org
Thu Jul 2 11:31:28 CDT 2026


#2956: CarpetX: Allow conditional expressions after SCHEDULE declarations

 Reporter: Maxwell Rizzo
   Status: new
Milestone: 
  Version: 
     Type: enhancement
 Priority: minor
Component: CarpetX

Current Cactus/CarpetX behavior allows conditional expressions in `schedule.ccl`, but only before a `SCHEDULE foo` block. This means that routines whose `READS`/`WRITES` or other actions/metadata that depend on runtime parameters currently require multiple near-duplicate schedule blocks, one for each branch.

For example, a routine such as `function_set_xyz` may optionally read or write gridfunctions `x`, `y`, and `z` depending on parameters such as `param_set_x`, `param_set_y`, and `param_set_z`. Scheduling each branch properly would take 2^3 = 8 schedule blocks.

Allowing (single or multiple) conditional expressions after the scheduled routine declaration would let one schedule block cover all branches of behavior. The parser/build system could expand the conditional schedule metadata at compile time, while the actual selected branch would still be determined at runtime from result of the conditionals.

Should be a relatively safe,"opt-in" style feature that requires a thorn to move their conditionals somewhere that previously was invalid. In principle it does admit some risk if used improperly. A thorn could cover all possible branches determined by runtime parameters without explicitly scheduling them, supporting some branches of behavior accidentally.

--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2956/carpetx-allow-conditional-expressions
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.einsteintoolkit.org/pipermail/trac/attachments/20260702/ec7529fe/attachment.htm>


More information about the Trac mailing list