| Commit message (Collapse) | Author | Age |
|
|
|
| |
constraints
|
|
|
|
| |
the time evolution; this simplifies the generated code significantly.
|
|
|
|
| |
are scheduled in MoL_PostStep, since MoL_PostStep is already scheduled in post_recover_variables.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
handles this correctly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Exact thorn uses finite differencing to compute the extrinsic
curvature rather than using the analytic result. The step size used
is independent of the Cactus grid. Using a very small step size for
accuracy can lead to the subtraction of floating point numbers which
are very close to each other, leading to a large loss of precision.
This loss of precision can amplify differences between compilers and
optimisation settings.
A recent Exact commit implements 4th order differencing and a
configurable step size. Hence for a given finite differencing error,
a larger step size can be used, reducing the loss of precision.
This commit to the McLachlan testsuites (parameter files and data)
implements this change by enabling 4th order differencing and a step
size of 2e-4. A convergence test in the step size has shown that this
leads to a finite differencing error of ~1e-14. It also leads to more
consistent results across compilers and optimisation settings. The
data was generated with gcc using -O2 and the testsuites pass with
the Intel compiler also using -O2.
This testsuite data also takes into account the modification to the
constraint boundary condition in the previous commit.
|
| |
|
|
|
|
|
|
|
|
|
| |
Use a new function Upwind to calculate upwind derivatives.
Introduce a new (Mathematica) parameter that decides whether to implement upwind derivatives the old way (using IfThen depending on the direction) or the new way (using Abs and the symmetric/antisymmetric parts of the stencils).
Improve how to create partial calculations automatically.
Evaluate the constraints in two partial calculations.
|
| |
|
| |
|
|
|
| |
The current Cactus testsuite mechanism does not allow you to set per-variable absolute and relative tolerances. The constraints are typically very small in comparison to the evolved variables used to compute them. This means that roundoff errors in the evolved variables can lead to large relative errors in the constraints. The correct solution would be to specify only an absolute tolerance for the constraints, but this is not possible at the moment. In future, a separate test could be written to test that the constraints are being correctly computed on constraint-violating initial data. For now, we omit the tests of the constraints from the testsuites.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| | |
'master', 'master', 'master', 'master', 'master', 'master', 'master', 'master' and 'master' of carpetcode.dyndns.org:McLachlan
|
| |
| |
| |
| |
| |
| |
| | |
For some reason, this test only passes when run with
OMP_NUM_THREADS=1. If you use OMP_NUM_THREADS=2, or leave it unset on
a multi-core machine, there are differences above tolerance in the
Hamiltonian constraint, though the evolved variables are OK.
|
|/ |
|
|
|
|
|
|
| |
Reintroduce an optimization in the evolution calculation, that was previously only introduced in the hand split optimised calculation.
Signed-off-by: Peter Diener <diener@cct.lsu.edu>
|
|
|
|
| |
Regenerate code.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Create a new function PartialCalculation, which splits a calculation, retaining only those parts evaluating certain variables. This is useful to more easily split calculations.
Modify the way upwind derivatives are calculated. Instead of using integer dir^i selectors, split them into an antisymmetric and a symmetric part, which are multiplied by the shift and its absolute value, respectively.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
ML_BSSN/src/ML_BSSN_RHS1.c
ML_BSSN_MP/src/ML_BSSN_MP_RHS1.c
ML_BSSN_O2/src/ML_BSSN_O2_RHS1.c
ML_BSSN_O8/src/ML_BSSN_O8_RHS1.c
m/McLachlan_BSSN.m
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Move RHS evaluations for trK and the lapse to RHS1 to better even out the
instruction count between RHS1 and RHS2 leading to better performance on
32Kb instruction cache machines. Also replace covariant derivatives with
respect to the physical metric with covariant derivatives with respect to
the conformal metric. This avoids having to compute the physical Christoffel
symbols. The performance on 64Kb instruction cache machines is unchanged.
Also get rid of some unused shorthands and generate code for 3 timelevels.
Signed-off-by: Peter Diener <diener@cct.lsu.edu>
|
| |
| |
| |
| |
| |
| | |
Fix and (hopefully) clarify parameter conversions.
Signed-off-by: Peter Diener <diener@cct.lsu.edu>
|
|/
|
|
| |
certain radius
|
| |
|
|
|
|
| |
<git@github.com:ianhinder/Kranc.git>.
|
| |
|
| |
|
| |
|
|
|
|
| |
grid function
|
| |
|
|
|
|
|
|
| |
ADM quantities.
Re-generate all code.
|
| |
|
| |
|
|
|
|
| |
helper scalars.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
ML_BSSN/src/ML_BSSN_Minkowski.c
ML_BSSN/src/ML_BSSN_convertFromADMBase.c
ML_BSSN/src/ML_BSSN_convertFromADMBaseGamma.c
ML_BSSN/src/ML_BSSN_setBetaDriverSpatial.c
ML_BSSN/src/make.code.defn
ML_BSSN_Helper/src/SetGroupTags.c
ML_BSSN_M/param.ccl
ML_BSSN_M/schedule.ccl
ML_BSSN_M/src/ML_BSSN_M_Minkowski.c
ML_BSSN_M/src/ML_BSSN_M_convertFromADMBase.c
ML_BSSN_M/src/ML_BSSN_M_convertFromADMBaseGamma.c
ML_BSSN_M/src/ML_BSSN_M_setBetaDriverSpatial.c
ML_BSSN_M/src/make.code.defn
ML_BSSN_MP/src/ML_BSSN_MP_Minkowski.c
ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBase.c
ML_BSSN_MP/src/ML_BSSN_MP_convertFromADMBaseGamma.c
ML_BSSN_MP/src/ML_BSSN_MP_setBetaDriverSpatial.c
ML_BSSN_MP/src/make.code.defn
ML_BSSN_MP_Helper/src/SetGroupTags.c
ML_BSSN_M_Helper/schedule.ccl
ML_BSSN_M_Helper/src/SetGroupTags.c
m/McLachlan_BSSN.m
m/prototype/ML_BSSN_Helper/src/SetGroupTags.c
|
| |
| |
| |
| |
| |
| |
| |
| | |
CCTK_POST_RECOVER_VARIABLES
-> recompute ADM variables after recovery before first timestep
Signed-off-by: Frank Loeffler <knarf@cct.lsu.edu>
|