| Commit message (Collapse) | Author | Age |
... | |
| |
|
| |
|
|
|
|
| |
grid points. This may allow generating vectorised code in the future.
|
|
|
|
| |
Jacobians in the corresponding global variables.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
Add new FD operators. PD operators are translated into FD operators by
applying Jacobians. Add a set of rules to simplify FD expressions,
similar to the rules for PD expressions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Generate code with 80 characters per line.
Introduce new function AssignVariableInLoop, which differs from
AssignVariable in that it is meant to handle grid point values, and
never integers.
Introduce new function TestForNaN, which explicitly tests grid point
values for nan.
|
| |
|
| |
|
|
|
|
| |
Create option tables only once, then re-use them
|
| |
|
| |
|
|
|
|
| |
points, and without synchronising afterwards.
|
|
|
|
| |
If you want to use it, pass UseLoopControl -> True to CreateKrancThorn.
|
| |
|
|
|
|
| |
A subsequent patch will make this optional.
|
|
|
|
|
|
| |
This is done automatically nowadays, and this code is currently called
in level mode, when it should be called in global mode. This causes a
segfault.
|
| |
|
| |
|
|
|
|
| |
runtime
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Previous version would introduce a sign error in some cases. In
practice, this bug affected only the second order second derivative,
and the first order one sided derivative.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Support for new calculation convention
|
|
|
|
|
|
|
| |
wrapper function which calls a hand-written function in GenericFD
depending on the loop type required. A function pointer to the 'Body'
function is provided, and the Body function is autogenerated.
Advantage is that the looping logic is now hand-written.
|
|
|
|
|
|
| |
Include Symmetry.h
Fix return type and values for scheduled functions (i.e. void)
|
|
|
|
|
|
| |
Add verbose parameter
Add some support for SummationByParts (should still compile if thorn is not present)
|
| |
|