aboutsummaryrefslogtreecommitdiff
path: root/Tools/CodeGen
Commit message (Collapse)AuthorAge
* Revert "Merge branch 'master' of github.com:ianhinder/Kranc"Erik Schnetter2010-05-02
| | | | | This reverts commit 815307e624fdb8c0ee2eefc644c9bbd8244ad7f2, reversing changes made to 8e006230f24be02831d390eaad9b90b7a7c77d2c.
* Merge branch 'master' of github.com:ianhinder/KrancErik Schnetter2010-05-02
|\ | | | | | | | | | | Conflicts: Tools/CodeGen/CalculationFunction.m Tools/CodeGen/Thorn.m
| * Remove CreateSetterSourceWrapper and call CreateSetterSource directlyIan Hinder2010-04-03
| |
| * Interface.m: Remove duplicate Kranc` context on BeginPackage lineIan Hinder2010-04-03
| |
| * Replace sym context with Kranc context in Kranc.m. Also move interface ↵Ian Hinder2010-04-03
| | | | | | | | functions into Interface.m.
| * KrancThorn.m: Remove useless wrapper for creating configuration fileIan Hinder2010-04-03
| |
| * Move schedule generation from KrancThorn.m to Schedule.mIan Hinder2010-04-03
| | | | | | | | Also move NonevolvedTimelevels to KrancGroups.m
| * Move parameter file generation from KrancThorn.m to Param.mIan Hinder2010-04-03
| |
| * KrancThorn.m: Split into sectionsIan Hinder2010-04-03
| |
| * allow arbitray expressions for conditionsRoland Haas2010-03-23
| |
| * add options for steerability of paramtersRoland Haas2010-03-23
| |
* | Add support for vectorisation of generated code.Erik Schnetter2010-05-02
|/ | | | Vectorisation needs to be explicitly enabled by setting -DKRANC_VECTORS at build time.
* Introduce a new tensor type "DDD_sym", corresponding to the symmetryErik Schnetter2010-03-18
| | | | of dgt_i(jk).
* CalculationFunction.m: Tidied up formatting of MMA fileIan Hinder2010-03-18
|
* CalculationFunction.m: Remove more unused codeIan Hinder2010-03-18
|
* Removed unused code and switched to using KrancGroups in ↵Ian Hinder2010-03-17
| | | | | | | | | | 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.
* CalculationFunction.m: Rearrange source file and remove spaces at ends of linesIan Hinder2010-03-17
| | | | | | | This source file contained a large number of functions in no particular order. I have split them into labelled categories. I have also removed spaces at the ends of all lines. It's probably not worth trying to perform a diff across this commit.
* Fix typo in licence at top of every fileIan Hinder2010-03-17
|
* Remove support for sub-block grid functionsIan Hinder2010-03-17
| | | | | | | | The idea of sub-block grid functions was to allow a calculation to operate differently on different sub-blocks of the domain. This was never used, and is now achieved by calling the calculation with arguments which specify the region of the domain to loop over. Hence, the old sub-block code is being removed.
* Remove support for original finite differencing implementationIan Hinder2010-03-17
| | | | | | | | | | The original implementation of finite differencing in Kranc used hard-coded finite difference operator macros in GenericFD. It has not been tested in years and probably doesn't even work any more. The new implementation allows the user to create arbitrary operators and can do everything that the old one could. As we are planning to replace the current implementation with something more user-friendly, to simplify the code we are removing the old method at this point.
* Remove internal support for more than one loop in a calculationIan Hinder2010-03-17
| | | | | Having more than one loop in a calculation is never used and it complicates the code.
* CalculationFunction.m: Remove ability to sync groups in the source fileIan Hinder2010-03-17
| | | | | | | | | | | | | | | This feature was never really used, and was only introduced before we really understood what we were doing. The idea was that you could have multiple loops in a single calculation and you might have to sync between them. For example, in the first loop you may compute some quantity, and in the second you might compute its derivative. This would have to be in the second loop because otherwise it would lead to incorrect results. However, this scheme only allows synchronisation, it does not take account of symmetry, interpatch or physical boundary conditions, and possibly doesn't work correctly with mesh refinement. Anything which can be done with this scheme can be done simply by using a second calculation, so in the interests of maintainability and code conciseness, the feature has been removed.
* CalculationFunction.m: Remove unused function calculationUsedGroupsIan Hinder2010-03-17
|
* Remove obsolete packagesIan Hinder2010-03-17
|
* CalculationFunction.m: Tidy code formatting, remove commented code.Ian Hinder2010-03-10
|
* Declare variables only when they are first usedIan Hinder2010-03-10
| | | | | | | This allows simultaneous declaration and assignment as per Erik's previous commit, which seems to give a noticeable performance increase, at least with the PGI compiler on Kraken, and also allows multiple assignments to the same variable in a single calculation.
* Remove const statements where possibleIan Hinder2010-03-08
|
* Obtain UseLoopControl directly using OptionValueIan Hinder2010-03-02
|
* Obtain EvolutionTimelevels directly using OptionValueIan Hinder2010-03-02
|
* Tidy up formatting and remove commented code in KrancThorn.mIan Hinder2010-03-02
|
* Use Mathematica OptionValue mechanism to access options in CreateThornIan Hinder2010-03-02
|
* Catch assignment to grid functions differentiated in same calculationIan Hinder2010-03-02
| | | | | | | Assignment to grid functions which are differentiated in the same calculation leads to results which are dependent on the order of the loop over grid points, which is almost certainly not what is intended. Kranc will now throw an exception if you try to do this.
* Add option ProhibitAssignmentToGridFunctionsReadIan Hinder2010-03-02
| | | | | | This option, which defaults to False, prevents having grid functions on the left hand side and the right hand side in any single calculation.
* Start passing all CreateThorn options to lower level functionsIan Hinder2010-03-02
|
* CalculationFunction.m: Replace Mathematica's line-breaking with our ownIan Hinder2010-03-02
| | | | | | | | | Mathematica's implementation of line-breaking in CForm sometimes splits lines in the middle of tokens and adds continuation backslashes to the end of the split line. In combination with the indentation that we apply in Kranc, this can cause the tokens to be broken by whitespace. This commit inhibits Mathematica's line breaking and replaces it with an algorithm which splits lines only on whitespace.
* CalculationFunction.m: Change the way that assignments are converted to stringsIan Hinder2010-03-02
|
* TensorTools.m: Make toggleIndex externally visibleIan Hinder2010-03-02
|
* Dereference pointer correcctly when checking whether to accessErik Schnetter2010-02-13
| | | | TmunuBase variables.
* Declare and assign to variables at the same time.Erik Schnetter2010-02-13
| | | | | | | | | | Introduce new Kranc functions DeclareAssignVariable, DeclareAssignVariableInLoop, MaybeAssignVariableInLoop, DeclareMaybeAssignVariableInLoop. Comment out all code that only declares variables. Change all assignments to declare variables as well. Declare all variables as constant. Access TmunuBase grid functions only if they have storage; otherwise, assume that they are zero.
* Use explicit offsets di, dj, dk to evaluate the stencilsErik Schnetter2010-02-13
|
* Use int instead of CCTK_INT for grid point indices.Erik Schnetter2010-02-13
|
* Declare dir* variables as integer instead of realErik Schnetter2010-02-13
|
* Introduce new Kranc argument DefaultEvolutionTimelevels, defaulting to the ↵Erik Schnetter2010-02-13
| | | | value of EvolutionTimelevels. This allows choosing the number of time levels that are active by default.
* Introduce a new grid function iterator InteriorNoSync. This has the same ↵Erik Schnetter2010-01-09
| | | | | | 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.
* Provide capability GenericFDErik Schnetter2009-11-13
| | | | | | | | 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
* Convert index expressions explicitly to int for stencils that depend on ↵Erik Schnetter2009-04-28
| | | | local variables. Intel 11 does not automatically perform this conversion.
* Add debug statements to CSE routineErik Schnetter2009-04-28
|
* Make common subexpression elimination (CSE) optional and disabled by defaultIan Hinder2009-04-28
| | | | This is now controlled with an option UseCSE to CreateThorn.
* CalculationFunction.m: Change PageWidth back to 120Ian Hinder2009-04-28
| | | | | | There is a bug in CForm which combines indentation and splitting of identifiers, causing the output to be incorrect. This is alleviated significantly with a PageWidth of 120, rather than 80.
* Declare DeclareVariablesInLoopVectorised and AssignVariablesInLoopVectorised.Erik Schnetter2009-04-27
|