Next: CONCLUSIONS
Up: Muir: CM Fortran
Previous: Bugs
It has been about four years since I last worked on my linear lattice
Boltzmann stuff, and the Connection Machine seemed to offer me good
reason to start up again. I now have a better understanding of anisotropy,
and it became clear to me that I should be able to extend previous work in
this area by myself (Muir, 1986, 1087a, 1987b) ind others (Sword, 1987, and
Zhang, 1988) in three directions.
- 1.
- Introduce heterogeneity both in velocity and impedance.
- 2.
- Develop large-scale anisotropy from micro-heterogeneous isotropy.
- 3.
- Extend the scalar, acoustic model to a vector, elastic one.
So far the full elastic automaton has eluded me, but velocity anisotropy
is quite well understood, and an example forms the subject of my illustration.
Recall from previous reports, and particularly (Muir, 1987b) that at each
timestep I do three things:
- 1.
- Map the data field from conservation to Huygens coordinates.
- 2.
- Scatter the 24 elements of the Huygens vectors to their respective
next-nearest neighbours.
- 3.
- Map the data field back from Huygens to conservation coordinates.
In Fortran 77 the first and third of these items would involve a nest
of six DO loops. In CM Fortran they involve only two, and the first step
looks like this:
DO j = 1,24
DO k = 1,5
huygens(j,:,:,:,:) = huygens(j,:,:,:,:) +
+ ctoh(k,j)*conserve(k,:,:,:,:)
END DO
END DO
The scatter loop is equally impressive:
DO j = 1,24
huygens(j,:,:,:,:) = CSHIFT(CSHIFT(
+ huygens(j,:,:,:,:),d1(j),s1(j)),d2(j),s2(j))
END DO
where the d1(), d2(), s1(), s2() arrays point in the direction
and sign of the required shift.The scatter code I show above is vanilla code,
good for a homogeneous environment, but the heterogeneous code uses
very similar constructs, and there is no loss in parallelism because it is
heterogeneous. As an example of what the Connection Machine and Frame
Buffer Display can do, the Figure in this paper shows the impulse response
of a layered medium where there is a 2:1 velocity contrast but no impedance
change between the layers.
Next: CONCLUSIONS
Up: Muir: CM Fortran
Previous: Bugs
Stanford Exploration Project
12/18/1997