level_set module

This file is part of PyFrac.

Created by Haseeb Zia on Tue Dec 27 19:01:22 2016. Copyright (c) “ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE, Switzerland, Geo-Energy Laboratory”, 2016-2020. All rights reserved. See the LICENSE.TXT file for more details.

level_set.Eikonal_Res(Tij, *args)[source]

quadratic Eikonal equation residual to be used by numerical root finder

level_set.SolveFMM(levelSet, EltRibbon, EltChannel, mesh, farAwayPstv, farAwayNgtv)[source]

solve Eikonal equation to get level set.

Parameters
  • levelSet (ndarray-float) – – level set to be evaluated and updated.

  • EltRibbon (ndarray-int) – – cells with given distance from the front.

  • EltChannel (ndarray-int) – – cells enclosed by the given cells

  • mesh (CartesianMesh object) – – mesh object

  • farAwayNgtv (ndarray-float) – – the cells inwards from ribbon cells for which the distance from front is to be evaluated

  • farAwayPstv (ndarray-float) – – the cells outwards from ribbon cells for which the distance from front is to be evaluated

Returns

Does not return anything. The levelSet is updated in place.

Return type

Note

level_set.UpdateLists(EltsChannel, EltsTipNew, FillFrac, levelSet, mesh)[source]

This function update the Element lists, given the element lists from the last time step. EltsTipNew list can have partially filled and fully filled elements. The function update lists accordingly.

Parameters
  • EltsChannel (ndarray) – – channel elements list.

  • EltsTipNew (ndarray) – – list of the new tip elements, including fully filled cells that were tip cells in the last time step.

  • FillFrac (ndarray) – – filling fraction of the new tip cells.

  • levelSet (ndarray) – – current level set.

  • mesh (CartesianMesh) – – the mesh of the fracture.

Returns

– new channel elements list. - eltsTip (ndarray): – new tip elements list. - eltsCrack(ndarray): – new crack elements list. - eltsRibbon (ndarray): – new ribbon elements list. - zeroVrtx (ndarray): – list specifying the zero vertex of the tip cells. (can have value from 0 to 3, where 0 signify bottom left, 1 signifying bottom right, 2 signifying top right and 3 signifying top left vertex). - CellStatusNew (ndarray): – specifies which region each element currently belongs to.

Return type

  • eltsChannel (ndarray)

level_set.reconstruct_front(dist, bandElts, EltChannel, mesh)[source]

Track the fracture front, the length of the perpendicular drawn on the fracture and the angle inscribed by the perpendicular. The angle is calculated using the formulation given by Pierce and Detournay 2008.

Parameters
  • dist (ndarray) – – the signed distance of the cells from the fracture front.

  • bandElts (ndarray) – – the band of elements to which the search is limited.

  • EltChannel (ndarray) – – list of Channel elements.

  • mesh (CartesianMesh) – – the mesh of the fracture.

level_set.reconstruct_front_LS_gradient(dist, EltBand, EltChannel, mesh)[source]

Track the fracture front, the length of the perpendicular drawn on the fracture and the angle inscribed by the perpendicular. The angle is calculated from the gradient of the level set.

Parameters
  • dist (ndarray) – – the signed distance of the cells from the fracture front.

  • EltBand (ndarray) – – the band of elements to which the search is limited.

  • EltChannel (ndarray) – – list of Channel elements.

  • mesh (CartesianMesh) – – the mesh of the fracture.