diff options
author | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-04-13 03:57:09 +0100 |
---|---|---|
committer | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-04-13 03:57:49 +0100 |
commit | bba4d88b2179a2a748aa878c8e9ce2a034e12d1f (patch) | |
tree | 9d5e16006626ef1dd9c41d258c007ac7fab2693c /Tools | |
parent | f93e3e96485903060c7e921a60f851a8fdf44d0b (diff) |
Calculation.m: Merge f_i and f_ii derivatives into the same kernels since they use the same grid points
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/CodeGen/Calculation.m | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Tools/CodeGen/Calculation.m b/Tools/CodeGen/Calculation.m index aacc279..851fa0f 100644 --- a/Tools/CodeGen/Calculation.m +++ b/Tools/CodeGen/Calculation.m @@ -189,18 +189,20 @@ separateDerivativesInCalculation[calc_] := sepDerivs = Flatten[Map[Cases[derivs, #] &, sepPat],1]; - (* sepDerivs = GatherBy[sepDerivs, Function[d, d /. {pd_[var_, i_] -> pd[var,i], pd_[var_, i_, i_] -> pd[var,i]}]]; *) + sepDerivs = GatherBy[sepDerivs, Function[d, d /. {pd_[var_, i_] -> pd[var,i], pd_[var_, i_, i_] -> pd[var,i]}]]; - sepDerivs = Map[List, sepDerivs]; + (* sepDerivs = Map[List, sepDerivs]; *) derivCalc[derivs_List] := Module[ {calc1, currentGroups, localGroups, derivNames = Map[derivGFName,derivs]}, + Print["derivs = ", derivs]; + Print["derivNames = ", derivNames]; calc1 = mapReplace[calc, Equations, Thread[derivNames -> derivs]]; calc1 = mapReplace[calc1, Schedule, Map[#<>" before "<>lookup[calc,Name] &, lookup[calc,Schedule]]]; - calc1 = mapReplace[calc1, Name, lookup[calc,Name]<>"_"<>StringJoin[Riffle[derivGFName2/@derivs,"_"]]]; + calc1 = mapReplace[calc1, Name, StringReplace[lookup[calc,Name]<>"_"<>StringJoin[Riffle[derivGFName2/@derivs,"_"]],"PDstandardNth"->""]]; calc1 = Append[calc1, CachedVariables -> (First/@derivs)]; currentGroups = lookup[calc, LocalGroups, {}]; localGroups = Join[currentGroups, Map[{ToString@#<>"_group", {#}} &, derivNames]]; |