aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2013-09-11 15:22:34 +0200
committerIan Hinder <ian.hinder@aei.mpg.de>2013-09-11 15:22:54 +0200
commit9aece0e0b635e788fb58079419fde8686cf8fce8 (patch)
treefe7a345c92b5348b40e9799849808a1cafdaa67a
parent40d2ed8e5683e2ec54f7da98c6f0ea3ece3e4639 (diff)
Param.m: Move calculation and common parameter structures into their own functions
This changes the ordering of entries in param.ccl.
-rw-r--r--Tools/CodeGen/Param.m54
1 files changed, 27 insertions, 27 deletions
diff --git a/Tools/CodeGen/Param.m b/Tools/CodeGen/Param.m
index 730a7c5..fcc0d3d 100644
--- a/Tools/CodeGen/Param.m
+++ b/Tools/CodeGen/Param.m
@@ -331,46 +331,46 @@ DefFn[
integerParameterDefinitions[parameters]],
Map[krancKeywordParamStruct, keywordParameterDefinitions[parameters]]]];
+DefFn[
+ commonParameterStructures[evolutionTimelevels_] :=
+ { krancParamStruct[{Name -> "verbose", Default -> 0, Steerable -> Always}, "CCTK_INT", False],
-Options[CreateKrancParam] = ThornOptions;
-CreateKrancParam[evolvedGroups_, nonevolvedGroups_,
- evolvedODEGroups_, nonevolvedODEGroups_, groups_, thornName_,
- parameters_,
- evolutionTimelevels_, defaultEvolutionTimelevels_,
- calcs_, opts:OptionsPattern[]] :=
- Module[
- {otherTimelevelsParam, genericfdStruct, verboseStruct, calcEveryStructs, calcOffsetStructs,
- allInherited, allExtended, implementationNames,
- userImplementations, userImplementations2, implementations,
- params, paramspec, param},
-
- (* reals and ints are symbols containing parameter names. The
- inherited ones have implementation names as well *)
-
- otherTimelevelsParam =
- {
- Name -> "other_timelevels",
+ { Name -> "other_timelevels",
Type -> "CCTK_INT",
Default -> 1,
Description -> "Number of active timelevels for non-evolved grid functions",
Visibility -> "restricted",
AllowedValues -> {{Value -> ToString[0] <> ":" <> ToString[evolutionTimelevels],
Description -> ""}},
- Steerable -> Recover
- };
+ Steerable -> Recover}}];
+
+DefFn[
+ calculationParameterStructures[calcs_List] :=
+ Join[
+ Map[krancParamStruct[{Name -> lookup[#, Name] <> "_calc_every",
+ Default -> 1,
+ Steerable -> Always}, "CCTK_INT", False] &,
+ calcs],
+ Map[krancParamStruct[{Name -> lookup[#, Name] <> "_calc_offset",
+ Default -> 0,
+ Steerable -> Always}, "CCTK_INT", False] &,
+ calcs]]];
- verboseStruct = krancParamStruct[{Name -> "verbose", Default -> 0, Steerable -> Always}, "CCTK_INT", False];
- calcEveryStructs = Map[krancParamStruct[{Name -> lookup[#, Name] <> "_calc_every", Default -> 1, Steerable -> Always}, "CCTK_INT", False] &, calcs];
- calcOffsetStructs = Map[krancParamStruct[{Name -> lookup[#, Name] <> "_calc_offset", Default -> 0, Steerable -> Always}, "CCTK_INT", False] &, calcs];
+Options[CreateKrancParam] = ThornOptions;
+CreateKrancParam[evolvedGroups_, nonevolvedGroups_,
+ evolvedODEGroups_, nonevolvedODEGroups_, groups_, thornName_,
+ parameters_,
+ evolutionTimelevels_, defaultEvolutionTimelevels_,
+ calcs_, opts:OptionsPattern[]] :=
+ Module[
+ {params, paramspec, param},
- params = Join[{verboseStruct},
+ params = Join[commonParameterStructures[evolutionTimelevels],
userParameterStructs[parameters],
MoLParameterStructures[
thornName, evolvedGroups, evolvedODEGroups, groups,
evolutionTimelevels, defaultEvolutionTimelevels],
- {otherTimelevelsParam},
- calcEveryStructs,
- calcOffsetStructs,
+ calculationParameterStructures[calcs],
CactusBoundary`GetParameters[variablesFromGroups[evolvedGroups, groups], evolvedGroups]];
paramspec = {Implementations -> usedParameters[parameters, opts],