3d_bimetal

<< Click to Display Table of Contents >>

Navigation:  Sample Problems > Applications > Stress >

3d_bimetal

Previous pageReturn to chapter overviewNext page

{ 3D_BIMETAL.PDE

 

 This problem considers a small block of aluminum bonded to a larger block

 of iron.  The assembly is held at a fixed temperature at the bottom, and

 is convectively cooled on the sides and top.  We solve for the 3D temperature

 distribution, and the associated deformation and stress.

 

 All faces of the assembly are unconstrained, allowing it to grow as the

 temperature distribution demands.  We do not use an integral constraint

 to cancel translation and rotation, as we have done in 2D samples,

 because in 3D this is very expensive.  Instead, we let FlexPDE find a solution,

 and then remove the mean translation and rotation before plotting.

 

}  

 

title 'Bimetal Part'  

 

coordinates  

   cartesian3  

 

select  

   painted   { show color-filled contours }  

   biprecon { use the Block-Inverse preconditioner - it works better than the default ICCG }  

 

variables  

   Tp       { temperature difference from stress-free state }  

   U         { X displacement }  

   V         { Y displacement }  

   W         { Z displacement }  

 

materials

  'iron' :

      K = 0.11           { thermal conductivity }

      E = 20e11         { Youngs modulus }

      nu = 0.28         { expansion coefficient }

      alpha =  1.7e-6   { Poisson's Ratio  }

 

  'aluminum' :

      K = 0.5

      E = 6e11

      nu = 0.25

      alpha =  2*(2.6e-6)             ! Exaggerate expansion

 

  'default' :

      K = 1

      E = 1e11

      nu = 0.1

      alpha =  1e-6

 

definitions  

   long = 1  

   wide = 0.3  

   high = 1  

   tabx = 0.2  

   taby = 0.4  

 

   Q = 0               { Thermal source }  

   Ta = 0.             { define the ambient thermal sink temperature }  

 

  { define the constitutive relations }  

   G = E/((1+nu)*(1-2*nu))  

   C11 = G*(1-nu)  

   C12 = G*nu  

   C13 = G*nu  

   C22 = G*(1-nu)  

   C23 = G*nu  

   C33 = G*(1-nu)  

   C44 = G*(1-2*nu)/2  

   b = G*alpha*(1+nu)  

 

  { Strains }  

   ex = dx(U)  

   ey = dy(V)  

   ez = dz(W)  

   gxy = dy(U) + dx(V)  

   gyz = dz(V) + dy(W)  

   gzx = dx(W) + dz(U)  

 

  { Stresses }  

   Sx  =  C11*ex + C12*ey + C13*ez - b*Tp  

   Sy  =  C12*ex + C22*ey + C23*ez - b*Tp  

   Sz  =  C13*ex + C23*ey + C33*ez - b*Tp  

   Txy =  C44*gxy  

   Tyz =  C44*gyz  

   Tzx =  C44*gzx  

 

  { find mean translation and rotation }  

   Vol = Integral(1)  

   Tx = integral(U)/Vol                   { X-motion }  

   Ty = integral(V)/Vol                   { Y-motion }  

   Tz = integral(W)/Vol                   { Z-motion }  

   Rz = 0.5*integral(dx(V) - dy(U))/Vol   { Z-rotation }  

   Rx = 0.5*integral(dy(W) - dz(V))/Vol   { X-rotation }  

   Ry = 0.5*integral(dz(U) - dx(W))/Vol   { Y-rotation }  

 

  { displacements with translation and rotation removed }  

  { This is necessary only if all boundaries are free }  

   Up = U - Tx + Rz*y - Ry*z  

   Vp = V - Ty + Rx*z - Rz*x  

   Wp = W - Tz + Ry*x - Rx*y  

 

  { scaling factors for displacement plots }  

   Mx = 0.2*globalmax(magnitude(y,z))/globalmax(magnitude(Vp,Wp))  

   My = 0.2*globalmax(magnitude(x,z))/globalmax(magnitude(Up,Wp))  

   Mz = 0.2*globalmax(magnitude(x,y))/globalmax(magnitude(Up,Vp))  

   Mt = 0.4*globalmax(magnitude(x,y,z))/globalmax(magnitude(Up,Vp,Wp))  

 

initial values  

   Tp = 5.  

   U = 1.e-5  

   V = 1.e-5  

   W = 1.e-5  

 

equations  

   Tp: div(k*grad(Tp)) + Q = 0.         { the heat equation }  

   U:  dx(Sx) + dy(Txy) + dz(Tzx) = 0   { the U-displacement equation }  

   V:  dx(Txy) + dy(Sy) + dz(Tyz) = 0   { the V-displacement equation }  

   W:  dx(Tzx) + dy(Tyz) + dz(Sz) = 0   { the W-displacement equation }  

 

extrusion z = 0,long  

 

boundaries  

  surface 1 value(Tp)=100             { fixed temp bottom }  

  surface 2 natural(Tp)=0.01*(Ta-Tp) { poor convective cooling top }  

 

  Region 1   { Iron }  

      use material 'iron'

      start(0,0)  

        natural(Tp) = 0.1*(Ta-Tp)     { better convective cooling on vertical sides }  

        line to (wide,0)  

          to (wide,(high-taby)/2)  

          to (wide+tabx,(high-taby)/2)  

          to (wide+tabx,(high+taby)/2)  

          to (wide,(high+taby)/2)  

          to (wide,high)  

          to (0,high)  

          to close  

 

    Region 2   { Aluminum }  

      use material 'aluminum'

      start(wide,(high-taby)/2)  

        line to (wide+tabx,(high-taby)/2)  

          to (wide+tabx,(high+taby)/2)  

          to (wide,(high+taby)/2)  

          to close  

 

monitors  

  contour(Tp) on y=high/2 as "Temperature"  

  contour(Up) on y=high/2 as "X-displacement"  

  contour(Vp) on x=4*wide/5 as "Y-displacement"  

  contour(Wp) on y=high/2 as "Z-displacement"  

  grid(x+Mt*Up,y+Mt*Vp,z+Mt*Wp) as "Shape"  

  grid(x+My*Up,z+My*Wp) on y=high/2 as "XZ Shape"  

  grid(y+Mx*Vp,z+Mx*Wp) on x=wide/2 as "YZ Shape"  

  grid(x+Mz*Up,y+Mz*Vp) on z=long/4 as "XY Shape"  

 

plots  

  glcontour(Tp)

  contour(Tp) on y=high/2 as "XZ Temperature"  

  contour(Up) on y=high/2 as "X-displacement"  

  contour(Vp) on x=4*wide/5 as "Y-displacement"  

  contour(Wp) on y=high/2 as "Z-displacement"  

  glgrid(x+Mt*Up,y+Mt*Vp,z+Mt*Wp) as "Shape"

  grid(x+Mt*Up,y+Mt*Vp,z+Mt*Wp) as "Shape"  

  grid(x+My*Up,z+My*Wp) on y=high/2 as "XZ Shape"  

  grid(y+Mx*Vp,z+Mx*Wp) on x=4*wide/5 as "YZ Shape"  

  grid(x+Mz*Up,y+Mz*Vp) on z=long/4 as "XY Shape"  

  contour(Sx) on y=high/2 as "X-stress"  

  contour(Sy) on y=high/2 as "Y-stress"  

  contour(Sz) on y=high/2 as "Z-stress"  

  contour(Txy) on y=high/2 as "XY Shear stress"  

  contour(Tyz) on y=high/2 as "YZ Shear stress"  

  contour(Tzx) on y=high/2 as "ZX Shear stress"  

 

end