Following the question in this post, I am trying to do a stress analysis by including thermal strain. @user21 already showed how to do a pre-stressed analysis. Analogically, I modified the code and included a thermal strain term. Let's consider a very simple case that the thermal strain [Epsilon]t is uniform in the body.
\[Epsilon]t = 0.0001.
pst = {Inactive[
Div][{{-(Y/(1 - \[Nu]^2)),
0}, {0, -((Y*(1 - \[Nu]))/(2*(1 - \[Nu]^2)))}} .
Inactive[Plus][
Inactive[Grad][u[x, y], {x, y}], {\[Epsilon]t, 0}], {x, y}] +
Inactive[
Div][{{0, -((Y*\[Nu])/(1 - \[Nu]^2))}, {-((Y*(1 - \[Nu]))/(2*(1 \- \[Nu]^2))), 0}} .
Inactive[Plus][
Inactive[Grad][v[x, y], {x, y}], {0, \[Epsilon]t}], {x, y}],
Inactive[
Div][{{0, -((Y*(1 - \[Nu]))/(2*(1 - \[Nu]^2)))}, \
{-((Y*\[Nu])/(1 - \[Nu]^2)), 0}} .
Inactive[Plus][
Inactive[Grad][u[x, y], {x, y}], {\[Epsilon]t, 0}], {x, y}] +
Inactive[
Div][{{-((Y*(1 - \[Nu]))/(2*(1 - \[Nu]^2))),
0}, {0, -(Y/(1 - \[Nu]^2))}} .
Inactive[Plus][
Inactive[Grad][v[x, y], {x, y}], {0, \[Epsilon]t}], {x, y}]};
Let's consider the same geometry, but with the beam bottom and left surfaces restrained and no external forces applied:
Needs["NDSolve`FEM`"];
L = 1;
h = 0.125;
reg = Rectangle[{0, -h}, {L, h}];
mesh = ToElementMesh[reg];
materialParameters = {Y -> 10^3, \[Nu] -> 33/100};
{uif, vif} =
NDSolveValue[{pst == {0, 0},
DirichletCondition[u[x, y] == 0, x == 0],
DirichletCondition[v[x, y] == 0, y == -h]} /.
materialParameters, {u, v}, {x, y} \[Element] mesh];
dmesh = ElementMeshDeformation[mesh, {uif, vif}, "ScalingFactor" -> 1];
Show[{mesh["Wireframe"],
dmesh["Wireframe"[
"ElementMeshDirective" -> Directive[EdgeForm[Red], FaceForm[]]]]}]
I think the problem is straightforward, but I cannot make this code run. Can anybody help?
et[x,y]
. I used linear function as an example. Practically we should include equation for temperature in the system and solve it together with elasticity equations. $\endgroup$et
underDiv[]
operator. So withet=T0
we have zero effect. Linear function it is the simplest case of thermal effect. Also we can put this on a border as aDirichletCondition[]
orNeumannValue[]
. But you put both zero. So what effect you expect? $\endgroup$