Generalizations of the Fundamental Theorem of Calculus (Part II)

Using Divergence theorem to find London attraction potential between point particle and a finite cylinder.

Find Overscript[F, →] such that div Overscript[F, →] is -1/(Overscript[r, →] - Overscript[x, →])^6   where Overscript[r, →] = (ξ,η,ζ) is a position in the cylinder and Overscript[x, →]=(x,y,z) is a general position in space (A fairly general method to do this and similar problems can be found in Argento C; Jagota A; Carter WC ``Surface formulation for molecular interactions of macroscopic bodies'' J.Mech. Physics Solids 1997,  pp 1161-1183 .

The following is a ``guess'' at the vector potential; it will be verified as the correct one by checking its divergence.

In[1]:=

FVecLondon = 1/(3 ((ξ - x)^2 + (η - y)^2 + (ζ - z)^2)^3) {ξ - x, η - y, ζ - z}

Out[1]=

In[2]:=

<<Calculus`VectorAnalysis`

The following verifies that the correct vector potential is obtained

In[3]:=

FullSimplify[Div[FVecLondon, Cartesian[ξ, η, ζ]]]

Out[3]=

-1/((z - ζ)^2 + (y - η)^2 + (x - ξ)^2)^3

Therefore,  ∫_ (CylinderVolume)1/(Overscript[r, →] - Overscript[x, →])^6dV = ∫_ (CylinderSurfaces)Overscript[FVecLondon, →]dOverscript[A, →] =  ∫_ (CylinderSurface)Overscript[FVecLondon, →]dOverscript[A, →]+ ∫_ (CylinderEnds)Overscript[FVecLondon, →]dOverscript[A, →] is the total interaction between a point an a cylinder.

Cylindrical coordinates: (ξ,η,ζ) = (r Cos[t], r Sin[t], ζ):
One cylindrical surface  r= R = const. t ∈ (0, 2π), ζ ∈ (-L/2 , L/2)
Two caps r ∈ (0,R) t ∈ (0, 2π), ζ=±L/2

Cylinder Surface normals and differential quantities

The following is a parametric representation of a cylinder surface that is coaxial with the z-axis (the cylinder ends will be included later)

In[4]:=

CylSurf = {R Cos[t], R  Sin[t], ζ}

Out[4]=

{R Cos[t], R Sin[t], ζ}

The infinitessimal surface vectors Overscript[R_u, →] and Overscript[R_v, →] for the cylinder surface are obtained by differentiation; they will be used to find the surface patch dOverscript[A, →].

In[5]:=

CylSurfRt = D[CylSurf, t]

CylSurfRz    = D[CylSurf, ζ]

Out[5]=

{-R Sin[t], R Cos[t], 0}

General :: spell1 : Possible spelling error: new symbol name \"CylSurfRz\" is similar to existing symbol \"CylSurfRt\".  More…

Out[6]=

{0, 0, 1}

The surface normal given by Overscript[R_u, →] × Overscript[R_v, →] for the cylinder surface, there for the following (multiplied by dθ dz) is the infinitessimal oriented surface patch dOverscript[A, →].

In[7]:=

NormalVecCylSurf = Cross[CylSurfRt, CylSurfRz]

Out[7]=

{R Cos[t], R Sin[t], 0}

The integrand to be evaluated over the cylinder surface is the vector potential, dotted into

In[8]:=

CylinderIntegrandθζ = FullSimplify[(FVecLondon/.{ξ→R Cos[t], η→ R Sin[t]}) . NormalVecCylSurf]

Out[8]=

(R (R - x Cos[t] - y Sin[t]))/(3 (R^2 + x^2 + y^2 + (z - ζ)^2 - 2 R (x Cos[t] + y Sin[t]))^3)

Closed form for integral is un-findable, use a numeric integration--this will be written in two forms
1) A general function of x,y,z of the point particle and the cylinder radius and length.
2) Because of the polar symmetry, the integral should  be a function of only r = (x^2 + y^2)^(1/2)

We can use the same function name twice, but with a different number of arguments.  But, first we will try to do at least one of the two integrations symbolically.  If we can do this, it will reduce the original numerical integration from three dimensions down to 1---which is a nice bargain if we can find it.

Try and see if we can do one of the two integrals.  First, let's try theta:

In[9]:=

Integrate[CylinderIntegrandθζ, t, Assumptions->R > 0 &&  ζ ∈ Reals && x ∈ Reals&&y∈ Reals&& z ∈ Reals]

Out[9]=

The integral over theta gives no symbolic form...Try and see if we can do one of the two integrals.  So, let's try ζ:

In[10]:=

Out[10]=

Here we will use a trickof using Evaluate[] in a function definition to save time--a small diversion here will demonstrate why this is efficient

In[17]:=

In[18]:=

CylinderContribution[x_, y_, z_, CylRad_ , CylLen_] := NIntegrate[Evaluate[CylinderIntegrandθ[x, y, z, CylRad, CylLen], {t, 0, 2π}]]

Because of the polar symmetry, this contribution should only be a function of the distance ((x^2 + y^2)^(1/2)), so we can write a new function (with the same name) with fewer arguments

In[19]:=

CylinderContribution[dist_, z_, CylRad_ , CylLen_] := NIntegrate[Evaluate[CylinderIntegrandθ[dist, 0, z, CylRad, CylLen], {t, 0, 2π}]]

Checking the numerical integration for the first form of the function

In[20]:=

CylinderContribution[2, 2, 1/2, 1, 1]

Out[20]=

-0.0116174

Checking the numerical integration for the second form of the function

In[21]:=

CylinderContribution[2 Sqrt[2], 1/2, 1, 1]

Out[21]=

-0.0116174

Top Cap Surface normals and differential quantities, parallel method to cylinder surface

In[22]:=

TopSurf = {r Cos[t], r Sin[t], L/2}

Out[22]=

{r Cos[t], r Sin[t], L/2}

In[23]:=

TopSurfRt = D[TopSurf, t]

TopSurfRr    = D[TopSurf, r]

Out[23]=

{-r Sin[t], r Cos[t], 0}

General :: spell1 : Possible spelling error: new symbol name \"TopSurfRr\" is similar to existing symbol \"TopSurfRt\".  More…

Out[24]=

{Cos[t], Sin[t], 0}

The oriented surface patch dOverscript[A, →] for the top surface is the following (multiplied by dr dθ)

In[25]:=

NormalVecTopSurf = FullSimplify[Cross[TopSurfRr, TopSurfRt]]

Out[25]=

{0, 0, r}

In[26]:=

TopIntegrandθr   = FullSimplify[(FVecLondon/.{ξ→r Cos[t], η→ r Sin[t], ζ→L/2}) . NormalVecTopSurf]

Out[26]=

(r (L - 2 z))/(6 (1/4 (L - 2 z)^2 + (x - r Cos[t])^2 + (y - r Sin[t])^2)^3)

Because we will need to numerically integrate over r and over t, we might try the same trick as above and see if one of these integrals can be expressed in closed form.

Integrating over θ doesn't provide a closed form (this next step takes a while to evaluate...)

In[27]:=

Integrate[TopIntegrandζr, {t, 0, 2π}, Assumptions → r ≥ 0 && L > 0 &&  x∈ Reals && y ∈ Reals && z ∈ Reals]

General :: spell1 : Possible spelling error: new symbol name \"TopIntegrandζr\" is similar to existing symbol \"TopIntegrandθr\".  More…

Integrate[(r (L - 2 z))/(6 (1/4 (L - 2 z)^2 + (x - r Cos[t])^2 + (y - r Sin[t])^2)^3), {t, 0, 2 π}, Assumptions→ {r>0, L>0, x∈Reals, y∈Reals, z∈Reals}]

Out[27]=

2 π TopIntegrandζr

Integrating over r does work

In[28]:=

Out[28]=

In[29]:=

TopIntegrandθ[x_, y_, z_, CylRad_, CylLen_] := Evaluate[Simplify[(TopIntegrandθIndr/.{r->CylRad, L->CylLen}) - (TopIntegrandθIndr/.{r->0, L->CylLen})]]

General :: spell1 : Possible spelling error: new symbol name \"TopIntegrandθ\" is similar to existing symbol \"TopIntegrandθr\".  More…

In[30]:=

TopContribution[xpos_, ypos_, zpos_, CylRad_ , CylLen_] := NIntegrate[Evaluate[TopIntegrandθ[xpos, ypos, zpos, CylRad, CylLen], {t, 0, 2 π}]]

In[31]:=

TopContribution[dist_, zpos_, CylRad_ , CylLen_] := NIntegrate[Evaluate[TopIntegrandθ[dist, 0, zpos, CylRad, CylLen], {t, 0, 2 π}]]

In[32]:=

TopContribution[Sqrt[2], Sqrt[2], 1/3, 1, 2]

Out[32]=

0.0197465

In[33]:=

TopContribution[2, 1/3, 1, 2]

Out[33]=

0.0197465

Bottom Cap Surface normals and differential quantities

In[34]:=

BotSurf = {r Cos[t], r Sin[t], -L/2}

Out[34]=

{r Cos[t], r Sin[t], -L/2}

In[35]:=

BotSurfRt = D[BotSurf, t]

BotSurfRr    = D[BotSurf, r]

Out[35]=

{-r Sin[t], r Cos[t], 0}

General :: spell1 : Possible spelling error: new symbol name \"BotSurfRr\" is similar to existing symbol \"BotSurfRt\".  More…

Out[36]=

{Cos[t], Sin[t], 0}

The oriented surface patch dOverscript[A, →] for the bottom surface is the following (multiplied by dr dθ)

In[37]:=

NormalVecBotSurf = FullSimplify[Cross[BotSurfRt, BotSurfRr]]

Out[37]=

{0, 0, -r}

In[38]:=

BotIntegrandθr = FullSimplify[(FVecLondon/.{ξ→r Cos[t], η→ r Sin[t], ζ→ -L/2}) . NormalVecBotSurf]

Out[38]=

(32 r (L + 2 z))/(3 (4 (r^2 + x^2 + y^2) + (L + 2 z)^2 - 8 r (x Cos[t] + y Sin[t]))^3)

In[39]:=

Out[39]=

In[40]:=

BotIntegrandθ[x_, y_, z_, CylRad_, CylLen_] := Evaluate[Simplify[(BotIntegrandθIndr/.{r->CylRad, L->CylLen}) - (BotIntegrandθIndr/.{r->0, L->CylLen})]]

General :: spell1 : Possible spelling error: new symbol name \"BotIntegrandθ\" is similar to existing symbol \"BotIntegrandθr\".  More…

In[41]:=

BotContribution[xpos_, ypos_, zpos_, CylRad_ , CylLen_] := NIntegrate[Evaluate[BotIntegrandθ[xpos, ypos, zpos, CylRad, CylLen], {t, 0, 2 π}]]

In[42]:=

BotContribution[dist_, zpos_, CylRad_ , CylLen_] := NIntegrate[Evaluate[BotIntegrandθ[dist, 0, zpos, CylRad, CylLen], {t, 0, 2 π}]]

In[43]:=

BotContribution[Sqrt[2], Sqrt[2], 1/3, 1, 2]

Out[43]=

0.0110749

In[44]:=

BotContribution[2, 1/3, 1, 2]

Out[44]=

0.0110749

Adding up all the surface integral contributions

In[45]:=

In[46]:=

LondonCylinderPotential[2, .5, 1, 3]

Out[46]=

-0.252331

In[47]:=

LondonCylinderPotential[.25, .5, 1, 3]

Out[47]=

3.43932

In[48]:=

(*Plot[LondonCylinderPotential[dist, zpos, 1, 2], {dist, 1.1, 3}, {zpos, 0, 3}] *)

In[49]:=

<<Graphics`Graphics`

Visualize result as a function of radial distance at different altitudes

In[60]:=

[Graphics:HTMLFiles/Lecture-16_124.gif]

Out[60]=

-Graphics -

The plot above shows the London potential vs. radial distance for four different z values, z = 0, z = 2/3, z = 4/3, and z= 2. The cylinder height is 4/3 and its radius is 1; for values of z that intersect the cylinder, the potential diverges as dist -> 1.

In[61]:=

Show[LondonPlot, PlotRange→ {-5, 3}]

[Graphics:HTMLFiles/Lecture-16_127.gif]

Out[61]=

-Graphics -

The plot above shows the London potential vs radial distance for the same z values as in the previous plot, but for a much smaller range of potential values (-1, 0), to show the z dependence of the potential more clearly.

Visualize potential at fixed altitudes above cylinder

In[52]:=

[Graphics:HTMLFiles/Lecture-16_130.gif]

Out[52]=

-Graphics -

The plot above shows the London potential vs. radial distance for z values equal to and larger than the cylinder height. The cylinder height is 1 and its radius is 1;.the potential is plotted for z = 1.1, z = 1.2, z = 1.3, and z= 1.4.  All these z values are beyond the end of the cylinder, and the potentials do not diverge at dist = 1. Note that unlike the previous plots, this one extends from dist = 0 to 3.

The contour plot below would take an enormously long time to compute if we had not employed all of the ``integral tricks''

In[57]:=

ContourPlot[LondonCylinderPotential[dist, height, 1, 0.25], {dist, 0.001, 2}, {height, 0.001, 2}, Contours->25, ColorFunction-> (Hue[0.6 #] &)]

[Graphics:HTMLFiles/Lecture-16_133.gif]

Out[57]=

-ContourGraphics -


Created by Mathematica  (October 31, 2005) Valid XHTML 1.1!