aboutsummaryrefslogtreecommitdiff
path: root/Tools/CodeGen/KrancThorn.m
Commit message (Collapse)AuthorAge
...
* 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.
* Fix typo in licence at top of every fileIan Hinder2010-03-17
|
* 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.
* 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
|
* 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
|
* 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
* Make common subexpression elimination (CSE) optional and disabled by defaultIan Hinder2009-04-28
| | | | This is now controlled with an option UseCSE to CreateThorn.
* Use cctk_lssh instead of cctk_lsh when calculating grid function extents. ↵Erik Schnetter2009-04-27
| | | | | | | | | | | | 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.
* Add new calculation specification "ConditionalOnKeywords", which allows a ↵Erik Schnetter2009-04-27
| | | | list of keyword parameters (instead of only a single keyword parameter) which have to be set for the calculation to be scheduled.
* Make "verbose" parameter an integer.Erik Schnetter2009-04-27
|
* Correct error in combining list of used include filesErik Schnetter2008-02-19
|
* Make "timelevels" parameter restrictedErik Schnetter2008-02-19
|
* Implement functionality to loop over all boundary points, including ghostErik Schnetter2008-02-19
| | | | points, and without synchronising afterwards.
* Made use of LoopControl optional.Ian Hinder2008-02-02
| | | | If you want to use it, pass UseLoopControl -> True to CreateKrancThorn.
* Erik: minor cosmetic changesIan Hinder2008-02-02
|
* Erik: added mandatory support for LoopControl.Ian Hinder2008-02-02
| | | | A subsequent patch will make this optional.
* Erik: Add triggered groups optionIan Hinder2008-02-02
|
* Erik: bugfix: Declare variable as localIan Hinder2008-02-02
|
* Erik: Add ability to specify number of timelevels for evolved variables at ↵Ian Hinder2008-02-02
| | | | runtime
* Erik's addition of Extended parametersIan Hinder2008-02-02
|
* Erik's cosmetic changes and small amount of debugging code in KrancThorn.mIan Hinder2008-02-02
|
* Added InheritedKeywordParametersianhin2007-02-15
| | | | | | SKIPPED: Distribution/build-distribution
* Added 'AllowedSymbols' key to calculation structures. Allows you to ↵ianhin2007-02-06
| | | | manually specify that certain symbols are allowed; e.g. inherited parameters; which Kranc cannot know about itself.
* Extra checking on tensorial nature of Shorthands list.ianhin2007-01-23
| | | | More descriptive error messages when calculations fail validation checks.
* Finite differencing expressions optimized by precalculating multiplesianhin2006-11-14
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Added parameter for every calculation '_calc_every' and '_calc_offset'ianhin2006-09-22
| | | | | | | | | | | | | | | | | | | 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.
* Note that we include Symmetry.h in the interface.ccl fileianhin2006-09-07
| | | | | | Add verbose parameter Add some support for SummationByParts (should still compile if thorn is not present)
* Bug fix: when asking for three timelevels for a nonevolved variable, ↵ianhin2006-07-01
| | | | actually schedule storage for them, rather than scheduling only one...
* Replacement for KrancThorns.m. This is a completely new API for Krancianhin2006-06-19
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.