Next: Test Functions
Up: TestInterp
Previous: Abstract
Contents
The basic operation of TestInterp is simple: set up input arrays to
be known (analytic) smooth functions, interpolate them, and then look
at the results.
When assessing the test results, we group the data types into 3 subsets:
- real
CCTK_REAL , CCTK_COMPLEX real part,
and CCTK_COMPLEX imaginary part
- real4
CCTK_REAL4 , CCTK_COMPLEX8 real part,
and CCTK_COMPLEX8 imaginary part
- real8
CCTK_REAL8 , CCTK_COMPLEX16 real part,
and CCTK_COMPLEX16 imaginary part
Depending on the Jacobian_test_type parameter, TestInterp can
also test the CCTK_InterpLocalUniform() Jacobian computation.
There are two types of Jacobian tests possible:
- This thorn can query the interpolator to find out the
``query Jacobian'', and output this in various ways
(described below).
- Alternatively, TestInterp can additionally estimate
the Jacobian by numerical perturbations. In this case
both the query and numerical-perturbation Jacobians
can be output, as can their difference (which should
be small).
For any of the Jacobian tests, TestInterp first does a preliminary
interpolator query to verify that the Jacobian is independent of
which interpolator input array we're using (i.e. of the Cactus datatype).
Once this is verified, TestInterp then only tests the Jacobian for the
CCTK_REAL interpolation.
For the numerical-perturbation Jacobian computation, you can choose
whether to try perturbing at all points of the input grid,
or only at those points within what the interpolator reported
(in the preliminary interpolator query) to be its' molecule size.
The former gives a more rigorous test, but can be very slow
in 3-D. The latter is a bit less rigorous, but much faster.
Next: Test Functions
Up: TestInterp
Previous: Abstract
Contents
|