aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Tools/CodeGen/KrancThorn.m26
1 files changed, 17 insertions, 9 deletions
diff --git a/Tools/CodeGen/KrancThorn.m b/Tools/CodeGen/KrancThorn.m
index 16f783f..4fde955 100644
--- a/Tools/CodeGen/KrancThorn.m
+++ b/Tools/CodeGen/KrancThorn.m
@@ -82,6 +82,21 @@ DefFn[
splitCalculationsProcessCode[cIn_Code, opts___] :=
ApplyToObjectField[cIn, "Calculations", SplitCalculations]];
+DefFn[
+ distributeOptionsProcessCode[cIn_Code, opts___] :=
+ Module[
+ {c = cIn},
+ c = SetObjectField[
+ c, "Calculations",
+ Map[Join[#, {Groups -> GetObjectField[c, "Groups"]}] &,
+ GetObjectField[c, "Calculations"]]];
+
+ c = SetObjectField[
+ c, "Calculations",
+ Map[Append[#, Parameters -> AllNumericParameters[GetObjectField[c, "Parameters"]]] &,
+ GetObjectField[c, "Calculations"]]];
+ c]];
+
(* --------------------------------------------------------------------------
Thorn generation (main entry point for non-tensorial thorns)
-------------------------------------------------------------------------- *)
@@ -225,17 +240,10 @@ CreateKrancThorn[groupsOrig_, parentDirectory_, thornName_, opts:OptionsPattern[
c = MoLProcessCode[c, opts];
(* ------------------------------------------------------------------------
- Add options to calculations
+ Add selected code options to calculations
------------------------------------------------------------------------ *)
- c = SetObjectField[c, "Calculations",
- Map[Join[#, {Groups -> GetObjectField[c, "Groups"]}] &,
- GetObjectField[c, "Calculations"]]];
-
- c = SetObjectField[
- c, "Calculations",
- Map[Append[#, Parameters -> AllNumericParameters[GetObjectField[c, "Parameters"]]] &,
- GetObjectField[c, "Calculations"]]];
+ c = distributeOptionsProcessCode[c, opts];
(* ------------------------------------------------------------------------
Split calculations according to SplitVars option