예제 #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
예제 #2
0
파일: ex36.py 프로젝트: mfkiwl/scikit-fem
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)
예제 #3
0
파일: ex36.py 프로젝트: mfkiwl/scikit-fem
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
예제 #4
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
예제 #5
0
파일: ex36.py 프로젝트: mfkiwl/scikit-fem
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
예제 #6
0
def A12(w):
    u = w["disp"]
    F = grad(u) + identity(u)
    J = det(F)
    Finv = inv(F)
    return J * transpose(Finv)
예제 #7
0
def deformation_gradient(w):
    dudX = grad(w["displacement"])
    F = dudX + identity(dudX)
    return F, inv(F)