ジョブの実行#

このチュートリアルでは、FElupe を使って問題を作成し、解くために不可欠な高レベルの部分を再び取り上げます。ただし、今回は外部変位をランプ状に適用します。非均質な uniaxial loading 下の立方体の所定の変位は、 step の中で制御されます。 Ogden-Roxburgh 擬弾性Mullins軟化モデルは、等方的な超弾性 Neo-Hookean 材料定式化、これはさらにゴム状材料の現実的な解析のために nearly incompressible solid body に適用されます。体積弾性率は、構成的なネオフック材料定義の代わりに、(ほぼ)非圧縮性固体の引数であることに注意してください。

import felupe as fem

mesh = fem.Cube(n=6)
region = fem.RegionHexahedron(mesh=mesh)
field = fem.FieldContainer([fem.Field(region=region, dim=3)])

boundaries = fem.dof.uniaxial(field, clamped=True, return_loadcase=False)

umat = fem.OgdenRoxburgh(material=fem.NeoHooke(mu=1), r=3, m=1, beta=0)
body = fem.SolidBodyNearlyIncompressible(umat=umat, field=field, bulk=5000)

The ramped prescribed displacements for 12 substeps are created with linsteps(). A Step is created with a list of items to be considered (here, one single solid body) and a dict of ramped boundary conditions along with the prescribed values.

move = fem.math.linsteps([0, 2, 1.5], num=[8, 4])
uniaxial = fem.Step(
    items=[body], ramp={boundaries["move"]: move}, boundaries=boundaries
)

This step is now added to a Job. The results are exported after each completed and successful substep as a time-series XDMF-file. A CharacteristicCurve-job logs the displacement and sum of reaction forces on a given boundary condition.

job = fem.CharacteristicCurve(steps=[uniaxial], boundary=boundaries["move"])
job.evaluate(filename="result.xdmf")

field.plot("Principal Values of Logarithmic Strain").show()
extut02 job

The sum of the reaction force in direction \(x\) on the boundary condition "move" is plotted as a function of the displacement \(u\) on the boundary condition "move" .

fig, ax = job.plot(
    xlabel=r"Displacement $u$ in mm $\longrightarrow$",
    ylabel=r"Normal Force $F$ in N $\longrightarrow$",
)
extut02 job

Total running time of the script: (0 minutes 0.914 seconds)

Sphinx-Galleryによって生成されたギャラリー