| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
| |
CalculationFunction.m, and fixed bug in KrancGroups
Not sure how the function containingGroups in KrancGroups.m ever
worked. It used variablesInGroup instead of groupVariables to
determine the variables present in a group. The functions are poorly
named, but variablesInGroup requires an additional argument which was
not being supplied and has a subtly different meaning.
|
| |
|
|
|
|
|
| |
Having more than one loop in a calculation is never used and it
complicates the code.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This option, which defaults to False, prevents having grid functions
on the left hand side and the right hand side in any single
calculation.
|
| |
|
|
|
|
| |
value of EvolutionTimelevels. This allows choosing the number of time levels that are active by default.
|
|
|
|
|
|
| |
effect as Interior, but does not synchronise the variables. This can be used e.g. to calculate the RHS terms.
Introduce a way to access grid function that may or may not have storage. If a local variable name matches the pattern "eT*L", then it is read from the corresponding grid function only if the parameter useMatter is true; otherwise it is set to zero. This is obviously intended for the TmunuBase variables. This is implemented via a new Kranc function maybeAssignVariableInLoop.
|
|
|
|
|
|
|
|
| |
Use cctk_lssh instead of cctk_lsh to loop over grid functions
Rename schedule item "apply boundary conditions" to "select boundary conditions"
Introduce parameter for number of timelevels for RHS grid functions
|
|
|
|
| |
This is now controlled with an option UseCSE to CreateThorn.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will allow future optimisations with cache-aligned memory allocations.
Correct an error in declaring local variables for partial derivatives.
Don't register constrained variables, which is in general not necessary
but which can use much memory.
Register symmetries in the schedule group SymmetryRegister instad of at
basegrid.
|
|
|
|
| |
list of keyword parameters (instead of only a single keyword parameter) which have to be set for the calculation to be scheduled.
|
| |
|
| |
|
| |
|
|
|
|
| |
points, and without synchronising afterwards.
|
|
|
|
| |
If you want to use it, pass UseLoopControl -> True to CreateKrancThorn.
|
| |
|
|
|
|
| |
A subsequent patch will make this optional.
|
| |
|
| |
|
|
|
|
| |
runtime
|
| |
|
| |
|
|
|
|
|
|
| |
SKIPPED:
Distribution/build-distribution
|
|
|
|
| |
manually specify that certain symbols are allowed; e.g. inherited parameters; which Kranc cannot know about itself.
|
|
|
|
| |
More descriptive error messages when calculations fail validation checks.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and divisions of grid spacing. CreateDifferencingHeader returns a
list of 'pre-definitions' which are then computed outside the equation
loop by CalculationFunction. AKA "why can't my compiler do such a
simple optimization?"
Partial derivatives are now assumed to commute, so occurrences of
PD[f,2,1] are replaced in the equations by PD[f,1,2]. The unused ones
are automatically not computed, as before. I wish that this had made a
noticeable speed improvement (would have been big), but the compiler
must have been intelligent enough to see these.
Added khalf, kthird, ktwothird, kfourthird, keightthird computed
outside the loop. What compiler on earth would not see these
optimizations??
Factor out common expressions i.e. xx_ y_ + xx_ z_ -> xx(y+z). Intel,
I have lost all respect for you.
Remove RegularExpression from schedule matching, as it is not
supported in Mathematica 4. Replaced with a simple StringMatchQ.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
so that the calculation only happens if cctk_iteration % calc_every ==
calc_offset.
Fixed CollectList in KrancThorn.m (it was disabled).
Enabled MMA Simplify for expressions even when a CollectList has not
be specified.
Changed SYNC logic in KrancThorn.m: Calculations are now only SYNCed
if they are restricted to the interior of the grid (using
Where). Previously, all calculations were synced. This is a
performance issue. Further, calculations in MoL_CalcRHS and
MoL_RHSBoundaries are *never* SYNCed now. The SYNC of the evolved
variables that always happens in cactus_boundaries.c should be enough.
WARNING: you probably want to test that this does not break your code.
|
|
|
|
|
|
| |
Add verbose parameter
Add some support for SummationByParts (should still compile if thorn is not present)
|
|
|
|
| |
actually schedule storage for them, rather than scheduling only one...
|
|
which is designed to be much easier to use and much easier to
maintain. Instead of multiple types of thorn, there is just one, and
most of the functionality from the old types is present in this new
type. Some functionality (for example the TRIGGERS mechanism for
evaluated quantities) has not been implemented, but if there is demand
these things can be added. The new API is documented in
Doc/KrancDoc.tex and there is an example in Examples/Maxwell/EMTT2.m.
This is such a significant change that the major version number of
Kranc has been increased from 1 to 2.
|