aboutsummaryrefslogtreecommitdiff
path: root/Tools/CodeGen
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2010-02-13 14:38:55 -0600
committerErik Schnetter <schnetter@cct.lsu.edu>2010-02-13 14:38:55 -0600
commit6d38532dbcea097264c28fb160879f578f05b275 (patch)
tree4e485757b875b264f9934461fa64c4e3998b09fe /Tools/CodeGen
parent8190749490b634fa8cc479385fa7bffc2586c4d1 (diff)
Introduce new Kranc argument DefaultEvolutionTimelevels, defaulting to the value of EvolutionTimelevels. This allows choosing the number of time levels that are active by default.
Diffstat (limited to 'Tools/CodeGen')
-rw-r--r--Tools/CodeGen/KrancThorn.m25
1 files changed, 16 insertions, 9 deletions
diff --git a/Tools/CodeGen/KrancThorn.m b/Tools/CodeGen/KrancThorn.m
index 9ca57ec..38c7c9a 100644
--- a/Tools/CodeGen/KrancThorn.m
+++ b/Tools/CodeGen/KrancThorn.m
@@ -31,7 +31,7 @@ BeginPackage["sym`"];
InheritedRealParameters,InheritedIntParameters,InheritedKeywordParameters,
ExtendedRealParameters,ExtendedIntParameters,ExtendedKeywordParameters,
Parameters,
- EvolutionTimelevels,
+ EvolutionTimelevels, DefaultEvolutionTimelevels,
UseCSE,
PartialDerivatives, InheritedImplementations, ConditionalOnKeyword, ConditionalOnKeywords, ReflectionSymmetries, ZeroDimensions, CollectList, Interior, InteriorNoSync, Boundary, BoundaryWithGhosts, Where, PreDefinitions, AllowedSymbols, UseLoopControl};
@@ -84,7 +84,8 @@ VerifyNewCalculation[calc_] :=
cktCheckNamedArgs[l_] :=
Module[{allowed = {Calculations,
DeclaredGroups, Implementation, InheritedImplementations,
- EvolutionTimelevels, RealParameters, IntParameters, KeywordParameters,
+ EvolutionTimelevels, DefaultEvolutionTimelevels,
+ RealParameters, IntParameters, KeywordParameters,
InheritedRealParameters,InheritedIntParameters,InheritedKeywordParameters,
ExtendedRealParameters,ExtendedIntParameters,ExtendedKeywordParameters,
PartialDerivatives, ReflectionSymmetries, ZeroDimensions, UseLoopControl,
@@ -103,7 +104,8 @@ replaceDots[x_] :=
CreateKrancThorn[groupsOrig_, parentDirectory_, thornName_, opts___] :=
Module[{calcs, declaredGroups, implementation,
- inheritedImplementations, includeFiles, evolutionTimelevels,
+ inheritedImplementations, includeFiles,
+ evolutionTimelevels, defaultEvolutionTimelevels,
realParams, intParams, keywordParams,
inheritedRealParams, inheritedIntParams, inheritedKeywordParams,
extendedRealParams, extendedIntParams, extendedKeywordParams,
@@ -129,6 +131,7 @@ CreateKrancThorn[groupsOrig_, parentDirectory_, thornName_, opts___] :=
includeFiles = lookupDefault[{opts},
includeFiles, {}];
evolutionTimelevels = lookupDefault[{opts}, EvolutionTimelevels, 3];
+ defaultEvolutionTimelevels = lookupDefault[{opts}, DefaultEvolutionTimelevels, evolutionTimelevels];
realParams = lookupDefault[{opts}, RealParameters, {}];
intParams = lookupDefault[{opts}, IntParameters, {}];
realParamDefs = makeFullParamDefs[realParams];
@@ -192,7 +195,8 @@ CreateKrancThorn[groupsOrig_, parentDirectory_, thornName_, opts___] :=
(* Construct the interface file *)
InfoMessage[Terse, "Creating interface file"];
interface = createKrancInterface[nonevolvedGroups,
- evolvedGroups, rhsGroups, groups, evolutionTimelevels, implementation,
+ evolvedGroups, rhsGroups, groups,
+ evolutionTimelevels, implementation,
inheritedImplementations, includeFiles, useLoopControl];
(* Print["interface == ", interface];*)
@@ -203,13 +207,14 @@ CreateKrancThorn[groupsOrig_, parentDirectory_, thornName_, opts___] :=
realParamDefs, intParamDefs, keywordParams,
inheritedRealParams, inheritedIntParams, inheritedKeywordParams,
extendedRealParams, extendedIntParams, extendedKeywordParams,
- evolutionTimelevels,
+ evolutionTimelevels, defaultEvolutionTimelevels,
calcs];
(* Construct the schedule file *)
InfoMessage[Terse, "Creating schedule file"];
schedule = createKrancScheduleFile[calcs, groups, evolvedGroups,
- rhsGroups, nonevolvedGroups, thornName, evolutionTimelevels];
+ rhsGroups, nonevolvedGroups, thornName,
+ evolutionTimelevels];
boundarySources = CactusBoundary`GetSources[evolvedGroups, groups,
implementation, thornName];
@@ -359,7 +364,8 @@ createKrancConfiguration[useLoopControl_] :=
createKrancInterface[nonevolvedGroups_, evolvedGroups_, rhsGroups_, groups_,
- evolutionTimelevels_, implementation_, inheritedImplementations_,
+ evolutionTimelevels_,
+ implementation_, inheritedImplementations_,
includeFiles_, useLoopControl_] :=
Module[{registerEvolved, (*registerConstrained,*)
@@ -536,7 +542,7 @@ createKrancParam[evolvedGroups_, nonevolvedGroups_, groups_, thornName_,
reals_, ints_, keywords_,
inheritedReals_, inheritedInts_, inheritedKeywords_,
extendedReals_, extendedInts_, extendedKeywords_,
- evolutionTimelevels_,
+ evolutionTimelevels_, defaultEvolutionTimelevels_,
calcs_] :=
Module[{nEvolved, (*nPrimitive,*) evolvedMoLParam, evolvedGFs,
@@ -586,7 +592,7 @@ createKrancParam[evolvedGroups_, nonevolvedGroups_, groups_, thornName_,
{
Name -> "timelevels",
Type -> "CCTK_INT",
- Default -> evolutionTimelevels,
+ Default -> defaultEvolutionTimelevels,
Description -> "Number of active timelevels",
Visibility -> "restricted",
AllowedValues -> {{Value -> ToString[0] <> ":" <> ToString[evolutionTimelevels],
@@ -869,6 +875,7 @@ CreateKrancThornTT[groups_, parentDirectory_, thornName_, opts___] :=
declaredGroups = lookupDefault[{opts}, DeclaredGroups, {}];
evolutionTimelevels = lookupDefault[{opts}, EvolutionTimelevels, 3];
+ defaultEvolutionTimelevels = lookupDefault[{opts}, DefaultEvolutionTimelevels, evolutionTimelevels];
InfoMessage[Info, "Declared groups: " <> ToString[declaredGroups]];
InfoMessage[Terse, "Computing reflection symmetries"];
reflectionSymmetries = computeReflectionSymmetries[declaredGroups, groups];