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
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)
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
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
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
def A12(w): u = w["disp"] F = grad(u) + identity(u) J = det(F) Finv = inv(F) return J * transpose(Finv)
def deformation_gradient(w): dudX = grad(w["displacement"]) F = dudX + identity(dudX) return F, inv(F)