注釈
完全なサンプルコードをダウンロードするには、 最後に進んでください。
重力下での片持ち梁#
ヤング率 \(E=206000\) MPa、ポアソン比 \(\nu=0.3\) 、長さ \(L=2000\) mm、断面積 \(a=100\) mm の片持ち梁の重力による変位を線形弾性解析 [1] で評価します。
First, let's create a meshed cube out of hexahedron cells. A numeric region created on the mesh represents the cantilever beam. A three- dimensional vector-valued displacement field is initiated on the region.
import felupe as fem
cube = fem.Cube(a=(0, 0, 0), b=(2000, 100, 100), n=(101, 6, 6))
region = fem.RegionHexahedron(cube, uniform=True)
displacement = fem.Field(region, dim=3)
field = fem.FieldContainer([displacement])
梁の左端に固定境界条件が適用されます。
boundaries = fem.BoundaryDict(fixed=fem.dof.Boundary(displacement, fx=0))
boundaries.plot().show()

材料の挙動は、組み込みの等方性線形弾性材料定式化によって定義されます。
umat = fem.LinearElastic(E=206000, nu=0.3)
solid = fem.SolidBody(umat=umat, field=field)
物体力は、固体上の(一定の)重力場によって定義されます。
\[\delta W_{ext} = \int_v \delta \boldsymbol{u} \cdot \rho \boldsymbol{g} ~ dv\]
Inside a Newton-Raphson procedure, the weak form of linear elasticity is assembled into the stiffness matrix and the applied gravity field is assembled into the body force vector.
step = fem.Step(items=[solid, force], boundaries=boundaries)
job = fem.Job(steps=[step]).evaluate()
変位フィールドの大きさは、300倍に拡大された変形形状上にプロットされています。
field.plot("Displacement", component=None, factor=300).show()

参考資料#
Total running time of the script: (0 minutes 2.912 seconds)