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}} * strainTensorMatrixForm[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)
计算底部固定并在其余边施加压力的矩形钢板的位移. 设置区域、变量和参数:
Ω = 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. 矩形钢板左侧固定,右侧有强制位移. 设置区域、变量和参数. 现在变量包括所有三个方向:
Ω = 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}∈Ω]请注意,现在位移列表中有三个输出变量. 查看主要变量的位移:
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. 设置区域、变量和参数. 现在变量包括所有三个方向:
Ω = 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]];在特定点上验证 engineering formulation 的剪切应变与正常 strain formulation 的相关系数为 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 语言. 2021. "SolidMechanicsStrain." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2025. https://reference.wolfram.com/language/ref/SolidMechanicsStrain.html.
APA
Wolfram 语言. (2021). SolidMechanicsStrain. Wolfram 语言与系统参考资料中心. 追溯自 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: 09-November-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: 09-November-2026]}