# 三次元の構造力学

Graphics3Dを指定する．

 In[2]:= XNeeds["NDSolve`FEM`"] mesh = ToElementMesh[DiscretizeGraphics[gr], "MeshOrder" -> 1]
 Out[2]=

 In[3]:= XstressOperator[ Y_, \[Nu]_] := {Inactive[ Div][({{0, 0, -((Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu])))}, {0, 0, 0}, {-(Y/(2 (1 + \[Nu]))), 0, 0}}.Inactive[Grad][ w[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{0, -((Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu]))), 0}, {-(Y/(2 (1 + \[Nu]))), 0, 0}, {0, 0, 0}}.Inactive[Grad][ v[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{-((Y (1 - \[Nu]))/((1 - 2 \[Nu]) (1 + \[Nu]))), 0, 0}, {0, -(Y/(2 (1 + \[Nu]))), 0}, {0, 0, -(Y/(2 (1 + \[Nu])))}}.Inactive[Grad][ u[x, y, z], {x, y, z}]), {x, y, z}], Inactive[Div][({{0, 0, 0}, {0, 0, -((Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu])))}, {0, -(Y/( 2 (1 + \[Nu]))), 0}}.Inactive[Grad][ w[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{0, -(Y/(2 (1 + \[Nu]))), 0}, {-((Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu]))), 0, 0}, {0, 0, 0}}.Inactive[Grad][u[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{-(Y/(2 (1 + \[Nu]))), 0, 0}, {0, -((Y (1 - \[Nu]))/((1 - 2 \[Nu]) (1 + \[Nu]))), 0}, {0, 0, -(Y/(2 (1 + \[Nu])))}}.Inactive[Grad][ v[x, y, z], {x, y, z}]), {x, y, z}], Inactive[Div][({{0, 0, 0}, {0, 0, -(Y/(2 (1 + \[Nu])))}, {0, -(( Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu]))), 0}}.Inactive[Grad][ v[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{0, 0, -(Y/(2 (1 + \[Nu])))}, {0, 0, 0}, {-((Y \[Nu])/((1 - 2 \[Nu]) (1 + \[Nu]))), 0, 0}}.Inactive[Grad][u[x, y, z], {x, y, z}]), {x, y, z}] + Inactive[ Div][({{-(Y/(2 (1 + \[Nu]))), 0, 0}, {0, -(Y/(2 (1 + \[Nu]))), 0}, {0, 0, -(( Y (1 - \[Nu]))/((1 - 2 \[Nu]) (1 + \[Nu])))}}.Inactive[Grad][ w[x, y, z], {x, y, z}]), {x, y, z}]}

クランク軸の境界が，これらの位置において固定されたままとなるような制約条件を指定する．

 In[4]:= XSubscript[\[CapitalGamma], D] = {DirichletCondition[{u[x, y, z] == 0., v[x, y, z] == 0., w[x, y, z] == 0.}, {y <= 0.1, y >= 890}]};

 In[5]:= XSubscript[\[CapitalGamma], L] = NeumannValue[-10000., ((217 <= y <= 256) && (40 <= z <= 103)) || ((584 <= y <= 622) && (40 <= z <= 103))];

 In[6]:= X{uif, vif, wif} = NDSolveValue[{stressOperator[10^9, 33/100] == {0, 0, Subscript[\[CapitalGamma], L]}, Subscript[\[CapitalGamma], D]}, {u, v, w}, {x, y, z} \[Element] mesh];

 Out[7]=

## Mathematica

Questions? Comments? Contact a Wolfram expert »