Beispiel #1
0
def F1(w):
    u = w["disp"]
    p = w["press"]
    F = grad(u) + identity(u)
    J = det(F)
    Finv = inv(F)
    return p * J * transpose(Finv) + mu * F
Beispiel #2
0
def A12(w):
    u = w["disp"]
    F = zeros_like(grad(u))
    for i in range(3):
        F[i, i] += 1.
    F += grad(u)
    J = det(F)
    Finv = inv(F)
    return J * transpose(Finv)
Beispiel #3
0
def F2(w):
    u = w["disp"]
    p = w["press"].value
    F = grad(u) + identity(u)
    J = det(F)
    Js = .5 * (lmbda + p + 2. * np.sqrt(lmbda * mu + .25 * (lmbda + p) ** 2)) / lmbda
    dJsdp = ((.25 * lmbda + .25 * p + .5 * np.sqrt(lmbda * mu + .25 * (lmbda + p) ** 2))
             / (lmbda * np.sqrt(lmbda * mu + .25 * (lmbda + p) ** 2)))
    return J - (Js + (p + mu / Js - lmbda * (Js - 1)) * dJsdp)
Beispiel #4
0
def F1(w):
    u = w["disp"]
    p = w["press"]
    F = zeros_like(grad(u))
    for i in range(3):
        F[i, i] += 1.
    F += grad(u)
    J = det(F)
    Finv = inv(F)
    return p * J * transpose(Finv) + mu * F
Beispiel #5
0
def a(u, v, w):
    F, iF = deformation_gradient(w)
    DF = grad(u)
    dF = grad(v)
    dFiF = mul(dF, iF)
    DFiF = mul(DF, iF)
    tr_DFiF_dFiF = ddot(transpose(dFiF), DFiF)
    lnJ = np.log(det(F))
    return (mu * ddot(DF, dF) - (lmbda * lnJ - mu) * tr_DFiF_dFiF +
            lmbda * trace(dFiF) * trace(DFiF))
Beispiel #6
0
def A11(w):
    u = w["disp"]
    p = w["press"]
    eye = identity(u)
    F = grad(u) + eye
    J = det(F)
    Finv = inv(F)
    L = (p * J * np.einsum("lk...,ji...->ijkl...", Finv, Finv)
         - p * J * np.einsum("jk...,li...->ijkl...", Finv, Finv)
         + mu * np.einsum("ik...,jl...->ijkl...", eye, eye))
    return L
Beispiel #7
0
def F2(w):
    u = w["disp"]
    p = w["press"].value
    F = zeros_like(grad(u))
    for i in range(3):
        F[i, i] += 1.
    F += grad(u)
    J = det(F)
    Js = .5 * (lmbda + p + 2. * sqrt(lmbda * mu + .25 * (lmbda + p) ** 2)) / lmbda
    dJsdp = ((.25 * lmbda + .25 * p + .5 * sqrt(lmbda * mu + .25 * (lmbda + p) ** 2))
             / (lmbda * sqrt(lmbda * mu + .25 * (lmbda + p) ** 2)))
    return J - (Js + (p + mu / Js - lmbda * (Js - 1)) * dJsdp)
Beispiel #8
0
def A11(w):
    u = w["disp"]
    p = w["press"]
    F = zeros_like(grad(u))
    eye = zeros_like(grad(u))
    for i in range(3):
        F[i, i] += 1.
        eye[i, i] += 1.
    F += grad(u)
    J = det(F)
    Finv= inv(F)
    L = (p * J * einsum("lk...,ji...->ijkl...", Finv, Finv)
         - p * J * einsum("jk...,li...->ijkl...", Finv, Finv)
         + mu * einsum("ik...,jl...->ijkl...", eye, eye))
    return L
Beispiel #9
0
def volume(w):
    dw = w["disp"].grad
    F = dw + identity(dw)
    J = det(F)
    return J
Beispiel #10
0
def A12(w):
    u = w["disp"]
    F = grad(u) + identity(u)
    J = det(F)
    Finv = inv(F)
    return J * transpose(Finv)
Beispiel #11
0
def L(v, w):
    F, iF = deformation_gradient(w)
    dF = grad(v)
    lnJ = np.log(det(F))
    return mu * ddot(F, dF) + (lmbda * lnJ - mu) * ddot(transpose(iF), dF)