From 9aece0e0b635e788fb58079419fde8686cf8fce8 Mon Sep 17 00:00:00 2001 From: Ian Hinder Date: Wed, 11 Sep 2013 15:22:34 +0200 Subject: Param.m: Move calculation and common parameter structures into their own functions This changes the ordering of entries in param.ccl. --- Tools/CodeGen/Param.m | 54 +++++++++++++++++++++++++-------------------------- 1 file 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], -- cgit v1.2.3