| Commit message (Collapse) | Author | Age |
|
|
|
| |
We don't need to replace t -> cctk_time any more, because we define t as a constant.
|
|
|
| |
This means it can be different for CaKernel
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
on a calculation member variable
The "caller" function is the one that is actually scheduled (in the C case) and which calls the looping function with the body function as argument. This separation is not needed for all targets, so make it optional.
|
|
|
|
|
| |
calculation member function
This allows it to be customized based on the target type.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Auxiliary/Cactus/KrancNumericalTools/GenericFD/src/MathematicaCompat.h
Examples/kranc.th
Tools/CodeGen/Kranc.m
Tools/CodeGen/KrancTensor.m
Tools/CodeGen/Schedule.m
Tools/CodeGen/Thorn.m
|
| |\ |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
for non-vectorized codes
|
| | |
| | |
| | |
| | |
| | | |
instead of symbols
Using Mathematica strings for variable names makes it possible to access variables with names containing underscores from other thorns.
|
| | |
| | |
| | |
| | |
| | |
| | | |
with Where -> Everywhere
This is the default, and would lead to operators which read off the edge of the grid.
|
| | | |
|
| | | |
|
| | |
| | |
| | | |
The factoring of complex expressions is very slow. In one case, skipping the factoring reduced thorn-generation time from 90 minutes to 40 seconds.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- CodeGenC.m still contains Fortran variants. These might be moved into CodeGenFortran.m.
- Several other modules essentially need to pull in all three packages due to newly broken abstraction barriers. This can be fixed incrementally.
- Indent and format all three files consistently
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This must be enabled via an option UseOpenCL->True, similar to
vectorisation.
* When generating code for a calculation, stringify the kernel and
call the OpenCL run time, when OpenCL code should be generated.
* Stringify Differencing.h when OpenCL is used.
* Move certain function calls out of the body of the generated code
and into the wrapper, e.g. screen output and checking whether
grid functions have memory.
|
| | |
| | |
| | |
| | | |
body functions
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Partial derivative definitions can now depend on Mathematica variables
corresponding to parameters defined in IntParameters. These parameters
should be defined with an AllowedValues -> {1, 2, 3, …}
entry. Derivative operators are created for all possible values of the
parameter. At run-time, a switch statement in the grid function loop
selects which set of operators are used. Only one parameter can
currently be used.
|
| | |
| | |
| | |
| | | |
in conditionals. Also add a couple more simplification rules for the vectorisation.
|
| | |
| | |
| | |
| | | |
expressions in more straightforward way.
|
| |/
|/| |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(1) vec_load cannot be used on constants, it can only be used to
access array elements. Replacing UseVectors by False is just a band
aid. vec_load was attached to a routine defining and setting a
variable; really, it should be attached to a routine accessing array
elements, but Kranc doesn't use such an abstraction yet.(2) ToReal is
introduced, but must be removed again for integer expressions such as
the conditions controlling if statements. I added band-aid code to
Conditional[] to remove it. The vectorization routines already handle
IfThen, Pow etc., but Conditional isn't visible to them.
|
| |
| |
| |
| |
| | |
Correct the vectorisation code for vector sizes >2 when the array size
is smaller than the vector size
|
| |
| |
| | |
Make a general mechanism for ensuring that certain grid functions are not accessed based on a condition. This mechanism is only used internally at the moment, but can be extended later to the user level.
|
| |
| |
| |
| | |
If multiple sequential IfThen expressions appear at the head of the RHS of a set of equations with the same condition, they are now pulled out into a separate if(){...} statement.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
conversions and thus generates faster code.
Correct code generation for static functions that evaluate the derivative operators.
|
|\ \ |
|
| | |
| | |
| | |
| | | |
There are currently some McLachlan-specific group names hard-coded into Kranc which are only accessed based on a grid scalar predicate. This commit takes these into account by ignoring them when checking for storage.
|
| |/ |
|
| |
| |
| |
| | |
This is Erik's vectorisation working tree from 13-Oct-2010
|