Contents
|
Engineering
Here are some engineering simulations and artwork along with some Mathematica code. See also my Physics page.
CFM56-5 Turbofan Jet Engine - drawn in AutoCAD 2000, AutoLisp, rendered in POV-Ray 3.6.1, 3/2/07
I saw this cool looking poster of a turbofan engine schematic and it inspired me to make a 3D rendering of it. This engine is used for the Airbus. The streamlines shown here are just for visual effect. In reality, the streamlines would be turbulent. The blue streamlines show where cold air enters and bypasses the engine (turbofans typically have a high bypass ratio). Green streamlines are shown through the compressor stages. The red streamlines show where hot gas exits the burners and turbine stage.
|
Turbofan Blades - rendered in POV-Ray 3.6.1, 3/1/07
3-Phase Brushless DC (BLDC) Motor - POV-Ray 3.6.1, 9/31/06
Finite Element Method (FEM) Solution to Poisson’s equation on Triangular Mesh
solved in Mathematica 4.2, 5/24/06; mesh generated with Gmsh; old version: Matlab and DistMesh

Here is some code to solve Poisson’s equation on an unstructured grid of triangular elements using the Finite Element Method (FEM):
(* runtime: 0.1 second *)
n = 10; nodes = Flatten[Table[{x, y}, {y, -1, 1, 2.0/(n - 1)}, {x, -1, 1, 2.0/(n - 1)}], 1]; elements = Flatten[Table[{{i, i + 1, i + n}, {i + 1, i + n + 1, i + n}} + (j - 1) n, {j, 1, n - 1}, {i, 1, n - 1}], 2]; nnode = Length[nodes]; nelem = Length[elements];
fixed = Map[Position[nodes, #][[1, 1]] &, Select[nodes, Max[Abs[#]] == 1 &]];
Kglobal = Table[0, {nnode}, {nnode}]; F = phi = Table[0, {nnode}];
Scan[(xy =Join[Transpose[nodes[[#]]], {{1, 1, 1}}];deta = Inverse[xy][[All, {1, 2}]]; Kglobal[[#, #]] +=Det[xy]deta.Transpose[deta]/2; F[[#]] += Det[xy]/6) &, elements];
free = Complement[Range[nnode], fixed]; phi[[free]] = LinearSolve[Kglobal[[free, free]], F[[free]]];
Mean[x_] := Plus @@ x/Length[x]; PlotColor[x_] := Hue[2(1 - x)/3];
Show[Graphics[Table[{PlotColor[Mean[phi[[elements[[i]]]]]/Max[phi]], Polygon[nodes[[elements[[i]]]]]}, {i,1, nelem}], AspectRatio -> 1]];
Here is some code for an interpolated plot:
(* runtime: 10 seconds *)
n = 275; x1 = y1 = -1; x2 = y2 = 1; image = Table[0, {n}, {n}];
xIntersect[{{x1_, y1_}, {x2_, y2_}}] := If[y1 == y2, Infinity, x1 + (y - y1)(x2 - x1)/(y2 - y1)];
Scan[(plist = nodes[[#]]; xlist = nodes[[#, 1]]; ylist = nodes[[#, 2]]; p1 = plist[[1]]; {dx2, dy2} = plist[[2]] - p1; {dx3, dy3} = plist[[3]] - p1; Do[y = y1 + (y2 - y1)(i - 1)/(n - 1); {xa, xb,xc} = Map[xIntersect, Partition[Sort[plist, #1[[2]] < #2[[2]] &], 2, 1, 1]]; jlist = Round[n({xc, If[Abs[xb - xc] < Abs[xa - xc], xb, xa]} - x1)/(x2 - x1)]; If[jlist =!= {}, Do[x = x1 + (x2 - x1)(j - 1)/(n - 1); {xi, eta} = ((x - p1[[1]]){dy3, -dy2} + (y - p1[[2]]){-dx3, dx2})/(dx2 dy3 - dx3 dy2); image[[i, j]] = phi[[#]].{1 - xi - eta, xi, eta}, {j, Max[1, Min[jlist]], Min[n, Max[jlist]]}]], {i, Max[1, Round[n(Min[ylist] - y1)/(y2 - y1)]], Min[n, Round[n(Max[ylist] - y1)/(y2 - y1)]]}]) &, elements];
ListDensityPlot[image, Mesh -> False, Frame -> False, ColorFunction -> PlotColor, Epilog -> Map[{Line[Map[({x, y} = nodes[[#, {1, 2}]]; n{(x - x1)/(x2 -x1), (y - y1)/(y2 - y1)}) &, #]]} &, elements]];
|
FEM Solution to Poisson’s equation on Quad Mesh - Mathematica 4.2, AutoCAD 2000, 6/10/07
Here is some code to solve Poisson’s equation on an unstructured grid of quadrilateral elements:
(* runtime: 0.05 second *)
n = 10; nodes = Flatten[Table[{x, y}, {x, -1, 1,2.0/(n - 1)}, {y, -1, 1, 2.0/(n - 1)}], 1]; nnode = Length[nodes]; elements =Flatten[Table[{i, i + 1, i + n + 1, i + n} + (j - 1) n, {j, 1, n - 1}, {i, 1, n - 1}], 1]; nelem = Length[elements];
fixed = Map[Position[nodes, #][[1, 1]] &, Select[nodes, Max[Abs[#]] == 1 &]];
Kglobal = Table[0, {nnode}, {nnode}]; F = phi = Table[0, {nnode}];
Scan[(plist = nodes[[#]]; dphi = {plist[[2]] - plist[[1]],plist[[4]] - plist[[1]]}; B = Inverse[Transpose[dphi].dphi]; C1 = {{2, -2}, {-2, 2}}B[[1, 1]] + {{3, 0}, {0, -3}}B[[1, 2]] + {{2, 1}, {1,2}}B[[2, 2]];C2 = {{-1, 1}, {1, -1}}B[[1, 1]] + {{-3, 0}, {0, 3}} B[[1, 2]] + {{-1, -2}, {-2, -1}}B[[2, 2]]; Kglobal[[#, #]] += Det[dphi]Join[Thread[Join[C1, C2]], Thread[Join[C2, C1]]]/6; F[[#]] += Det[Join[{{1, 1, 1}}, Transpose[nodes[[#[[{1, 2, 3}]], {1, 2}]]]]]/4) &, elements];
free = Complement[Range[nnode], fixed]; phi[[free]] = LinearSolve[Kglobal[[free, free]], F[[free]]];
Mean[x_] := Plus @@ x/Length[x]; PlotColor[x_] := Hue[2(1 - x)/3];
Show[Graphics[Table[{PlotColor[Mean[phi[[elements[[i]]]]]/Max[phi]], Polygon[nodes[[elements[[i]]]]]}, {i, 1, nelem}], AspectRatio -> 1]];
Links
FEM_50 - simple Matlab Poisson solver for quads and triangles
FEM Poisson - paper by Nasser Abbasi
Poisson solver - simple finite volume C code by Jeroen Valk
|
Finite Element Analysis (FEA) - AutoCAD 2000, AutoLisp, Mathematica 4.2, 5/26/06
Here we see the deformation and stress distribution between two gears where the left gear is fixed but the right gear has an applied torque. This was solved using Finite Element Analysis (FEA) to solve the linear elasticity equations for an unstructured grid of quad elements. The color represents the equivalent (Von Mises) stress.
(* runtime: 0.8 second *)
n = 18; dtheta = 2Pi/n; nodes = Flatten[Table[r{Sin[theta], Cos[theta]}, {r, 0.4, 1, 0.2}, {theta, 0, 2Pi - dtheta, dtheta}], 1];
elements = Flatten[Table[n j + Append[Table[i + {0,1, n + 1, n}, {i, 1, n - 1}], {1, n + 1, 2n, n}], {j, 0, 2}], 1]; nnode = Length[nodes]; nelem = Length[elements];
i = 3n/2 + 1; fixed = {{i - 1, "x"}, {i, "x"}, {i, "y"}, {i + 1, "x"}}; loads = {{n + 1, {0, -200}}};
Dkl := 0.25{{-1 + y, 1 - y, 1 + y, -1 - y}, {-1 + x, -1 - x, 1 + x, 1 - x}}; Dkm = 0.25{{-1, 1, 1, -1}, {-1, -1, 1, 1}};
e = 1500; nu = 0.3; Epss = {{1, nu, 0}, {nu, 1, 0}, {0, 0, (1 - nu)/2}}e/(1 - nu^2); thk = 1;
Kglobal = Table[0, {2nnode}, {2nnode}];
Scan[(element = #; enodes = nodes[[element]]; Klocal = Table[0, {8}, {8}]; Kee = Table[0, {4}, {4}]; Kre = Table[0, {8}, {4}]; Scan[({x, y} = #/Sqrt[3]; t = Inverse[Dkl.enodes].Dkl; strain = {{t[[1, 1]], 0, t[[1, 2]], 0, t[[1, 3]], 0, t[[1, 4]], 0}, {0, t[[2, 1]], 0, t[[2, 2]], 0, t[[2, 3]], 0, t[[2, 4]]}, {t[[2, 1]], t[[1, 1]], t[[2, 2]], t[[1, 2]], t[[2, 3]], t[[1, 3]], t[[2, 4]], t[[1, 4]]}}; ttm = -2Inverse[Dkm.enodes].{{x, 0}, {0, y}}; ct = {{ttm[[1,1]], 0, ttm[[1, 2]], 0}, {0, ttm[[2, 1]], 0, ttm[[2, 2]]}, {ttm[[2, 1]], ttm[[1, 1]], ttm[[2, 2]], ttm[[1, 2]]}}Det[Dkm.enodes]/Det[Dkl.enodes]; Dj = thk Abs[Det[Dkl.enodes]]; Klocal += Transpose[strain].(Epss.strain) Dj; Kee += Transpose[ct].(Epss.ct) Dj; Kre += Transpose[strain].(Epss.ct) Dj) &, {{-1, -1}, {1, -1}, {1, 1}, {-1, 1}}];Klocal -= Kre.Inverse[Kee].Transpose[Kre];Do[Kglobal[[2element[[i]] - di, 2element[[j]] - dj]] += Klocal[[2i -di, 2j - dj]], {di, 0, 1}, {dj, 0, 1}, {i, 1, 4}, {j, 1,4}]) &, elements];
Scan[(i = 2#[[1]] - If[#[[2]] == "x", 1, 0]; Kglobal[[i, i]] *= 10^6) &, fixed];
paload = Table[0, {2nnode}]; Scan[(paload[[2#[[1]] - {1, 0}]] = #[[2]]) &, loads];
del = Partition[LinearSolve[Kglobal, paload], 2];
Do[nodes2 = nodes + scale del; Show[Graphics[Map[Polygon[nodes2[[#]]] &, elements], AspectRatio -> Automatic]], {scale, 0, 1, 0.1}];
|
St. Louis Arch - calculated in Mathematica 4.2, rendered in POV-Ray 3.6.1, 10/6/06
The St. Louis Arch is shaped like an upside-down catenary for maximum support. This image was simulated as a system of linear static 1D beam elements. The non-linear animation on the right was simulated using many small linear solutions.
(* runtime: 3 seconds *)
x0 = 299.2239; h = 625.0925; a = 118.6261; n = 20; EA =1000.0;
nodes = Flatten[Table[z = a(Cosh[x0/a] - Cosh[x/a]); r = 54 - 37z/h; Table[{x, 0, z} + r{-Tanh[x/a]Cos[theta], Sin[theta], -Sech[x/a]Cos[theta]}, {theta, 0,4Pi/3, 2Pi/3}], {x, -x0, x0, 2x0/n}], 1];
elements = Flatten[Table[Join[{{1, 2}, {2, 3}, {3, 1}}, If[i < n, {{1, 4}, {2, 5}, {3, 6}, {1, 5}, {2, 6}, {3, 4}}, {}]] + 3i, {i, 0, n}], 1];
nnode = Length[nodes]; nelem = Length[elements]; del = Map[nodes[[#[[2]]]] - nodes[[#[[1]]]] &, elements];
fixed = Join[{1, 2, 3}, nnode - {2, 1, 0}]; nfixed = Length[fixed]; ilist = Flatten[Map[3# - {2, 1, 0} &, Complement[Range[nnode], fixed]], 1];
Kglobal = Sum[d = del[[ielem]]; r = Join[d, -d]; K = EA Map[# r &, r]/(d.d)^1.5; T = Flatten[Table[If[i == 3elements[[ielem, k]] + j, 1, 0], {k, 1, 2}, {j, -2, 0}, {i, 1, 3nnode}], 1]; Transpose[T].K.T, {ielem, 1, nelem}][[ilist, ilist]];
Q = Table[{0, 0, 0}, {nnode - nfixed}]; Q[[Ceiling[nnode/2] - nfixed]] = {0, -1, 0};
q = Partition[LinearSolve[Kglobal, Flatten[Q]], 3]; j = 1; q = Table[If[MemberQ[fixed, i], {0, 0, 0}, q[[j++]]], {i, 1, nnode}];
e = Map[q[[#[[1]]]] - q[[#[[2]]]] &, elements]; s = Map[Sqrt[#.#] &, e]; smax = Max[s];
Do[del2 = del + scale e; nodes2 = nodes; used = Range[nfixed]; Do[Scan[(i2 = elements[[#[[1]], 3 - #[[2]]]]; If[! MemberQ[used, i2],nodes2[[i2]] = nodes2[[i1]] + del2[[#[[1]]]];used = Append[used, i2]]) &, Position[elements, i1]], {i1, 1, nnode}]; Show[Graphics3D[Table[{Hue[2(1 - Min[1, Max[0, scale Abs[s[[i]]]/smax]])/3], Line[nodes2[[elements[[i]]]]]}, {i, 1, nelem}]]], {scale, 0, 1, 0.1}];
Links
Deflecting Arch - Mathematica animation by L. Zamiatina
Space Truss - Mathematica notebook by Carlos Felippa
Sim-POV - mechanics simulations for POV-Ray by Christoph Hormann
|
Flapping Wing - Fortran 90, rendered in POV-Ray 3.6.1, 4/28/06
This flapping wing was calculated using the unsteady vortex panel method adapted from Alan Lai’s Fortran code. It assumes inviscid incompressible potential flow (irrotational). I also have a working Mathematica version of this code, but it is a little lengthy to show here.
Links
Unsteady Panel Code Simulations - by Kevin Jones
Insect Flight - Jane Wang made one of the first simulations to predict that an insect can produce sufficient lift to remain aloft. Here is another article about it. See also these Vortex Method Simulations by Jeff Eldredge.
Robotic Fly - Uses piezoelectric actuators, by Ron Fearing. See also his Microfly with piezoelectric actuators.
Harvard Microrobotics Lab - see this video
Flapping MAV - interesting design by Kevin Jones
Biomimetics - Biomimetics is the study of biological mechanisms in order to engineer machines that can mimic them.
RoboCup - International robotic soccer competitions. Their goal is to build robots that can defeat champion human soccer players by the year 2050. It looks like they still have a way to go. See also RoboGames.
Bionic Dolphin - this submarine is too buoyant to go underwater, but when it is going fast enough, its "flippers" work like upside-down airplane "wings" to force it under water.
Airic's Arm - bionic arm operated by "Fluidic Muscles"
more biomimetics links: Air-Ray (very cool flying manta ray), Aqua-Ray (underwater manta ray), Snake Robot (see video and sidewinding snake), robotic dragonfly toy, NASA's robotic serpent, BigDog, Spinybot II wall climber, RoboPike, robotic caterpillar, RoboSnail, robotic mule, RoboStrider, RoboRoach hexapod, robotic dolphin, RoboLobster
|
Joukowski Airfoil - C++, 11/8/07
These animations were created using a conformal mapping technique called the Joukowski Transformation. A Joukowski airfoil can be thought of as a modified Rankine oval. It assumes inviscid incompressible potential flow (irrotational). Potential flow can account for lift on the airfoil but it cannot account for drag because it does not account for the viscous boundary layer (D'Alembert's paradox). In these animations, red represents regions of low pressure. The left animation shows what the surrounding fluid looks like when the Kutta condition is applied. Notice that the fluid separates smoothly at the trailing edge of the airfoil and a low pressure region is produced on the upper surface of the wing, resulting in lift. The lift is proportional to the circulation around the airfoil. The right animation shows what the surrounding fluid looks like when there is no circulation around the airfoil (stall). Notice the sharp singularity at the trailing edge of the airfoil.
|
Joukowski Airfoil - Mathematica 4.2, 11/2/05
Here is an animation that shows how the streamlines change when you increase the circulation around the airfoil. (Please note: The background fluid motion in this animation is just for effect and is not accurate!) Here is some Mathematica code to plot the streamlines and pressure using Bernoulli’s equation:
(* runtime: 13 seconds *)
U = rho = 1; chord = 4; thk = 0.5; alpha = Pi/9; y0 = 0.2; x0 = -thk/5.2; L = chord/4; a = Sqrt[y0^2 + L^2]; gamma = 4Pi a U Sin[alpha + ArcCos[L/a]];
w[z_, sign_] := Module[{zeta = (z + sign Sqrt[z^2 - 4 L^2])/2}, zeta = (zeta - x0 - I y0)Exp[-I alpha]/Sqrt[(1 - x0)^2 + y0^2]; U(zeta + a^2/zeta) + I gamma Log[zeta]/(2Pi)];
sign[z_] := Sign[Re[z]]If[Abs[Re[z]] < chord/2 && 0 < Im[z] < 2y0(1 - (2Re[z]/chord)^2), -1, 1];w[z_] := w[z, sign[z]]; V[z_] = D[w[z, sign], z] /. sign -> sign[z];
<< Graphics`Master`;
DisplayTogether[DensityPlot[-0.5rho Abs[V[(x + I y)Exp[I alpha]]]^2, {x, -3, 3}, {y, -3, 3}, PlotPoints -> 275, Mesh -> False, Frame -> False, ColorFunction -> (If[# == 1, Hue[0, 0, 0], Hue[(5# - 1)/6]] &)],ContourPlot[Im[w[(x + I y)Exp[I alpha]]], {x, -3, 3}, {y, -3, 3}, Contours -> Table[x^3 + 0.0208, {x, -2, 2, 0.1}], PlotPoints -> 100, ContourShading -> False], AspectRatio -> Automatic];
Links
Joukowski Animation - nice animation showing how the fluid moves
Joukowski Airfoil - nice Java applet by NASA
Nikolai Joukowski - used this technique to find the lift on an airfoil in 1906, long before modern computers
|
NACA Airfoil - Mathematica 4.2, 12/16/05
Here is a 9415 NACA airfoil. It’s almost shaped the same as the Joukowski airfoil (but it’s a little different):
(* runtime: 0.01 second *)
n = 40; c = 0.09; p = 0.4; t = 0.15;
Clear[x]; camber := c If[x < p, (2p x - x^2)/p^2, ((1 - 2p) + 2p x - x^2)/(1 - p)^2]; theta = ArcTan[D[camber, x]];
p = Table[x = 0.5(1 - Cos[Pi s]); x1 = 1.00893x; thk = 5t(0.2969Sqrt[x1] - 0.126x1 - 0.3516x1^2 + 0.2843x1^3 - 0.1015x1^4); {x, camber} + Sign[s]thk {-Sin[theta],Cos[theta]}, {s, -1, 1, 2/(n - 1)}];
ListPlot[p, PlotJoined -> True, AspectRatio -> Automatic];
We can approximate the pressure profile using the vortex panel method assuming inviscid incompressible potential flow (irrotational). The following Mathematica code was adapted from my Fortran program for my 4/25/99 research project on optimal airfoil design:
(* runtime: 0.3 second *)
alpha = Pi/9; pc = Table[(p[[i]] + p[[i + 1]])/2, {i, 1, n - 1}]; s = Table[v = p[[i + 1]] - p[[i]];Sqrt[v.v], {i, 1, n - 1}]; theta = Table[v = p[[i + 1]] - p[[i]]; ArcTan[v[[1]], v[[2]]], {i, 1, n - 1}]; sin = Sin[theta]; cos = Cos[theta]; Cn1 = Cn2 = Ct1 = Ct2 =Table[0, {n - 1}, {n - 1}];
Do[If[i == j, Cn1[[i, j]] = -1; Cn2[[i, j]] = 1; Ct1[[i, j]] = Ct2[[i, j]] = Pi/2,v = pc[[i]] - p[[j]]; a = -v.{cos[[j]], sin[[j]]}; b = v.v;t = theta[[i]] - theta[[j]];c = Sin[t]; d = Cos[t]; e = v.{sin[[j]], -cos[[j]]}; f =Log[1 + s[[j]](s[[j]] + 2a)/b]; g = ArcTan[b + a s[[j]], e s[[j]]];t = theta[[i]] - 2theta[[j]]; p1 = v.{Sin[t], Cos[t]}; q = v.{Cos[t], -Sin[t]}; Cn2[[i, j]] = d + (0.5q f - (a c + d e)g)/s[[j]]; Cn1[[i, j]] = 0.5d f + c g - Cn2[[i, j]];Ct2[[i, j]] = c + 0.5p1 f/s[[j]] + (a d - c e)g/s[[j]]; Ct1[[i, j]] = 0.5c f - d g - Ct2[[i, j]]], {i, 1, n - 1}, {j, 1, n - 1}];
gamma = LinearSolve[Table[If[i == n, If[j == 1 || j == n, 1, 0], If[j == n, 0, Cn1[[i, j]]] + If[j == 1, 0, Cn2[[i, j - 1]]]], {i, 1, n}, {j, 1, n}], Table[If[i ==n, 0, Sin[theta[[i]] - alpha]], {i, 1, n}]];
ListPlot[Table[q = Cos[theta[[i]] - alpha] + Sum[(If[j == n, 0, Ct1[[i, j]]] + If[j == 1, 0, Ct2[[i, j - 1]]])gamma[[j]], {j, 1, n}]; {pc[[i, 1]], 1 - q^2}, {i, 1, n - 1}], PlotJoined -> True];
Here is some code for a pretty pressure plot:
(* runtime: 33 seconds *)
w[z_] := z Exp[-I alpha] + I Sum[s[[j]]gamma[[j]]Log[z - pc[[j, 1]] - I pc[[j, 2]]], {j, 1, n - 1}]; V[z_] = D[w[z], z];
DensityPlot[-Abs[V[(x + I y)Exp[I alpha]]]^2, {x, -0.25, 1.25}, {y, -0.75, 0.75}, PlotPoints -> 275, Mesh -> False, Frame -> False, ColorFunction -> (Hue[(5# - 1)/6] &), AspectRatio -> Automatic];
Links
Panel Code - by Kevin Jones
Vortex Panel Java applet - by William Devenport
|
Four-Stroke Otto Cycle - POV-Ray 3.6.1
Differential Transmission - POV-Ray 3.6.1
Torque Converter - POV-Ray 3.6.1
under construction
|
Helicopter Rotor
Involute Gears - POV-Ray 3.6.1, 7/12/06
The ideal profile for a gear tooth is the involute of a circle. Here is some Mathematica code:
IR = 0.875; OR = 1.125; tmax = Sqrt[OR^2/IR^2 - 1]; theta := Abs[tmax - Mod[t, 2tmax]]; sign := 2Floor[Mod[t/tmax, 2]] - 1;
Rotate[{x_, y_}, theta_] := {x Cos[theta] - y Sin[theta], x Sin[theta] + y Cos[theta]};
ParametricPlot[IR Rotate[{Cos[theta] + theta Sin[theta], sign(Sin[theta] - theta Cos[theta])}, Floor[t/(2tmax)]Pi/5 + 0.109152sign], {t, 0, 20.001tmax}, AspectRatio -> 1];
See also my gear orbit trap.
Links
Gears Trefoil - by Michael Trott
PentaGear - gear sphere by Jeffrey Pettyjohn using GearTrax
|
Expanding Dodecahedron - POV-Ray 3.6.1, 2/1/07
This dodecahedron unfolds and expands by a factor of 2.61803 (the golden ratio plus one). You could possibly construct something similar to this. I think it would make an interesting display for the entrance to a children’s science museum.
Link: Hoberman Sphere - icosidodecahedron toy that expands
|
Cube - POV-Ray 3.6.1, 1/31/07
This is a cube that expands by a factor of 3. I think it would be difficult to contruct this.
Link: Atomium - amazing 335 foot tall cube building in Brussels built in 1958
|
Torsion Beam - calculated in Mathematica 4.2, rendered in POV-Ray 3.6.1, 5/3/06
Here is an exaggerated example of a beam being twisted. The following code is based on Stephen Timoshenko’s analytical solution. The color represents the equivalent (Von Mises) stress where red is high stress and blue is low stress.
(* runtime: 12 seconds *)
a = b = 2.0; L = 10; T = G = 1; J = 16/3a^3b(1 - 196a/(b Pi^5)Sum[n^-5Tanh[n Pi b/(2a)], {n, 1, 200, 2}]); k = T/(G J);
phi = 32G k a/Pi^3Sum[1/n^3(-1)^((n - 1)/2)(1 - Cosh[n Pi y/(2a)]/Cosh[n Pi b/(2a)])Cos[n Pi x/(2a)], {n, 1, 10, 2}];
tauyz = -D[phi, x]; tauxz = D[phi, y]; tauxy = sx = sy = sz = 0;
f[x_, y_, z_] := Module[{}, {s1, s2, s3} = Eigenvalues[{{sx, tauxy, tauxz}, {tauxy, sy, tauyz}, {tauxz, tauyz, sz}}]; sv = Sqrt[((s1 - s2)^2 + (s2 - s3)^2 + (s3 - s1)^2)/2]; {x - k z y, y + k z x, z, {EdgeForm[], SurfaceColor[Hue[2(1 - sv/0.029)/3]]}}];
<< Graphics`Master`;
DisplayTogether[Map[{ParametricPlot3D[f[#a/2, y, z], {y, -b/2, b/2}, {z, 0,L}, Compiled -> False], ParametricPlot3D[f[x, #b/2, z], {x, -a/2, a/2}, {z, 0, L}, Compiled -> False]} &, {-1, 1}], ParametricPlot3D[f[x, y, L], {x, -a/2, a/2}, {y, -b/2, b/2}, Compiled -> False]];
Links
Computer Modeling - class notes by Nasser Abbasi
Torsional Analysis - part of the Structural Mechanics Mathematica package
|
Solution to Poisson’s equation on Structured Grid - calculated in GridPro, rendered in POV-Ray 3.6.1, 10/5/06
Here is a structured hexahedral mesh. We use GridPro for generating complicated grids for our CFD applications. GridPro optimizes the grid spacing by placing gridpoints along isocontours of the solution to the Poisson equation.
|
Unstructured Tetrahedral Meshed Sphere - DistMesh, Matlab, POV-Ray 3.6.1, 6/12/06
Folding Wing Aircraft
calculated in CFL3D (Computational Fluids Laboratory 3D), rendered in POV-Ray 3.6.1, 11/3/06
This is a preliminary test of a proposed project to simulate the wing fluttering of an aircraft with folding wings. This was solved using the finite volume method for 3D, steady, compressible, viscous, laminar flow on a curvilinear grid. This image shows the pressure distribution over the wings.
Links
papers - wing flutter and gridless methods by Feng Liu
|
Supersonic Flow - CFL3D (Computational Fluids Laboratory 3D), Tecplot 360, 2/1/07
Simply Loaded Beam - Patran, Nastran (NASA Structural Analysis), 9/28/06
Nastran was originally created by NASA but now other companies are distributing it. This was a simple class assignment. I’m planning to post a more interesting picture here later.
|
Other Engineering Links
The Future of Things (TFOT) - tons of high-tech gadgets
Freedom Ship - proposed ship, 3 million tons, 4500 feet long
Habbakuk - proposed Pykrete aircraft carrier during World War II, 2 million tons, 2000 feet long
Space Elevator - made from carbon nanotubes
Microsubmarine
PowerLabs (Sam Barros) - impressive projects, see the rail gun, jet turbine, and high speed CD-Rom experiments
Motorized Surfboard
Flexinol - wires that electronically contract like muscles, sample kit was $30 last time I checked
Air Muscle - interesting actuator
Holographic Flat Panel - uses parallax to create a 3D effect, no glasses required
World’s Smallest Internal Combustion Engine
wind-powered art sculpture - weighs nearly 3 tons with living quarters inside
Cloud-busting - how to make it rain using liquid nitrogen
Architecture Links
Extreme Engineering - interesting Discovery web site on ambitious architectural plans
Skyscraper Page - over 16000 scale drawings of famous buildings
The Palm Island - man-made island in Dubai
ETFE (Ethylene Tetrafluoroethylene) - new high strength insulating plastic, check out this amazing picture
Khan Shatyry Entertainment Center - giant cultural complex
Watercube (Beijing National Aquatics Center) - world’s largest ETFE structure
Eden Project - world’s largest greenhouse
|