- removed comment
McLachlan dissipation should be disabled by default
In the current version of McLachlan, the parameter apply_dissipation is set to "always" by default. The corresponding "epsdiss" is set to 0 by default. The dissipation calculation in McLachlan is expensive due to the way that it iterates over variables. Use of the Dissipation thorn or similar is usually much faster. I had not realised that apply_dissipation was "always" by default. I think it should be "never".
OK to change? (with announcement to the mailing list)
Keyword:
Comments (13)
-
-
- changed status to open
- removed comment
-
- changed status to open
- removed comment
-
- changed milestone to ET_2012_05
- removed comment
-
repo owner - changed status to open
- assigned issue to
- removed comment
Erik: would you mind to apply this? Ian is busy and I am not sure what precisely should be applied (ie just the parameter change or also the change in Kranc code).
-
- removed comment
Only the default value of the parameter should be changed.
I am trying this change (only changing the default for apply_dissipation from "always" to "never"). For some reason, this breaks the test cases
KerrSchild-rotating-180 (from RotatingSymmetry180) KerrSchild-rotating-90 (from RotatingSymmetry90) which don't set any of McLachlan's dissipation parameters, and which should therefore currently not be applying dissipation. The differences look significant.
I don't understand why there are differences in these test cases, and am therefore not applying this patch at the moment.
-
- changed milestone to ET_2012_11
- removed comment
-
- changed status to resolved
- removed comment
The current version of McLachlan already has the dissipation set to zero by default.
-
- changed status to open
- removed comment
This ticket is actually about the keyword apply_dissipation, not about the value of the dissipation parameter. Re-opening.
-
- removed comment
I have just tried to set the default for apply_dissipation to "never" and I don't see any issues with the test cases mentioned above.
-
- changed status to open
- removed comment
Good! Maybe it is a weirdness for my machine only.
Could you commit this?
-
- changed status to open
- removed comment
-
- changed status to resolved
- removed comment
Committed.
- Log in to comment
What about modifying the way in which McLachlan iterates over variables? One calculation per variable should be easy to realise:
dissCalcs = Table[ { Name -> BSSN <> "_Dissipation_" <> ToString[var /. {Tensor[n_,] -> n}], Schedule -> {"IN " <> BSSN <> "_evolCalcGroup " <> "AFTER (" <> BSSN <> "_RHS1 " <> BSSN <> "_RHS2)"}, ConditionalOnKeyword -> {"apply_dissipation", "always"}, Where -> InteriorNoSync, Shorthands -> {epsdiss[ua]}, Equations -> { epsdiss[ua] -> EpsDiss, dot[var] -> dot[var] + epsdiss[ux] PDdiss[var,lx] } }, {var, {phi, gt[la,lb], Xt[ui], trK, At[la,lb], alpha, A, beta[ua], B[ua]}} ];
Otherwise, this is okay to change.
Do you then also want to change the default epsdiss value to be the same as for thorn Dissipation?