Page MenuHomec4science

fracture3_warping.py
No OneTemporary

File Metadata

Created
Mon, May 6, 17:30

fracture3_warping.py

import numpy as np
import ufl
import fenics as fen
from rrompy.solver.fenics import affine_warping
def fracture3_warping(mesh0, L, nu, delta0, delta):
shiftWarp = (delta0 - delta) / 4. / L * (2. * L + delta0)
x, y = fen.SpatialCoordinate(mesh0)
warpUL, warpIUL = affine_warping(mesh0,
np.array([[1. + (delta0 - delta) / 2. / L, 0],
[0, 2. * nu]]),
np.array([shiftWarp, 0.]))
warpUR, warpIUR = affine_warping(mesh0,
np.array([[1. + (delta0 - delta) / 2. / L, 0],
[0, 2. * nu]]),
np.array([- shiftWarp, 0.]))
warpDL, warpIDL = affine_warping(mesh0,
np.array([[1. + (delta0 - delta) / 2. / L, 0],
[0, 2. - 2. * nu]]),
np.array([shiftWarp, 0.]))
warpDR, warpIDR = affine_warping(mesh0,
np.array([[1. + (delta0 - delta) / 2. / L, 0],
[0, 2. - 2. * nu]]),
np.array([- shiftWarp, 0.]))
warpDC, warpIDC = affine_warping(mesh0, np.array([[delta / delta0, 0],
[0, 2. - 2. * nu]]))
warp = ufl.conditional(ufl.gt(y, 0.),
ufl.conditional(ufl.gt(x, 0.), warpUR, warpUL),
ufl.conditional(ufl.gt(x, .5 * delta0), warpDR,
ufl.conditional(ufl.lt(x, - .5 * delta0),
warpDL, warpDC)))
warpI = ufl.conditional(ufl.gt(y, 0.),
ufl.conditional(ufl.gt(x, 0.), warpIUR, warpIUL),
ufl.conditional(ufl.gt(x, .5 * delta), warpIDR,
ufl.conditional(ufl.lt(x, - .5 * delta),
warpIDL, warpIDC)))
return warp, warpI

Event Timeline