aboutsummaryrefslogtreecommitdiff
path: root/Tools/CodeGen
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2011-06-03 18:11:41 +0200
committerIan Hinder <ian.hinder@aei.mpg.de>2011-06-03 18:11:41 +0200
commit763e38daee0f8808d1497e78e75a91fe8dfd3fc7 (patch)
tree64e14e522f195c556ffe6f9e1a5dedc8ed921fa4 /Tools/CodeGen
parent3e6f454f556bb811148fffb66a69e90e5000b9ea (diff)
Temporary commit
Diffstat (limited to 'Tools/CodeGen')
-rw-r--r--Tools/CodeGen/ConservationCalculation.m39
-rw-r--r--Tools/CodeGen/Kranc.m2
-rw-r--r--Tools/CodeGen/KrancThorn.m5
3 files changed, 28 insertions, 18 deletions
diff --git a/Tools/CodeGen/ConservationCalculation.m b/Tools/CodeGen/ConservationCalculation.m
index fc7af04..9e5ac3f 100644
--- a/Tools/CodeGen/ConservationCalculation.m
+++ b/Tools/CodeGen/ConservationCalculation.m
@@ -89,23 +89,27 @@ consVars[calc_] :=
(* Return the list of variables to reconstruct in a calculation *)
primitiveVars[calc_] :=
- Module[{allGFs, calcSyms, gfsUsed, conserved, primitive},
- allGFs = allGroupVariables[lookup[calc, Groups]];
- calcSyms = calculationSymbols[calc];
- gfsUsed = Intersection[allGFs, calcSyms];
- conserved = consVars[calc];
- primitive = Complement[gfsUsed, conserved];
- primitive];
+ lookup[calc, Primitives];
+
+ (* Module[{allGFs, calcSyms, gfsUsed, conserved, primitive}, *)
+ (* allGFs = allGroupVariables[lookup[calc, Groups]]; *)
+ (* calcSyms = calculationSymbols[calc]; *)
+ (* gfsUsed = Intersection[allGFs, calcSyms]; *)
+ (* conserved = consVars[calc]; *)
+ (* primitive = Complement[gfsUsed, conserved]; *)
+ (* primitive]; *)
(* Return the variables for which Left and Right GFs need to be created *)
lrGFs[calc_] :=
- Module[{allGFs, calcSyms, gfsUsed, conserved, primitive},
- allGFs = allGroupVariables[lookup[calc, Groups]];
- calcSyms = calculationSymbols[calc];
- gfsUsed = Intersection[allGFs, calcSyms];
- conserved = consVars[calc];
- primitive = Complement[gfsUsed, conserved];
- Join[primitive, conserved]];
+ Join[primitiveVars[calc], consVars[calc]];
+
+ (* Module[{allGFs, calcSyms, gfsUsed, conserved, primitive}, *)
+ (* allGFs = allGroupVariables[lookup[calc, Groups]]; *)
+ (* calcSyms = calculationSymbols[calc]; *)
+ (* gfsUsed = Intersection[allGFs, calcSyms]; *)
+ (* conserved = consVars[calc]; *)
+ (* primitive = Complement[gfsUsed, conserved]; *)
+ (* Join[primitive, conserved]]; *)
reconstructCalc[calc_, i_] :=
{
@@ -162,14 +166,16 @@ primitivesCalc[calc_, thornName_] :=
{
Name -> lookup[calc, Name] <> "_primitives",
Schedule -> {"in MoL_PostStep after " <> thornName <>"_ApplyBCs"},
- Equations -> lookup[calc, PrimitiveEquations]
+ Equations -> lookup[calc, PrimitiveEquations],
+ Shorthands -> lookup[calc, Shorthands]
};
conservedCalc[calc_] :=
{
Name -> lookup[calc, Name] <> "_conserved",
Schedule -> {"at POSTINITIAL"},
- Equations -> lookup[calc, ConservedEquations]
+ Equations -> lookup[calc, ConservedEquations],
+ Shorthands -> lookup[calc, Shorthands]
};
conservedIntercellCalc[calc_, i_] :=
@@ -177,6 +183,7 @@ conservedIntercellCalc[calc_, i_] :=
Name -> lookup[calc, Name] <> "_intercell_conserved_" <> ToString[i],
Schedule -> {"in MoL_CalcRHS after " <> lookup[calc, Name] <> "_reconstruct_" <> ToString[i]},
+ Shorthands -> lookup[calc, Shorthands],
Equations ->
Module[{vars = Join[primitiveVars[calc], consVars[calc]]},
Join[lookup[calc, ConservedEquations] /. (Map[# -> leftSymbol[#] &, vars]),
diff --git a/Tools/CodeGen/Kranc.m b/Tools/CodeGen/Kranc.m
index d09031d..2224d18 100644
--- a/Tools/CodeGen/Kranc.m
+++ b/Tools/CodeGen/Kranc.m
@@ -85,7 +85,7 @@ Contents, ThornName, BaseImplementation, EvolvedGFs, PrimitiveGFs,
Groups, Calculation, GridFunctions, Shorthands, Equations, Parameter,
Value, UsesFunctions, ArgString, Conditional, Conditionals, D1, D2, D3, D11, D22,
D33, D21, D31, D32, Textual, TriggerGroups, Include, RHSGroups, Tags,
-Steerable, Never, Always, Recover};
+Steerable, Never, Always, Recover, Primitives};
{ExcisionGFs};
diff --git a/Tools/CodeGen/KrancThorn.m b/Tools/CodeGen/KrancThorn.m
index c2e1289..d41fb51 100644
--- a/Tools/CodeGen/KrancThorn.m
+++ b/Tools/CodeGen/KrancThorn.m
@@ -343,6 +343,8 @@ CreateKrancThornTT[groups_, parentDirectory_, thornName_, opts___] :=
expCalcs = Map[makeCalculationExplicit, calcs];
expConsCalcs = Map[makeCalculationExplicit, consCalcs];
+ Print[expConsCalcs];
+
InfoMessage[Info, "Group definitions:", groups];
expDerivs = Flatten[Map[MakeExplicit,derivs],1];
@@ -378,7 +380,8 @@ makeCalculationExplicit[calc_] :=
CollectList -> MakeExplicit,
Equations -> MakeExplicit,
PrimitiveEquations -> MakeExplicit,
- ConservedEquations -> MakeExplicit}];
+ ConservedEquations -> MakeExplicit,
+ Primitives -> MakeExplicit}];
makeGroupExplicit[g_] :=
Module[{variables, newVariables, newGroup},