aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2013-09-11 17:12:46 +0200
committerIan Hinder <ian.hinder@aei.mpg.de>2013-09-11 17:12:46 +0200
commitc178d4707d65c1402b41289b70da72e8347dabc5 (patch)
tree695335bac88b3741358beeb2b90b60ea62474ff7
parent7cbaac094ca6dcb34b09e8db0546eed8555923e5 (diff)
Determine evolved groups using MoLEvolved group option rather than passing list
-rw-r--r--Tools/CodeGen/MoL.m14
-rw-r--r--Tools/CodeGen/Param.m2
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]];