Next: Stress calculation Up: MODELING STRUCTURE Previous: MODELING STRUCTURE

## Strain calculation

The calculation of the strain tensor (pressure gradient) is concisely written in the subroutine del() . The notation follows the mathematical formula in equation (1). The only aberration from the mathematical notation becomes obvious where I use abbreviated indices for practical reasons. It is transparent which of the calculated components are evaluated in a staggered fashion. If conj==0 then subroutine del() will evaluate in (1), meaning we perform an outer product. Displacement uu and strain ss are conjugates of each other. The actual derivative calculation is carried out in subroutine conv1dc() , which is a finite difference approximation to a partial derivative. Instead of calling a convolution we could have called a Fourier derivative, then we would perform pseudo-spectral modeling. Or we could alternate between them depending on which space axis is being calculated.
```# apply symmetric Lagrangian derivative ( with 8 point convolution)
#
subroutine del (conj,uu,t,ss,bnd)
implicit none
#include "commons"
integer         conj,   t
WFIELD(uu)
WFIELDLAY(uu)
TENSOR(ss)
TENSORLAY(ss)
BOUND(bnd)
BOUNDLAY(bnd)
integer ivec,iten,direction
real scale

if(conj==0) {ss = 0.;        }
else        {uu(t,:,:,:,:)=0.}

do ivec=1,ncomp {
do iten=1,ntcomp{    direction=trudim(deriv(tcomp(iten),icomp(ivec)))
if (direction>0){   scale = scaling(tcomp(iten),icomp(ivec))
if (conj==0)  { stagger = stagc0(tcomp(iten),icomp(ivec)) }
else          { stagger = stagc1(tcomp(iten),icomp(ivec)) }
call conv1dc(conj,uu,t,ivec,ss,iten,direction,ddx(direction)*scale,bnd)
}
}}

return
end
```

Next: Stress calculation Up: MODELING STRUCTURE Previous: MODELING STRUCTURE
Stanford Exploration Project
11/17/1997