aboutsummaryrefslogtreecommitdiff
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
parent3e6f454f556bb811148fffb66a69e90e5000b9ea (diff)
Temporary commit
-rw-r--r--Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/MathematicaCompat.h2
-rw-r--r--Examples/EulerSR.m8
-rw-r--r--Examples/kranc.th18
-rw-r--r--Tools/CodeGen/ConservationCalculation.m39
-rw-r--r--Tools/CodeGen/Kranc.m2
-rw-r--r--Tools/CodeGen/KrancThorn.m5
6 files changed, 46 insertions, 28 deletions
diff --git a/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/MathematicaCompat.h b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/MathematicaCompat.h
index bf5936d..86b70eb 100644
--- a/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/MathematicaCompat.h
+++ b/Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/MathematicaCompat.h
@@ -49,4 +49,4 @@
#define Pi 3.14159265358979323846264d0
#endif
-#define UnitStep(x) ( (x) > 0 ? 1 : 0 )
+#define StepFunction(x) ( (x) > 0 ? 1 : 0 )
diff --git a/Examples/EulerSR.m b/Examples/EulerSR.m
index 2c58c96..e868742 100644
--- a/Examples/EulerSR.m
+++ b/Examples/EulerSR.m
@@ -109,7 +109,10 @@ eulerCons =
pBar -> p, (* from previous timestep *)
(* Start loop *)
- Sequence@@Join@@Table[
+ f -> 10,
+
+ Sequence@@Map[#[[1]] -> IfThen[f > 10.^-12, #[[2]], #[[1]]] &,
+
{Z -> tau + Den + pBar,
Ssq -> S[li] S[lj] Euc[ui,uj],
vsq -> Ssq/Z^2,
@@ -121,8 +124,7 @@ eulerCons =
f -> pEOS - pBar,
cs -> Sqrt[gamma (gamma-1) epsi/h],
df -> vsq cs^2 - 1,
- pBar -> pBar - f/df},
- {i, 1, 5}],
+ pBar -> pBar - f/df}],
(* end of loop *)
diff --git a/Examples/kranc.th b/Examples/kranc.th
index aa6905a..05eff76 100644
--- a/Examples/kranc.th
+++ b/Examples/kranc.th
@@ -22,10 +22,10 @@ CactusBase/Boundary
CactusBase/CartGrid3D
CactusBase/CoordBase
CactusBase/Fortran
-CactusBase/IOBasic
+# CactusBase/IOBasic
CactusBase/IOUtil
CactusBase/InitBase
-CactusBase/LocalInterp
+#CactusBase/LocalInterp
CactusBase/SymBase
CactusBase/Time
@@ -63,7 +63,13 @@ Carpet/LoopControl
# Kranc support thorn
KrancHydroNumericalTools/GenericFD
-KrancHydroExamples/Euler
-KrancHydroExamples/EulerAuto
-KrancHydroExamples/Advect
-KrancHydroExamples/Burgers
+# KrancHydroExamples/Euler
+# KrancHydroExamples/EulerAuto
+KrancHydroExamples/EulerSR
+# KrancHydroExamples/Advect
+# KrancHydroExamples/Burgers
+
+Carpet/CarpetIOHDF5
+ExternalLibraries/HDF5
+ExternalLibraries/zlib
+CactusUtils/TimerReport
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},