SolidMechanicsStrain[vars,pars,displ]
固体力学の全歪みを,変数 vars,パラメータ pars,変位 displ で与える.
SolidMechanicsStrain
SolidMechanicsStrain[vars,pars,displ]
固体力学の全歪みを,変数 vars,パラメータ pars,変位 displ で与える.
詳細
- SolidMechanicsStrainは,変位の従属変数
,
,
(単位:
),独立変数
(単位:
),時間変数
(単位:
)で指定された変位による力学的な全歪みを返す. - 垂直歪み
.ただし,
は長さの変化で
はもとの長さである. - 歪みは無単位である.
- SolidMechanicsStrainはSolidMechanicsPDEComponentとして指定されたものと同じ変数 vars を使う.
- SolidMechanicsStrainはSolidMechanicsPDEComponentとして指定されたものと同じパラメータ pars を使う.
- 変位 displ は,通常は,SolidMechanicsPDEComponentで生成された偏微分方程式を解いた結果である.
- vars の従属変数ベクトル
として与えられた各従属変数
,
,
については,変位 displ を指定しなければならない. - SolidMechanicsStrainは以下の形の工学歪みのSymmetrizedArrayを返す.
は垂直歪みを表し,
はせん断歪みを表す.- SolidMechanicsStrainは以下の全歪み
を返す. - デフォルトの弾性歪みの測定値
は微小歪みテンソルモデル
に基づくもので,小さい変位と小さいて回転を仮定している. - 使われるせん断歪みは,テンソル歪みと
で関係する工学せん断歪みである. - SolidMechanicsStrainは初期歪みまたは温度歪みのような非弾性歪み
を含む全歪みを返す. - SolidMechanicsStressはSolidMechanicsStrainから応力を計算する.
例題
すべて開く すべて閉じる例 (1)
スコープ (6)
vars = {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}};
strain = SolidMechanicsStrain[vars, <||>, vars[[1]]]MatrixForm[strain]strainTensor = 1 / 2(Grad@@vars + Transpose[Grad@@vars]);
MatrixForm[strainTensor]strain == {{1, 2, 2}, {2, 1, 2}, {2, 2, 1}} * strainTensor線形弾性様式でのエンジニアリング歪みのデフォルトの使用はオフにすることができる:
MatrixForm[SolidMechanicsStrain[vars, <|"EngineeringStrain" -> False|>, vars[[1]]]]定常解析 (1)
端が固定され先端に力が加えられたスプーンのたわみを計算する.変数とパラメータを設定する:
vars = {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}};
pars = <|"Material" -> ["Silver"]|>;spoon = \!\(\*Graphics3DBox[«8»]\);
displacement = NDSolveValue[{SolidMechanicsPDEComponent[vars, pars] == SolidBoundaryLoadValue[x >= 1 / 10, vars, pars, <|"Force" -> {0, 0, Quantity[-100, "Newtons"]}|>],
SolidFixedCondition[x <= -1 / 10, vars, pars]}, {u, v, w}, {x, y, z}∈spoon];strains = SolidMechanicsStrain[vars, pars, displacement]SliceContourPlot3D[strains[[3, 3]], spoon, {x, y, z}∈spoon, ...]定常平面応力解析 (2)
底辺が固定され他の3辺に圧力が加えられた長方形鋼板の変位を計算する.領域,変数,パラメータを設定する:
Ω = Rectangle[{0, 0}, {1 / 25, 3 / 100}];
vars = {{u[x, y], v[x, y]}, {x, y}};
pars = <|"SolidMechanicsModelForm" -> "PlaneStress", "YoungModulus" -> 200 * 10 ^ 9, "PoissonRatio" -> 3 / 10, "Thickness" -> 10 ^ -4|>;displacement = NDSolveValue[{SolidMechanicsPDEComponent[vars, pars] == SolidBoundaryLoadValue[x == 1 / 25, vars, pars, <|"Pressure" -> {0, 2 * 10 ^ 8}|>] + SolidBoundaryLoadValue[y == 3 / 100, vars, pars, <|"Pressure" -> {2 * 10 ^ 8, 0}|>] +
SolidBoundaryLoadValue[x == 0, vars, pars, <|"Pressure" -> {0, -2 * 10 ^ 8}|>], SolidFixedCondition[y == 0, vars, pars]}, {u[x, y], v[x, y]}, {x, y}∈Ω]VectorDisplacementPlot[displacement, {x, y}∈Ω, Rule[...]]strain = SolidMechanicsStrain[vars, pars, displacement]MinMax[strain[[1, 1]][[0]]["ValuesOnGrid"]]MinMax[strain[[2, 2]][[0]]["ValuesOnGrid"]]MinMax[strain[[1, 2]][[0]]["ValuesOnGrid"]]平面応力のケースを拡張モデルとして計算する.こうすることで面外歪みが計算できるようになり,面外応力が0であることが検証できる.左端が固定され右側が強制的に変位された矩形の鋼板がある.領域,変数,パラメータを設定する.この変数には3方向すべてが含まれている:
Ω = Rectangle[{0, 0}, {40 * 10 ^ -3, 30 * 10 ^ -3}];
vars = {{u[x, y], v[x, y], w[x, y]}, {x, y, z}};
pars = <|"SolidMechanicsModelForm" -> "ExtendedPlaneStress", "YoungModulus" -> 200 * 10 ^ 9, "PoissonRatio" -> 0.3, "Thickness" -> 10 ^ -4|>;displacement = NDSolveValue[{SolidMechanicsPDEComponent[vars, pars] == {0, 0}, SolidDisplacementCondition[x == 0, vars, pars, <|"Displacement" -> {0, 0}|>], SolidDisplacementCondition[x == 40 * 10 ^ -3, vars, pars, <|"Displacement" -> {-40 / 10 ^ 6, 0}|>]}, {u[x, y], v[x, y], w[x, y]}, {x, y}∈Ω]変位のリストには3つの出力変数が含まれている.主変数の変位を可視化する:
VectorDisplacementPlot[displacement[[1 ;; 2]], {x, y}∈Ω, Rule[...]]strain = SolidMechanicsStrain[vars, pars, displacement]ContourPlot[strain[[3, 3]], {x, y}∈Ω, PlotRange -> All, PlotLegends -> Automatic]stress = SolidMechanicsStress[vars, pars, strain]stress[[3, 3]]定常平面歪み解析 (1)
平面歪みの場合を拡張モデルとして計算する.こうすると,面外応力の計算ができ,面外歪みが0であることが検証できる.領域,変数,パラメータを設定する.変数には3方向すべてが含まれている:
Ω = Rectangle[];
pars = <|"SolidMechanicsModelForm" -> "ExtendedPlaneStrain", "YoungModulus" -> 30 * 10 ^ 3, "PoissonRatio" -> 3 / 10, "Thickness" -> 1|>;
vars = {{u[x, y], v[x, y], 0}, {x, y, z}};op = SolidMechanicsPDEComponent[vars, pars]pde = {op == {0, 0}, SolidFixedCondition[x == 0, vars, pars], SolidDisplacementCondition[x == 1, vars, pars, <|"Displacement" -> {0.1, None}|>]};displacement = NDSolveValue[pde, {u[x, y], v[x, y], 0}, {x, y}∈Ω]strain = SolidMechanicsStrain[vars, pars, displacement]strain[[3, 3]]stress = SolidMechanicsStress[vars, pars, strain]ContourPlot[stress[[3, 3]], {x, y}∈Ω, PlotRange -> All, PlotLegends -> Automatic]静止超弾性平面応力分析 (1)
左端が固定されていて右端に力が加えられた矩形のゴム板の変位を計算する.領域,変数,パラメータを設定する:
Ω = Rectangle[{0, 0}, {1, 1}];
vars = {{u[x, y], v[x, y]}, {x, y}};
pars = <|"SolidMechanicsMaterialModel" -> "NeoHookeanIsotropic", "LameParameter" -> 10 ^ 6, "ShearModulus" -> 5000, "SolidMechanicsModelForm" -> "PlaneStress", "Thickness" -> 0.01|>;displacement = NDSolveValue[
{SolidMechanicsPDEComponent[vars, pars] == SolidBoundaryLoadValue[x == 1, vars, pars, <|"Force" -> {Quantity[300, "Newtons"], 0}|>], SolidFixedCondition[x == 0, vars, pars]}, {u[x, y], v[x, y]}, {x, y}∈Ω];VectorDisplacementPlot[displacement, {x, y}∈Rectangle[{0, 0}, {1, 1}], ...]strains = SolidMechanicsStrain[vars, pars, displacement]ContourPlot[strains[[1, 1]], {x, y}∈Ω, PlotRange -> All]考えられる問題 (1)
デフォルトで,固体力学のフレームワークは線形弾性様式に工学歪みを使う.これはオフにすることができる.
solve[vars_, pars_] := Module[{displacement}, displacement = NDSolveValue[{SolidMechanicsPDEComponent[vars, pars] == {0, 0, 0}, SolidFixedCondition[x == 0, vars, pars], SolidDisplacementCondition[x == 1, vars, pars, <|"Displacement" -> {0.01, None, None}|>]}, vars[[1]], vars[[-1]]∈Cuboid[]];SolidMechanicsStrain[vars, pars, displacement]
]vars = {{u[x, y, z], v[x, y, z], w[x, y, z]}, {x, y, z}};
pars = <|"Material" -> Entity["Element", "Titanium"]|>;str1 = solve[vars, pars];str2 = solve[vars, Join[<|"EngineeringStrain" -> False|>, pars]];特定の点で工学定式化のせん断歪みと通常の歪み定式化との関係が2倍であることを確認する:
pos = {x -> 0.01, y -> 0.025, z -> 0.19};
engineeringStrain = Normal[str1] /. pos;
trueStrain = Normal[str2] /. pos;
Chop[({{1, 2, 2}, {2, 1, 2}, {2, 2, 1}} * trueStrain) - engineeringStrain]テクニカルノート
-
▪
- 固体力学 ▪
- 超弾性 ▪
- 固体力学モデル検証テスト
関連するガイド
テキスト
Wolfram Research (2021), SolidMechanicsStrain, Wolfram言語関数, https://reference.wolfram.com/language/ref/SolidMechanicsStrain.html (2025年に更新).
CMS
Wolfram Language. 2021. "SolidMechanicsStrain." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/SolidMechanicsStrain.html.
APA
Wolfram Language. (2021). SolidMechanicsStrain. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SolidMechanicsStrain.html
BibTeX
@misc{reference.wolfram_2026_solidmechanicsstrain, author="Wolfram Research", title="{SolidMechanicsStrain}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/SolidMechanicsStrain.html}", note=[Accessed: 03-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_solidmechanicsstrain, organization={Wolfram Research}, title={SolidMechanicsStrain}, year={2025}, url={https://reference.wolfram.com/language/ref/SolidMechanicsStrain.html}, note=[Accessed: 03-July-2026]}