This example shows use of makemodel to produce a dislocation model of a normal fault, followed by use of elfpoint to sample displacement values at an observation point, and elfgrid to sample values on a horizontal and a vertical plane. Line files are prepared using modellines and displines for plotting using gclrx.
Note that answers given in [square braces] are defaults which will be used if no answer is supplied (just hit the carriage return).
$ makemodel Program MAKBODEL outputs two files defining a dislocation model. Name for .PAR parameter file: [?.par] test1.par Name for .DLC dislocation file: [test1.dlc] Give DLC format: 1 = Dunbar (type 1) dislocation format (obsolete) 2 = Normal (type 2) dislocation format 3 = Ends (type 3) dislocation format 4 = Triangle (type 4) dislocation format e = Earthquake input (to type 2 format) Format (1/2/3/4/e): [2] Poisson's ratio: [0.25] Shear Modulus (bars): [300000.] Projection number (99 for help): [0] New azimuth of North-direction: [0.] Coordinates in degrees or km? (d/k): [k] Label (78 chars): [Disloc 1] Sample Fault #1 X coord of center of dislocation (km): [0.] Y coord of center of dislocation (km): [0.] Depth to center of dislocation (km): [0.] 7 Strike, Dip of dislocation (eg. N60W,34SE or 300,34SE): [0.0, 90.0] 180,60W Horizontal length of rectangle (km): [1.] 15 Down-dip length of rectangle (km): [1.] 10 Strike-slip (-is RL) displacement (m): [0.] Dip-slip (-is Rev.) displacement (m): [0.] 5 Opening (-is Shrink) displacement (m): [0.] Inferred rake angle = -90.0 Another dislocation? (y/n): [y] n STOP:
The output from makemodel consists of two files. A parameter (.par) file contains the elastic parameters and map projection information. (No projection information is used in this example -- all locations are given in kilometers.) A dislocation (.dlc) file contains the geometry information for the rectangular or triangular dislocation surface(s). (Note that triangles are not yet fully inplemented.)
File test1.par looks like this:
*ELASTIC
! pr shear-modulus
0.25 3.00E+05
*PROJECTION
! iprj cm bl rot xcen ycen
0 0.0000 0.0000 0.0000 0.0000 0.0000
*END
File test1.dlc looks like this:
#TYP LONCEN LATCEN DCEN STR DIP HORLEN DIPLEN SS(m) DS(m) OP(m) RAKE ! Sample Fault #1 2 0.0000 0.0000 7.0000 180.0000 60.000 15.0000 10.0000 0. 5. 0. -90.
Running program elfpoint allows one to sample various elastic field quantities at points or lists of points. This is helpful if one needs actual values at some spot like an instrument site.
$ elfpoint
Parameter file: [test1.par]
Dislocation file: [test1.dlc]
Number of dislocations read = 1
Input options for observation points:
p = individual points
t = traverse of points specified by end points
f = list of points given in a file
d = list of planes given in a dlc-file
e = list of planes: x,y,z,strike,dip
Point, traverse, file, dlc-file, or plane-file? (p/t/f/d/e): [p]
Output to file? (y/n): [n]
Field to calculate:
s = stress tensor
c = stress components on a plane
u = displacements
e = strain tensor
d = dilatation
r = rotations
t = tilts
w = strain energy
a = all of above
Give field type (s/c/u/e/d/r/t/w/a/q): [a] s
Rotate elastic fields to Observation Plane? (y/n): [n]
Give observation point (1,2,3=n,e,d) (S=stop; C=change field type): 0 -10 5
11 22 33 12 13 23
stress= -1.9914 -18.0010 -6.1706 0.0000 0.0000 -5.9727
Give observation point (1,2,3=n,e,d) (S=stop; C=change field type): c
Give field type (s/c/u/e/d/r/t/w/a/q): [a] u
Rotate elastic fields to Observation Plane? (y/n): [n]
Give observation point (1,2,3=n,e,d) (S=stop; C=change field type): 0 -10 5
1 2 3
disp= 0.0000 -0.2779 0.1950
Give observation point (1,2,3=n,e,d) (S=stop; C=change field type): s
STOP:
To examine the displacements on a horizontal plane at 7km depth, we run elfgrid:
> elfgrid
Elfgrid calculates elastic fields at a grid of points.
Parameter file: [test1.par]
Dislocation file: [test1.dlc]
Number of dislocations read = 1
Field to calculate:
s = stress tensor
u = displacements
e = strain tensor
d = dilatation
r = rotation
t = tilts
w = strain energy
Give field type (s/u/e/d/r/t/w/a/q): [s] u
Is grid of observation points horizontal or dipping? (h/d): [h]
Left (west) bound (km): -10
Right (east) bound (km): 10
Bottom (south) bound (km): -10
Top (north) bound (km): 10
Grid interval (km): .5
ncol, nrow = 41 41
Depth for horizontal grid (km): [0.] 7
Starting Disp grid(s)...
** Done: 5% 10%
** Singular point encountered: 7.50000 1.09278E-07 -7.00000
20% 32% 41% 51% 61% 71% 80%
** Singular point encountered: -7.50000 7.64949E-07 -7.00000
90% 100%
STOP
The singular points are encountered because the observation plane passes through the center of the dislocation plane. The output is 3 displacement grids (.u1, .u2, .u3) in binary Standard Grid format.
Next, to prepare for plotting we run modellines to make an outline of the dislocation projected onto our horizontal observation plane.
> modellines
Parameter file: [test1.par]
Dislocation file: [test1.dlc]
Number of dislocations = 1
File for model lines: [test1.lin] .hor_lin
File for model lines: [test1.hor_lin]
Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.OPP/.PF/.XYZ/.BLXYZ/QUIT): [.LIN]
Grid to project lines onto (n if horizontal): [test1.s12] n
Show Burger's vectors? (y/n): [n]
STOP:
We are going to plot the vertical (.u3) component of deformation, so in order to see the horizontal deformation on the same plot, we use displines to generate a line file showing a distorted mesh:
> displines Arrows, horiz lines, vert lines, or mesh? (a/h/v/m): [m] U1 grid: [test1.u1] U2 grid: [test1.u2] File for disp lines: [test1.lin] .mesh_lin File for disp lines: [test1.mesh_lin] Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.OPP/.PF/.XYZ/.BLXYZ/QUIT): [.LIN] Skip grid points: [3] Scale factor: one meter equals how many map_km?: [1.] STOP:
We are now ready to plot using gclrx:
> gclrx p == >Plot-only, Plot-and-Save, or Save-only? (P/p/Ps/ps/s) c == Give task (c/q/gs/cs/m/x/sr/cr/df/w) test1.u3 == Grid (n for none) w == Background white or black? (w/b) h == Show colorscale (h=horiz, v=vert, n=none)? (h/v/n) 0.75 0.75 1.20 0.50 == Minimum margins around data window in inches (l,r,b,t) -1. == Give map scale 12.ymc == Color file (h for help) 11 == Give number of contours (0 for file) -1 == Give MIN level .2 == Give INTerval Meters == Colorbar units label (or n for none) 0.1 == Ht of labels on colorbar lw == ?Option (h or he = help) 4 == Line width factor (Units of 0.005in) li == ?Option (h or he = help) test1.hor_lin == Line file (h for help with abbrevs) .LIN == Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.QP/.OPP/.AXYZ/.XYZ/.BLXYZ/QUIT) n == Project lines? (y/n) lw == ?Option (h or he = help) 1 == Line width factor (Units of 0.005in) li == ?Option (h or he = help) test1.mesh_lin == Line file (h for help with abbrevs) .LIN == Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.QP/.OPP/.AXYZ/.XYZ/.BLXYZ/QUIT) n == Project lines? (y/n) km == ?Option (h or he = help) 1 == x-spacing between edge-tics in km 1 == y-spacing between edge-tics in km 0.05 == Height for tics in inches o == Plot tics inside or outside box? (i/o) y == Label tics? (y/n) 5 == Number to skip 0.09 == Label height id == ?Option (h or he = help) t == Title at bottom or top? (b/t/bp/tp) .15 == Title height Vertical Displacement (Red=down) at 7km Depth == Title q == ?Option (h or he = help) 0 == Hold plot on screen (seconds) or go back to options (-1)
The plot looks like this:
Here is a run that plots the displacement results on a vertical E-W plane passing through the center of the fault. The plot results are saved in a binary_plot_instruction (.bpi) metafile and converted to postscript using program pi2ps.
> elfgrid
Elfgrid calculates elastic fields at a grid of points.
Parameter file: [test1.par]
Dislocation file: [test1.dlc]
Number of dislocations read = 1
Field to calculate:
s = stress tensor
u = displacements
e = strain tensor
d = dilatation
r = rotation
t = tilts
w = strain energy
Give field type (s/u/e/d/r/t/w/a/q): [s] u
Is grid of observation points horizontal or dipping? (h/d): [h] d
Specify grid location by center or LL corner? (c/l): [c]
Grid may be off-center if del is coarse.
Dip of grid (1 to 90): [90.]
Strike from LL to LR corners (0 to 360): [0.] 90
North coord of center of grid: [0.]
East coord of center of grid: [0.]
Depth of center of grid: [0.] 7
Down-dip height of grid (km): [0.] 14
Horizontal length of grid (km): [0.] 20
Grid interval: [1.] .5
dmax,dmin = 13.7500 0.2500
ncol, nrow = 40 28
O.K.? (y/n): [y]
Starting Disp grid(s)...
*** ERROR opening grid test1.u1
Try new root (old one may be in use already?): [test1] test1_vertical
** Done: 7% 11% 21% 32% 43% 50% 61% 71% 82% 93% 100%
STOP
> modellines
Makes a line file containing the outline of the model.
Parameter file: [test1_vertical.par] test1.par
Dislocation file: [test1.dlc]
Number of dislocations = 1
File for model lines: [test1.lin] test1.ver_lin
Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.OPP/.PF/.AXYZ/.XYZ/.BLXYZ/QUIT): [.LIN]
Grid to project lines onto (n if horizontal): [test1.s12] test1_vertical.u1
------------------------------------------------------------------------------
ID = Disp1 n,e,st,dp= 0.0, -9.8, 90.0, 90.0, yr= 0.0 PGM=d3dgrid
ntot= 1120 nz= 1
ncol= 40 xo= -9.7500000 dx= 0.50000000 xmax= 9.7500000
nrow= 28 yo= -13.750000 dy= 0.50000000 ymax= -.25000000
projection= 0 cm= 0.0000 bl= 0.0000
extra proj specs = 0.00 0.00 0.00 0.00
------------------------------------------------------------------------------
vll1 = 0.00 vll2 = -9.75 vll3 = 13.75
str = 90.00 dip = 90.00
------------------------------------------------------------------------------
Show Burger's vectors? (y/n): [n]
STOP:
> displines
Makes line file of arrows or mesh to visualize displacement.
Arrows, horiz lines, vert lines, or mesh? (a/h/v/m): [m] a
U1 grid: [test1.u1] test1_vertical
U1 grid: [test1_vertical.u1]
U2 grid: [test1_vertical.u2]
U3 grid: [test1_vertical.u3]
File for disp lines: [test1_vertical.lin] .arr_lin
File for disp lines: [test1_vertical.arr_lin]
Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.OPP/.PF/.AXYZ/.XYZ/.BLXYZ/QUIT): [.LIN]
Skip grid points: [3]
Scale factor: one meter equals how many map_km?: [1.]
Skip plotting arrows less than tol (m): [0.05] 0
STOP:
> gclrx
ps == >Plot-only, Plot-and-Save, or Save-only? (P/p/Ps/ps/s)
b == >Ascii or Binary save file? (a/b)
junk1.bpi == >Save file
c == Give task (c/q/gs/cs/m/x/sr/cr/df/w)
test1_vertical.u3 == Grid (n for none)
w == Background white or black? (w/b)
h == Show colorscale (h=horiz, v=vert, n=none)? (h/v/n)
0.75 0.75 1.20 0.50 == Minimum margins around data window in inches (l,r,b,t)
-1. == Give map scale
12.ymc == Color file (h for help)
11 == Give number of contours (0 for file)
-1 == Give MIN level
.2 == Give INTerval
Meters == Colorbar units label (or n for none)
0.1 == Ht of labels on colorbar
lw == ?Option (h or he = help)
4 == Line width factor (Units of 0.005in)
li == ?Option (h or he = help)
test1.ver_lin == Line file (h for help with abbrevs)
.LIN == Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.QP/.OPP/.AXYZ/.XYZ/.BLXYZ/QUIT)
n == Project lines? (y/n)
lw == ?Option (h or he = help)
1 == Line width factor (Units of 0.005in)
li == ?Option (h or he = help)
test1_vertical.arr_lin == Line file (h for help with abbrevs)
.LIN == Give line type (.OLN/.BOLN/.BLN/.LIN/.GEN/.QP/.OPP/.AXYZ/.XYZ/.BLXYZ/QUIT)
n == Project lines? (y/n)
km == ?Option (h or he = help)
1 == x-spacing between edge-tics in km
1 == y-spacing between edge-tics in km
0.05 == Height for tics in inches
o == Plot tics inside or outside box? (i/o)
y == Label tics? (y/n)
5 == Number to skip
0.09 == Label height
id == ?Option (h or he = help)
t == Title at bottom or top? (b/t/bp/tp)
.15 == Title height
Vertical Displacement (Red=down) in X-Section == Title
q == ?Option (h or he = help)
0 == Hold plot on screen (seconds) or go back to options (-1)
> pi2ps
pi2ps - Version 3.6
Ascii or Binary save file? (a/b): [b]
Binary plot instruction file: [junk1.bpi]
Give output type:
p = normal PostScript (.ps)
e = encapsulated PS (.eps)
i = image only to encapsulated PS file (.epsf)
(for Adobe-Illustrator background.)
Outmode (p/e/i): [p]
Gray or Color plotter (g/c): [g] c
Tweak colors for some device to get approximate PIC's? (no/tek): [no]
Postscript output file: [junk1.ps]
Fonts:
1. Courier (fixedwidth)
2. Courier-Bold (fixedwidth)
3. Helvetica
4. Helvetica-Bold
5. Times-Roman
Give font: [4]
Give plot size...
xmin: [0.]
xmax: [10.01389]
ymin: [1.16667]
ymax: [8.83333]
Unrotated plotter-paper sizes (horiz x vert):
0) query for paper width and height
1) wide x high = 8.5 x 11.0 inches
2) wide x high = 11.0 x 17.0 inches
3) wide x high = 46.0 x 34.0 inches
4) wide x high = 36.0 x 108.0 inches (HP650)
Give plotter-paper size (0/1/2/3/4): [1]
Second dimension of paper horizontal or vertical? (h/v/hbig): [h]
Magnification factor: [0.97826]
Center plot on one sheet of paper? (y/n/o): [y]
End of plotting.
Dimensions read from input:
xmin,xmax = 0. 10.01389
ymin,ymax = 1.16667 8.83333
Biggest possible image with paper horizontal,
and magnification factor = 0.978261
Try again? (y/n/p): [n]
STOP:
This vertical section plot looks like: