generate.inclined_plane¶
Inclined plane stress field simulation.
This module provides functions for simulating the photoelastic response of a material under inclined plane stress conditions (rectangular mass with gravity acting at an angle).
inclined_plane
¶
Functions¶
inclined_stress_cartesian(X, Y, rho, g=9.81, theta_deg=0.0, K0=0.5)
¶
Stress field for an inclined plane (rectangular mass with inclined gravity).
This computes the stress field in a rectangular domain with gravity acting at an angle theta from vertical. The resulting stress field includes both normal stresses that vary with depth and shear stresses due to the inclined gravity.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
X
|
array - like
|
X coordinates (horizontal position). |
required |
Y
|
array - like
|
Y coordinates (depth, positive downward from surface). |
required |
rho
|
float
|
Density (kg/m^3). |
required |
g
|
float
|
Gravitational acceleration (m/s^2). |
9.81
|
theta_deg
|
float
|
Inclination angle of gravity from vertical (degrees). 0 degrees = vertical (standard lithostatic) Positive angles tilt gravity towards +x direction |
0.0
|
K0
|
float
|
Coefficient of lateral earth pressure at rest. Used to relate stresses perpendicular to the inclined direction. |
0.5
|
Returns:
| Name | Type | Description |
|---|---|---|
sigma_xx |
array - like
|
Normal stress in x direction (Pa). |
sigma_yy |
array - like
|
Normal stress in y direction (Pa). |
tau_xy |
array - like
|
Shear stress (Pa). |
Notes
For an inclined gravity field, the body forces are: - f_x = rho * g * sin(theta) (horizontal component) - f_y = rho * g * cos(theta) (vertical component)
The stress field must satisfy equilibrium: - dσ_xx/dx + dτ_xy/dy + f_x = 0 - dτ_xy/dx + dσ_yy/dy + f_y = 0
For a uniform rectangular mass with no boundaries except at the top, we assume a solution where stresses increase linearly with depth in the direction of gravity, and include shear stress from the inclined component.
Source code in photoelastimetry/generate/inclined_plane.py
generate_synthetic_inclined_plane(X, Y, rho, g, theta_deg, K0, S_i_hat, wavelengths_nm, thickness, C)
¶
Generate synthetic inclined plane stress data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
X
|
array - like
|
Coordinate grids |
required |
Y
|
array - like
|
Coordinate grids |
required |
rho
|
float
|
Density (kg/m^3) |
required |
g
|
float
|
Gravitational acceleration (m/s^2) |
required |
theta_deg
|
float
|
Inclination angle from vertical (degrees) |
required |
K0
|
float
|
Coefficient of lateral earth pressure |
required |
S_i_hat
|
array - like
|
Incoming normalised Stokes vector |
required |
wavelengths_nm
|
array - like
|
Wavelengths in meters |
required |
thickness
|
float
|
Sample thickness (m) |
required |
C
|
array - like
|
Stress-optic coefficients for each wavelength |
required |
Returns:
| Name | Type | Description |
|---|---|---|
synthetic_images |
array - like
|
Generated synthetic images [height, width, n_wavelengths, 4] |
principal_diff |
array - like
|
Principal stress difference |
theta_p |
array - like
|
Principal stress angle |
sigma_xx, sigma_yy, tau_xy : array-like
|
Stress components |