aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Parallelize on the level of variables rather than grid points.HEADmasterAnton Khirnov2022-09-06
| | | | The latter has higher overhead.
* Drop unused crap, optimize.Anton Khirnov2017-06-30
|
* Cartoonize.Anton Khirnov2016-03-24
|
* Improve commenteschnett2013-04-05
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@195 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* fix incorrect error message introduced in r191rhaas2013-03-16
| | | | | | | | the message affected evolved slow variables where it would output the currently registered fast evolved variables instead of the slow ones. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@194 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Round via lrint() instead of floor()eschnett2013-02-21
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@193 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* output list of currently registerd variables when exceeding the accumulator ↵rhaas2013-02-15
| | | | | | | | | | | | | | limit Currently when a thorn tries to register more evolved/constrained/sandr variables than the respective parameters allow, MoL aborts with an error message "You have tried to register more evolved variables than the accumulator parameter MoL_Num_Evolved_Variables allows. Check that you are accumulating onto this parameter correctly." which is not terribly helpful in finding out why this is happening. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@191 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* MoL Updateeschnett2013-01-22
| | | | | | | | | | | | | | | | | | New integrator Euler. This is an explicit, first-order method, mostly useful for debugging. New integrators AB (Adams-Bashforth) with various orders. These are explicit integrators using several past timelevels to provide higher-order integration with a single RHS evaluation each. Introduce LinearCombination, a generic routine to calculate linear combinations of grid functions. This simplifies existing code, and can be overloaded if MoL should run on a device (e.g. with OpenCL). Replace cctk_lsh with cctk_ash where necessary. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@190 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Set variables in error branch of conditionals to avoid compiler warningshinder2012-11-26
| | | | | | The compiler doesn't know that CCTK_WARN(0,…) is fatal. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@189 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Remove unused variable RHSVarhinder2012-11-26
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@188 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Remove unused variable declarationshinder2012-11-26
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@187 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Correct OpenMP parallelisationeschnett2012-10-29
| | | | | | | Declare variables where they are first used. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@183 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Slightly reduce round-off erroreschnett2012-10-29
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@182 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Add verbose output for adaptive step size controleschnett2012-10-24
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@180 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Simplify logic in adaptive step size controleschnett2012-10-24
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@179 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* This patch cleans up the code, improves performance of the MoL loops since itrhaas2012-09-14
| | | | | | | | | combines several loops into one, and reduces the required scratch space. Code originally by Erik, tested by Christian Reisswig. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@178 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* MoL: add Multirate capabilities. This add three new multirate RK schemes to MoL.rhaas2012-08-02
| | | | | | | | | | | Flags indicate whether it is time to execute slow RHS computation. For instance, in the RK4-RK2 scheme, there are 4 substeps in total, but the RK2 RHS are only evaluated in the very first and in the very last step of the four substeps. From: Christian Reisswig, minor changes by Roland Haas git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@175 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Remove trailing \n from info messageseschnett2012-03-03
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@165 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Remove OldBoundary infrastructureeschnett2011-11-12
| | | | | | | Remove now-unused and currently broken OldBoundary infrastructure git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@153 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Correct calculation of sum_alpha when more than one component (or moreeschnett2011-05-24
| | | | | | | than one map) exist on the current process git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@147 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Improve roundoff accuracy of efficient RK4eschnett2011-03-25
| | | | | | | | | | | | | | | | | | | | I just encountered a weird case where evolving Minkowski with the efficient RK4 implementation was not static. It turns out that the reason was floating-point round-off error in RK4. During each of the substeps, RK4 adds terms with factors of 1/3 and 2/3, and for the final step, adds a term with a factor of 4/3. Due to round-off, these terms do not cancel exactly, so that the time-evolved lapse is slightly different from 1 (although all the lapse RHS terms are 0). The same goes for the diagonal terms of the metric. The attached patch keeps track of the round-off error when adding these terms, leading to a more accurate integration result. The problem described above is not always visible, but also depends on optimisation settings. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@145 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Correct signatures of scheduled functionseschnett2011-01-21
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@144 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Parallelise loops with OpenMP.schnetter2008-09-23
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@129 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Call the NaNChecker via the aliased function CheckVarsForNaN insteadschnetter2008-09-22
| | | | | | | | of calling it directly. This decouples thorn MoL from thorn NaNChecker. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@128 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Add new aliased function MoLNumIntegratorSubsteps, which returns theschnetter2007-09-05
| | | | | | | | | | | number of stusteps that the time integrator performs for one time step. This information can e.g. used to automatically calculate the necessary number of buffer zones for mesh refinement. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@124 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Correct logic error in parameter checking. Not all RK4 errors wereschnetter2006-12-05
| | | | | | | detected. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@122 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Theta ICN. Patch from Frank Loeffler.hawke2006-08-24
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@120 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Correct the problem with scheduling the "Old Style" Boundaries by running ↵hawke2006-08-24
| | | | | | various routines in LEVEL mode. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@119 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Make certain not to try and allocate a zero sized array.hawke2006-08-04
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@117 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Modification for evolving array variables; change to localhawke2006-08-01
| | | | | | | | | arrays. This gets around the problems with the driver allocating the scratch space differently on multiprocessors from the individual arrays. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@116 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Fix for evolving arrays on multi-processors with the generic RKhawke2006-07-28
| | | | | | | | method. This fix should use minimal memory, and works even when there is no storage for the array on the local processor. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@115 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* "Old boundary" interface, as provided by Yosef Zlochower.hawke2006-07-28
| | | | | | | | | This sets CCTK_DELTA_TIME in a different way to the standard MoL method inside a bin in MoL_PostStep. I believe this is designed for use with the standard Cactus Radiative boundary condition. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@114 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Efficient RK4, as provided by Yosef Zlochower.hawke2006-07-28
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@113 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Implement RK45 Cash-Karp integrator in MoL.schnetter2006-02-19
| | | | | | | | | | This integrator is similar to the existing RK45 integrator. It also supports adaptive time stepping, but uses slightly different coefficients. The Numerical Recipes say that it has "slightly better error properties". git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@110 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Peter Diener's RK65 and RK87 adaptive timestep integrators.hawke2006-01-23
| | | | | | | | | As yet not altered to do grid arrays. As with RK45, adaptive timestepping does not work with mesh refinement. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@106 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Remember the variable index of the scratch variables.schnetter2005-12-11
| | | | | | | | | | This saves calling CCTK_FirstVarIndex during each MoL iteration. This function is expensive, as it performs case insensitive string comparisons, and it showed up high on a profile of some of the Mexico tests, which integrate small domains over long times. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@105 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Add const and restrict qualifiers to the pointers.schnetter2005-12-11
| | | | | | | | | | Simplify some complex arithmetic. Initialise the error variable in the RK45 integrator only after the last iteration. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@104 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Handle CCTK_SCALAR in the same way as CCTK_ARRAY. Previously,schnetter2005-12-11
| | | | | | | | | | CCTK_SCALAR variables were rejected. This is most likely just an oversight, since no one so far wanted to integrate CCTK_SCALAR variables. The change is trivial. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@103 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Replace "MoL" by CCTK_THORNSTRING in calls to CCTK_VWarn.schnetter2005-12-11
| | | | | | | | | Correct some typos in warnings. Remove some commented out variable declarations. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@102 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Correct critical error in the RK45 time integrator.schnetter2005-12-11
| | | | | | | | The current time and the time step sizes were not set correctly. That led to first order convergence instead of fifth order convergence. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@101 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Replace "MoL" in CCTK_VWarn by CCTK_THORNSTRING.schnetter2005-12-11
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@100 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Replace "MoL" in CCTK_VWarn by CCTK_THORNSTRING.schnetter2005-12-11
| | | | | | | Correct typo in warning message. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@99 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Correct error in calculating the number of grid points for the Countschnetter2005-11-22
| | | | | | | variable. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@97 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Small optimisation: substitute division by multiplication with the inverse.tradke2005-08-29
| | | | git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@91 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Check that a constrained GF may have more than one timelevel beforehawke2005-05-04
| | | | | | | | | | complaining that it doesn't when copying data (if a constrained GF only has one timelevel then such a copy is unnecessary). Fixes PR/1921. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@89 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Correct a bug in the registration routines; if a variable washawke2005-03-30
| | | | | | | | | registered as SandR and then as evolved it was not correctly removed from the SandR list, leading to incorrect evolution. Thanks to J Thornburg for finding this one. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@86 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Make the warning message about calling the registration too early morehawke2005-02-01
| | | | | | | verbose, so that you have some idea which thorn did it. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@85 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Catch the case where people that didn't read the documentationhawke2005-01-31
| | | | | | | | properly try to register, e.g., evolved function with MoL before the index arrays have been set up. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@83 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Adaptive step size control using RK45. Due to Erik Schnetter.hawke2005-01-27
| | | | | | | | | | | Note that if you want to use this with Carpet you currently have to use the development (darcs) version of Carpet together with the parameter carpet::adaptive_stepsize = "yes". git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@82 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
* Initialize some of the grid scalars as early as possible. These arehawke2005-01-07
| | | | | | | | not reset until evolution so NaNChecker was finding NaNs after INITIAL in certain cases (according to Bela Szilagyi). git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@81 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b