porepy.numerics.displacement_correlation module
Estimation of stress intensity factors using the displacement correlation method, see e.g.
Nejati et al. On the use of quarter-point tetrahedral finite elements in linear elastic fracture mechanics Engineering Fracture Mechanics 144 (2015) 194–221
At present, some unnecessary quantities are computed (and passed around). This is (at least partly) for purposes of investigation of the method.
- determine_onset(sifs, critical_values)[source]
For the time being, very crude criterion: K_I > K_I,cricial. TODO: Extend to equivalent SIF, taking all three modes into account.
- Parameters
sifs (
array
) – stress intensity factors.critical_values (
array
) – critical SIF values to which the above arecompared. –
- Returns
- bool indicating which sifs meet the
criterion.
- Return type
exceed_critical (array)
- estimate_rm(sd, **kw)[source]
Estimate the optimal distance between tip face centers and correlation points. Based on the findings in Nejati et al. (see displacement_correlation), where a optimum is found related to local cell size.
- Parameters
grid. (g - fracture) –
- Returns
rm - distance estimate.
- faces_to_open(mdg, u, critical_sifs, **kw)[source]
Determine where a fracture should propagate based on the displacement solution u using the displacement correlation technique. :param mdg: mixed-dimensional grid. For now, contains one higher-dimensional (2D or 3D)
grid and one lower-dimensional fracture, to be referred to as g_h and g_l, respectively. Note that the data corresponding to d_h should contain the Young’s modulus and Poisson’s ratio, both assumed (for now) to be constant.
- Parameters
u (
array
) –solution as computed by FracturedMpsa. One displacement vector for each cell center in g_h and one for each of the fracture faces. The ordering for a 2D g_h with four cells and four fracture faces (two on each side of two g_l fracture cells) is
- [u(c0), v(c0), u(c1), v(c1), u(c2), v(c2), u(c3), v(c3),
u(f0), v(f0), u(f1), v(f1), u(f2), v(f2), u(f3), v(f3)]
Here, f0 and f1 are the “left” faces, the original faces before splitting of the grid, found in g_h.frac_pairs[0]. f2 and f3 are the “right” faces, the faces added by the splitting, found in g_h.frac_pairs[1].
critical_sifs (
array
) – the stress intensity factors at which the fracture yields, one per mode (i.e., we assume this rock parameter to be homogeneous for now)kw –
optional keyword arguments, to be explored. For now: rm (float): optimal distance from tip faces to correlation points.
If not provided, an educated guess is made by estimate_rm().
- use_normal_rm_distance (bool) - if True, the distance from
correlation point to tip face is used instead of the distance between the correlation point and the tip face centroid. These may differ for 2d fractures.
mdg (MixedDimensionalGrid) –
- Returns
- list (one entry for each fracture subdomain) of (possibly empty)
arrays of higher-dimensional faces to be split.
- sifs: list (one entry for each g_l) of the calculated stress intensity
factors for each of the lower-dimensional tip faces. Axes for listed arrays: mode, tip face.
- Return type
faces_nd_to_open
- identify_correlation_points(sd_primary, sd_secondary, rm, u, face_cells)[source]
Get the relative displacement for displacement correlation SIF computation. For each tip face of the fracture, the displacements are evaluated on the two fracture walls, on the (higher-dimensional) face midpoints closest to a point p. p is defined as the point lying a distance rm away from the (lower-dimensional) face midpoint in the direction normal to the fracture boundary. TODO: Account for sign (in local coordinates), to ensure positive relative displacement for fracture opening.
- Parameters
sd_primary – higher-dimensional grid
sd_secondary – lower-dimensional grid
rm (
float
) – optimal distance from fracture front to correlation point.u (
array
) – displacement solution.face_cells (
array
) – face_cells of the grid pair.
- Returns
- Lower-dimensional cells containing the correlation
point (as its cell center).
faces_secondary (array): The tip faces, for which the SIFs are to be estimated. rm_vectors (array): Vector between centers of cells_secondary and faces_secondary. actual_rm (array): Length of the above. normal_rm (array): Distance between the cell center and the fracture
front (defined by the face of the fracture tip). Will differ from actual_rm if rm_vectors are non-orthogonal to the tip faces (in 2d fractures).
- Return type
cells_secondary (array)
- identify_faces_to_open(sd_primary, sd_secondary, tips_to_propagate, rm_vectors)[source]
Identify the faces to open. For now, just pick out the face lying immediately outside the existing fracture tip faces which we wish to propagate (as close to the fracture plane as possible). TODO: Include angle computation.
- Parameters
sd_primary – higher-dimensional grid
sd_secondary – lower-dimensional grid
tips_to_propagate (
boolean array
) – Whether or not to propagate the fracture at each of the tip faces.rm_vectors (
array
) – Vectors pointing away from the fracture tip, lying in the fracture plane.
- Returns
The higher-dimensional faces which should be opened.
- Return type
faces_primary (array)
- relative_displacements(u, face_cells, sd_secondary, cells_secondary, faces_secondary, sd_primary)[source]
Compute the relative displacements between the higher-dimensional faces on either side of each correlation point.
- Parameters
u (
array
) – displacements on the higher-dimensional grid, as computed by FracturedMpsa, g_h.dim x (g_h.num_cells + g_l.num_cells * 2), see e.g. displacement_correlation for description.face_cells (
array
) – the face_cells connectivity matrix corresponding to g_lg_h. (and) –
sd_primary – and …
sd_secondary – higher- and lower-dimensional grid.
cells_secondary (
array
) – the lower-dimensional cells containing the correlation points as their cell centers.faces_secondary (
array
) – the tip faces of the lower dimension, where propagation may occur.
- Returns
the relative displacements, g_h.dim x n_tips.
- Return type
delta_u (array)
- sif_from_delta_u(d_u, rm, mu, kappa)[source]
Compute the stress intensity factors from the relative displacements
- Parameters
d_u (
array
) – relative displacements, g_h.dim x n.rm (
array
) – distance from correlation point to fracture tip.
- Returns
the displacement correlation stress intensity factor estimates.
- Return type
sifs (array)