・私は弱ったなあ。です。
(本日の)ChatGPT先生へ
グリーンのひずみテンソル と コーシーのひずみテンソル の違いを教えて下さい。
グリーンのひずみテンソル(Green-Lagrange strain tensor)とコーシーのひずみテンソル(通常は「微小ひずみテンソル(Cauchy infinitesimal strain tensor)」と呼ばれる)は、有限変形を扱うかどうかが最大の違いです。
(表示を省略)
上記をsympyで教えて下さい。
SymPyで両者の違いを見るには、まず変位場
...
を定義し、
...
からグリーンひずみを作ります。
1. コーシー(微小)ひずみテンソル
from sympy import *
# 記号
X, Y, Z = symbols('X Y Z')
# 変位
u = Function('u')(X, Y, Z)
v = Function('v')(X, Y, Z)
w = Function('w')(X, Y, Z)
# 変位ベクトル
U = Matrix([u, v, w])
# 変位勾配
GradU = Matrix([
[diff(u,X), diff(u,Y), diff(u,Z)],
[diff(v,X), diff(v,Y), diff(v,Z)],
[diff(w,X), diff(w,Y), diff(w,Z)]
])
# 微小ひずみ(コーシーひずみ)
eps = simplify((GradU + GradU.T)/2)
print("Cauchy strain")
pprint(eps)
2. グリーンひずみテンソル
from sympy import *
X, Y, Z = symbols('X Y Z')
u = Function('u')(X,Y,Z)
v = Function('v')(X,Y,Z)
w = Function('w')(X,Y,Z)
GradU = Matrix([
[diff(u,X), diff(u,Y), diff(u,Z)],
[diff(v,X), diff(v,Y), diff(v,Z)],
[diff(w,X), diff(w,Y), diff(w,Z)]
])
I = eye(3)
# 変形勾配
F = I + GradU
# 右コーシー・グリーン変形テンソル
C = simplify(F.T*F)
# グリーンひずみ
E = simplify((C-I)/2)
print("Green strain")
pprint(E)
3. 両者の関係をSymPyで確認
from sympy import *
X,Y,Z = symbols('X Y Z')
u = Function('u')(X,Y,Z)
v = Function('v')(X,Y,Z)
w = Function('w')(X,Y,Z)
GradU = Matrix([
[diff(u,X), diff(u,Y), diff(u,Z)],
[diff(v,X), diff(v,Y), diff(v,Z)],
[diff(w,X), diff(w,Y), diff(w,Z)]
])
eps = (GradU + GradU.T)/2
E = ((eye(3)+GradU).T*(eye(3)+GradU)-eye(3))/2
difference = simplify(E - eps)
print("E - eps =")
pprint(difference)
4. 1次元の例
from sympy import *
X, a = symbols('X a')
u = a*X
# コーシーひずみ
eps = diff(u,X)
# グリーンひずみ
E = ( (1 + diff(u,X))**2 - 1 )/2
print("eps =")
pprint(expand(eps))
print("E =")
pprint(expand(E))
5. 剛体回転の例(重要)
from sympy import *
th = symbols('th')
F = Matrix([
[cos(th), -sin(th)],
[sin(th), cos(th)]
])
E = simplify((F.T*F - eye(2))/2)
pprint(E)
つまり
回転だけならGreenひずみはゼロ
です。
これが有限変形理論でグリーンひずみテンソルが使われる大きな理由です。
いつもと違うおすすめです。
Qiita内
google検索で
wikipedia 内