diff options
-rw-r--r-- | Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/MathematicaCompat.h | 2 | ||||
-rw-r--r-- | Examples/EulerSR.m | 8 | ||||
-rw-r--r-- | Examples/kranc.th | 18 | ||||
-rw-r--r-- | Tools/CodeGen/ConservationCalculation.m | 39 | ||||
-rw-r--r-- | Tools/CodeGen/Kranc.m | 2 | ||||
-rw-r--r-- | Tools/CodeGen/KrancThorn.m | 5 |
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}, |