Since the programs represent significant rewrites of existing codes, it is necessary to test the codes. The simplest way is to compute the strains and rotations numerically and then to compare these to the results of the new codes.
As discussed in the theory section, the strains require the
following partial derivatives:
,
and
where the
is
,
or
. The
partial with respect to
is computed
analytically, while the other two can be numerically approximated
using a centered difference, e.g.,
and similarly for the
partial with respect to
. One must
be careful when doing this since the estimate depends on the
frequency content of the signal and the duration of the source time
function. In the examples that follow the sampling interval is 0.25s,
the source pulse duration of 1.0s and the S-wave propagation velocity
is on the order of 3.5 km/s. The receiver depth was take to be
3.0km, which is in layer 2. Also
km
and
km.
The validation code is contained in the file CPSstrain.validate.tgz. To run the tests, do the following:
gunzip -c CPSstrain.validate.tgz | tar xvf - cd CPSstrain.validate DOALL
The result of the computations are in the directories D_DOSTRAINCMP.dir for a moment tensor source and D_DOSTRAINCMPF.dir for a point force.
The DOALL invokes four scripts:
Note that the scripts DOSTRAINCMP and DOSTRAINCMPF use the program convert from the ImageMagick package to convert the Encapsulated PostScript eps files to PNG images.
SW/005000_0100_0030.Uz - Z-component ground velocity in m/s using modal superposition of new codes WK/005000_0100_0030.Uz - Z-component ground velocity in m/s using wavenumber integration of new codes SWkm/Uz - Z-component ground velocity in m/s using modal superposition of original codes WKkm/Uz - Z-component ground velocity in m/s using wavenumber integration of original codes
Thus the leading WK or SW indicate the results of the new codes, while the WKkm or SWkm indicate that the strains were estimated using the centered difference numerical differentiation.
In the file annotation, the Err = err, Erf = erφ, Erz = erz, Eff = eφφ, Efz = eφz, and Ezz = ezz.
Moment tensor source | Point force source |
---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
The agreements are excellent. The slight differences are as follow: