diff options
author | Ian Hinder <ian.hinder@aei.mpg.de> | 2013-09-11 17:12:46 +0200 |
---|---|---|
committer | Ian Hinder <ian.hinder@aei.mpg.de> | 2013-09-11 17:12:46 +0200 |
commit | c178d4707d65c1402b41289b70da72e8347dabc5 (patch) | |
tree | 695335bac88b3741358beeb2b90b60ea62474ff7 | |
parent | 7cbaac094ca6dcb34b09e8db0546eed8555923e5 (diff) |
Determine evolved groups using MoLEvolved group option rather than passing list
-rw-r--r-- | Tools/CodeGen/MoL.m | 14 | ||||
-rw-r--r-- | Tools/CodeGen/Param.m | 2 |
2 files changed, 13 insertions, 3 deletions
diff --git a/Tools/CodeGen/MoL.m b/Tools/CodeGen/MoL.m index 8632ca9..a71a185 100644 --- a/Tools/CodeGen/MoL.m +++ b/Tools/CodeGen/MoL.m @@ -618,10 +618,20 @@ DefFn[ groups2]]; DefFn[ - MoLParameterStructures[thornName_, declaredGroups_, evolvedGroups_, evolvedODEGroups_, groups_, evolutionTimelevels_, + MoLParameterStructures[thornName_, declaredGroups_, groups_, evolutionTimelevels_, defaultEvolutionTimelevels_] := Module[ - {nEvolved, nevolvedODE}, + {allEvolvedGroups, evolvedODEGroups, evolvedGroups, nEvolved, nevolvedODE}, + + allEvolvedGroups = + Select[declaredGroups, lookup[GroupExtras[groupFromName[#,groups]], MoLEvolved, False] &]; + + evolvedODEGroups = + Select[allEvolvedGroups, + (lookup[GroupExtras[groupFromName[#,groups]], GridType, "GF"] === "array") &]; + + evolvedGroups = Complement[allEvolvedGroups, evolvedODEGroups]; + nEvolved = Length[variablesFromGroups[evolvedGroups, groups]]; (* nPrimitive = Length[variablesFromGroups[nonevolvedGroups, groups]];*) (* nPrimitive = Length[getConstrainedVariables[evolvedGroups, groups]];*) diff --git a/Tools/CodeGen/Param.m b/Tools/CodeGen/Param.m index 57901d3..b21bff1 100644 --- a/Tools/CodeGen/Param.m +++ b/Tools/CodeGen/Param.m @@ -367,7 +367,7 @@ CreateKrancParam[declaredGroups_, evolvedGroups_, evolvedODEGroups_, groups_, params = Join[commonParameterStructures[evolutionTimelevels], userParameterStructs[parameters], MoLParameterStructures[ - thornName, declaredGroups, evolvedGroups, evolvedODEGroups, groups, + thornName, declaredGroups, groups, evolutionTimelevels, defaultEvolutionTimelevels], calculationParameterStructures[calcs], CactusBoundary`GetParameters[variablesFromGroups[evolvedGroups, groups], evolvedGroups]]; |