Creates the fault displacement tensor from displacement components. If the dip direction is know, the tensor will be rotated into the geographic reference frame.
Usage
fault_tensor(h, s, v, dip_direction = NULL)
fault_tensor_decomposition(ftensor, dip_direction = NULL)
Arguments
- h, s, v
numeric. the heave, strike-slip, vertical throw displacement
- dip_direction
(optional) dip direction in degrees.
- ftensor
Fault displacement tensor. A 3x3 matrix. If
NULL
, the fault tensor will be given in the fault displacement coordinates. Otherwise, the tensor will be in the geographic reference frame.
Value
fault_tensor()
returns a 3x3 matrix of class "ftensor"
containing the fault displacement tensor.
fault_tensor_analysis()
returns a list containing the principal fault displacement tensor and the fault orientation.
Details
x axis of tensor = heave, y = strike slip, z = vertical throw (positive for thrusting, negative for normal faulting) is the principal fault displacement tensor. This can be rotated in the fault plane orientation to retrieve slip components and rake.
The fault displacement tensor gives the displacements in all directions and has the following properties:
The square root of tensor's trace (i.e. the sum of the diagonal elements) equals the net slip on the fault plane.
The determinant of the tensor relates to the volumetric strain by: det(F) - 1, where
(fault_tensor_decomposition()
) retrieves the principal fault displacement tensor using Singular Value Decomposition of a Matrix
and the fault orientation if the dip direction is known.
The orientation of the net-slip vector is the lineation component of the fault orientation.
Examples
A_princ <- fault_tensor(s = 2, v = -5, h = 3)
print(A_princ)
#> [,1] [,2] [,3]
#> [1,] 3 0 0
#> [2,] 0 2 0
#> [3,] 0 0 -5
#> attr(,"class")
#> [1] "matrix" "array" "ftensor"
det(A_princ)
#> [1] -30
A_geo <- fault_tensor(s = 2, v = -5, h = 3, dip_direction = 45)
print(A_geo)
#> [,1] [,2] [,3]
#> [1,] 2.12132 1.414214 0
#> [2,] 2.12132 -1.414214 0
#> [3,] 0.00000 0.000000 -5
#> attr(,"class")
#> [1] "matrix" "array" "ftensor"
det(A_geo)
#> [1] 30
fault_tensor_decomposition(A_geo, dip_direction = 45)
#> $displacements
#> dip delta rake verticalthrow horizontalthrow heave dipslip
#> [1,] 59.03624 56.30993 71.06818 -5 3.605551 3 5.830952
#> strikeslip netslip
#> [1,] 2 6.164414
#>
#> $fault
#> dip_direction dip azimuth plunge sense
#> azimuth 45 59.03624 78.69007 54.20424 -1
#> attr(,"class")
#> [1] "fault" "pair"
#>
#> $strain_tensor
#> [,1] [,2] [,3]
#> [1,] 3.0 -1.5 -1.5
#> [2,] -1.0 1.0 -1.0
#> [3,] 2.5 2.5 15.0
#>
#> $volumetric_strain
#> [1] 19
#>
#> $shear_strain
#> [1] 5.196152
#>