diff --git a/books/bookvol10.1.pamphlet b/books/bookvol10.1.pamphlet index ee89e7a..aca603e 100644 --- a/books/bookvol10.1.pamphlet +++ b/books/bookvol10.1.pamphlet @@ -8566,6 +8566,397 @@ The sequences is then reversed, and decompositions are formed from ${\bf R}^2$ up to ${\bf R}^n$. Each iteration starts with a cell decomposition in ${\bf R}^i$ and lifts it to obtain a cylinder of cells in ${\bf R}^{i+1}$. +\chapter{Differential Forms} +This is quoted from Wheeler \cite{Whee12}. + +\section{From differentials to differential forms} + +In a formal sense, we may define differentials as the vector space of +linear mappings from curves to the reals, that is, given a +differential $df$ we may use it to map any curve, C $ \in \mathit{C}$ +to a real number simply by integrating: +\[df:C \rightarrow R\] +\[ x = \int_C{df}\] +This suggests a generalization, since we know how to integrate over +surfaces and volumes as well as curves. In higher dimensions we also +have higher order multiple integrals. We now consider the integrands +of arbitrary multiple integrals +\[\int{f(x)}dl,\quad\int\int{f(x)}dS,\quad\int\int\int{f(x)}dV\] +Much of their importance lies in the coordinate invariance of the +resulting integrals. + +One of the important properties of integrands is that they can all be +regarded as oriented. If we integrate a line integral along a curve +from $A$ to $B$ we get a number, while if we integrate from $B$ to $A$ +we get minus the same number, +\[\int_A^B{f(x)}dl= -\int_B^A{f(x)}dl\] +We can also demand oriented surface integrals, so the surface integral +\[\int\int{\bf A\cdot n}~dS\] +changes sign if we reverse the direction of the normal to the surface. +This normal can be thought of as the cross product of two basis +vectors within the surface. If these basis vectors' cross product is +taken in one order, {\bf n} has one sign. If the opposite order is +taken then {\bf -n} results. Similarly, volume integrals change sign +if we change from a right- or left-handed coordinate system. + +\subsection{The wedge product} + +We can build this alternating sign into our convention for writing +differential forms by introducing a formal antisymmetric product, +called the {\sl wedge} product, symbolized by $\wedge$, which is +defined to give these differential elements the proper signs. Thus, +surface integrals will be written as integrals over the products +\[{\bf dx} \wedge {\bf dy}, + {\bf dy} \wedge {\bf dz}, + {\bf dz} \wedge {\bf dx}\] +with the convention that $\wedge$ is antisymmetric: +\[{\bf dx} \wedge {\bf dy} = -{\bf dy} \wedge {\bf dx}\] +under the interchange of any two basis forms. This automatically gives +the right orientation of the surface. Similarly, the volume element +becomes +\[{\bf V} = {\bf dx} \wedge {\bf dy} \wedge {\bf dz}\] +which changes sign if any pair of the basis elements are switched. + +We can go further than this by formalizing the full integrand. For +a line integral, the general form of the integrand is a linear +combination of the basis differentials, +\[{\bf A}_x{\bf dx} + {\bf A}_y{\bf dy} + {\bf A}_z{\bf dz}\] +Notice that we simply add the different parts. Similary, a general +surface integrand is +\[{\bf A}_z {\bf dx \wedge dy} + + {\bf A}_y {\bf dz \wedge dx} + + {\bf A}_x {\bf dy \wedge dz }\] +while the volume integrand is +\[f(x)~{\bf dx \wedge dy \wedge dz}\] +These objects are called {\sl differential forms}. + +Clearly, differential forms come in severaly types. Functions are +called 0-forms, line elements 1-forms, surface elements 2-forms, and +volume elements are called 3-forms. These are all the types that exist +in 3-dimensions, but in more than three dimensions we can have +$p$-forms with $p$ ranging from zero to the dimension, $d$, of the +space. Since we can take arbitrary linear combinations of $p$-forms, +they form a vector space, $\Lambda_p$. + +We can always wedge together any two forms. We assume this wedge +product is associative, and obeys the usual distributive laws. The +wedge product of a $p$-form with a $q$-form is a $(p+q)$-form. + +Notice that the antisymmetry is all we need to rearrange any +combination of forms. In general, wedge products of even order forms +with any other forms commute while wedge products of pairs of +odd-order forms anticommute. In particular, functions (0-forms) +commute with all $p$-forms. Using this, we may interchange the order +of a line element and a surface area, for if +\[{\bf l} = A~{\bf dx}\] +\[{\bf S} = B~{\bf dy \wedge dz}\] +then +\[\begin{array}{rcl} +{\bf l \wedge S}&=& (A~{\bf dx}) \wedge (B~{\bf dy \wedge dz})\\ +&=&A~{\bf dx} \wedge B~{\bf dy \wedge dz}\\ +&=&AB~{\bf dx \wedge dy \wedge dz}\\ +&=&-AB~{\bf dy \wedge dx \wedge dz}\\ +&=&AB~{\bf dy \wedge dz \wedge dx}\\ +&=&{\bf S \wedge l} +\end{array}\] +but the wedge product of two line elements changes sign, for if +\[{\bf l}_1 = A~{\bf dx}\] +\[{\bf l}_2 = B~{\bf dy} + C~{\bf dz}\] +then +\[\begin{array}{rcl} +{\bf l}_1 \wedge {\bf l}_2&=&(A~{\bf dx}) \wedge(B~{\bf dy}+C~{\bf dz})\\ +&=&A~{\bf dx} \wedge B~{\bf dy} + A~{\bf dx} \wedge C~{\bf dz}\\ +&+&AB~{\bf dx \wedge dy} + AC~{\bf dx \wedge dz}\\ +&=&-AB~{\bf dy \wedge dx} - AC~{\bf dz \wedge dz}\\ +&=&-B~{\bf dy} \wedge A~{\bf dx} - C~{\bf dz} \wedge A~{\bf dx}\\ +&=&-{\bf l}_2 \wedge {\bf l}_1 +\end{array}\] +For any odd-order form, $\omega$, we immediately have +\[\omega \wedge\omega = -\omega \wedge\omega = 0\] In 3-dimensions there +are no 4-forms because anything we try to construct must contain a +repeated basis form. For example, +\[\begin{array}{rcl} +{\bf l} \wedge {\bf V}&=&(A~{\bf dx}) \wedge(B~{\bf dx \wedge dy \wedge dz})\\ +&=&AB~{\bf dx \wedge dx \wedge dy \wedge dz}\\ +&=&0 +\end{array}\] +since ${\bf dx \wedge dx}=0$. The same occurs for anything we try. Of +course, if we have more dimensions then there are more independent +directions and we can find nonzero 4-forms. In general, in +$d$-dimensions we can find $d$-forms, but no $(d+1)$-forms. + +Now suppose we want to change coordinates. How does an integrand change? +Suppose Cartesian coordinates (x,y) in the plane are given as some +functions of new coordinates (u,v). Then we already know that +differentials change according to +\[{\bf dx} = {\bf dx}(u,v) = + \frac{\partial x}{\partial u}{\bf du} + + \frac{\partial x}{\partial v}{\bf dv}\] +and similarly for ${\bf dy}$, applying the usual rules for partial +differentiation. Notice what happens when we use the wedge +product to calculate the new area element: +\[\begin{array}{rcl} +{\bf dx} \wedge{\bf dy}&=& +\displaystyle\left(\frac{\partial x}{\partial u}{\bf du}+ + \frac{\partial x}{\partial v}{\bf dv}\right) \wedge +\displaystyle\left(\frac{\partial y}{\partial u}{\bf du}+ + \frac{\partial y}{\partial v}{\bf dv}\right)\\ +&&\\ +&=&\displaystyle\frac{\partial x}{\partial v}\frac{\partial y}{\partial u} + {\bf dv \wedge du} + + \displaystyle\frac{\partial x}{\partial u}\frac{\partial y}{\partial v} + {\bf du \wedge dv} \\ +&&\\ +&=&\left( +\displaystyle\frac{\partial x}{\partial u}\frac{\partial y}{\partial v}- +\displaystyle\frac{\partial x}{\partial v}\frac{\partial y}{\partial u} +\right) {\bf du \wedge dv}\\ +&&\\ +&=&\mathit{J}~{\bf du \wedge dv} +\end{array}\] +where +\[J=\textrm{det}\left( +\begin{array}{rcl} +\displaystyle\frac{\partial x}{\partial u} & +\displaystyle\frac{\partial x}{\partial v}\\ +&\\ +\displaystyle\frac{\partial y}{\partial u} & +\displaystyle\frac{\partial y}{\partial v} +\end{array} +\right)\] +is the Jacobian of the coordinate transformation. This is exactly the +way that an area element changes when we change coordinates. Notice +the Jacobian coming out automatically. We couldn't ask for more - +the wedge product not only gives us the right signs for oriented +areas and volumes, but gives us the right transformation to new +coordinates. Of course the volume change works, too. + +Under a coordinate transformation +\[ x \rightarrow x(u,v,w)\] +\[ y \rightarrow y(u,v,w)\] +\[ z \rightarrow z(u,v,w)\] +the new volume element is the full Jacobian times the new volume form, +\[{\bf dx \wedge dy \wedge dz} = J(xyz;uvw)~{\bf du \wedge dv \wedge dw}\] + +So the wedge product successfully keesp track of $p$-dim volumes and +their orientations in a coordinate invariant way. Now any time we have +an integral, we can regard the integrand as being a differential form. +But all of this can go much further. Recall our proof that 1-forms form +a vector space. Thus, the differential, ${\bf dx}$ of $x(u,v)$ given +above is just a gradient. It vanishes along surfaces where $x$ is +constant, and the components of the vector +\[\displaystyle\left( +\frac{\partial x}{\partial u},\frac{\partial x}{\partial v}\right) +\] +point in a direction normal to those surfaces. So symbols like +${\bf dx}$ or ${\bf du}$ contain directional information. Writing +them with a boldface {\bf d} indicates this vector character. Thus, +we write +\[{\bf A} = A_i{\bf dx^i}\] + +Let +\[f(x,y)=axy\] +The vector with components +\[\displaystyle\left( +\frac{\partial f}{\partial u},\frac{\partial f}{\partial v}\right) +\] +is perpendicular to the surfaces of constant $f$. + +We have defined forms, have written down their formal properties, and have +used those properties to write them in components. Then, we define the +wedge product, which enables us to write $p$-dimensional integrands as +$p$-forms in such a way that the orientation and coordinate transformation +properties of the integrals emerges automatically. + +Though it is 1-forms, $A_i{\bf dx^i}$ that corresponding to vectors, +we have defined a product of basis forms that we can generalize to +more complicated objects. Many of these objects are already +familiar. Consider the product of two 1-forms. +\[\begin{array}{rcl} +{\bf A} \wedge {\bf B} +&=&A_i~{\bf dx}^i \wedge B_j~{\bf dx}^j\\ +&=&A_iB_j~{\bf dx}^i \wedge {\bf dx}^j\\ +&=&\displaystyle\frac{1}{2} +A_iB_j~({\bf dx}^i \wedge {\bf dx}^j-{\bf dx}^j \wedge {\bf dx}^i)\\ +&&\\ +&=&\displaystyle\frac{1}{2} +(A_iB_j~{\bf dx}^i \wedge {\bf dx}^j-A_iB_j~{\bf dx}^j \wedge {\bf dx}^i)\\ +&&\\ +&=&\displaystyle\frac{1}{2} +(A_iB_j~{\bf dx}^i \wedge {\bf dx}^j-A_jB_i~{\bf dx}^i \wedge {\bf dx}^j)\\ +&&\\ +&=&\displaystyle\frac{1}{2}(A_iB_j-A_jB_i)~{\bf dx}^i \wedge {\bf dx}^j +\end{array}\] +The coefficients +\[A_iB_j-A_jB_i\] +are essentially the components of the cross product. We will see this in +more detail below when we discuss the curl. + +\subsection{The exterior derivative} + +We may regard the differential of any function, say $f(x,y,z)$, as the +1-form: +\[\begin{array}{rcl} +{\bf d}f&=& +\displaystyle\frac{\partial f}{\partial x}{\bf d}x+ +\displaystyle\frac{\partial f}{\partial y}{\bf d}y+ +\displaystyle\frac{\partial f}{\partial z}{\bf d}z\\ +&&\\ +&=&\displaystyle\frac{\partial f}{\partial x^i}{\bf d}x^i +\end{array}\] + +Since a fnction is a 0-form then we can imagine an operator {\bf d} that +differentiates any 0-form to give a 1-form. In Cartesian coordinates, +the coefficients of this 1-form are just the Cartesian components of the +gradient. + +The operator {\bf d} is called the {\sl exterior derivative}, and we may +apply it to any $p$-form to get a $(p+1)$-form. The extension is defined +as follows. First consider a 1-form +\[{\bf A}=A_i~{\bf dx}^i\] +We define +\[{\bf dA}={\bf d}A_i \wedge {\bf dx}^i\] +Similarly, since an arbitrary $p$-form in $n$-dimensions may be written as +\[\omega=A_{i_1,i_2,\cdots,i_p} \wedge {\bf dx}^{i_1} \wedge {\bf dx}^{i_2} +\cdots \wedge {\bf dx}^{i_p}\] +we define the exterior derivative of $\omega$ to be a $(p+1)$-form +\[{\bf d}\omega= +{\bf d}A_{i_1,i_2,\cdots,i_p} \wedge {\bf dx}^{i_1} \wedge {\bf dx}^{i_2} +\cdots \wedge {\bf dx}^{i_p}\] + +Let's see what happens if we apply ${\bf d}$ twice to the Cartesian +coordinate, $x$ regarded as a function of $x,y$ and $z$: +\[\begin{array}{rcl} +{\bf d}^2x&=&{\bf d}({\bf d}x)\\ +&=&{\bf d}(1{\bf d}x)\\ +&=&{\bf d}(1) \wedge{\bf d}x\\ +&=&0 +\end{array}\] +since all derivatives of the constant function $f=1$ are zero. The +same applies if we apply {\bf d} twice to {\sl any} function: +\[\begin{array}{rcl} +{\bf d}^2f &=&{\bf d}({\bf d}f)\\ +&=&\displaystyle{\bf d} +\left(\frac{\partial f}{\partial x^i}{\bf d}x^i\right)\\ +&&\\ +&=&\displaystyle{\bf d} +\left(\frac{\partial f}{\partial x^i} \wedge {\bf d}x^i\right)\\ +&&\\ +&=&\displaystyle\left(\frac{\partial^2 f}{\partial x^j\partial x^i} +{\bf d}x^j\right) \wedge {\bf d}x^i\\ +&&\\ +&=&\displaystyle +\frac{\partial^2 f}{\partial x^j\partial x^i}{\bf d}x^j \wedge{\bf d}x^i +\end{array}\] +By the same argument we used to get the components of the curl, we may +write this as +\[\begin{array}{rcl} +{\bf d}^2f&=&\displaystyle\frac{1}{2}\left( +\displaystyle\frac{\partial^2f}{\partial x^j\partial x^i}- +\displaystyle\frac{\partial^2f}{\partial x^i\partial x^j}\right) +{\bf d}x^j \wedge{\bf d}x^i\\ +&=&0 +\end{array}\] +since partial derivatives commute. + +Poincar\'e Lemma: ${\bf d}^2\omega=0$ where $\omega$ is an arbitrary $p$-form. +\index{Poincar\'e Lemma} + +Next, consider the effect on {\bf d} on an arbitrary 1-form. We have +\[\begin{array}{rcl} +{\bf dA}&=&{\bf d}(A_i{\bf d}x^i)\\ +&&\\ +&=&\displaystyle\left(\frac{\partial A_i}{\partial x^j}{\bf d}x^j\right) + \wedge{\bf d}x^i\\ +&&\\ +&=&\displaystyle\frac{1}{2}\left( +\frac{\partial A_i}{\partial x^j}-\frac{\partial A_j}{\partial x^i}\right) +{\bf d}x^j \wedge{\bf d}x^i +\end{array}\] +We have the components of the curl of the vector {\bf A}. We must be +careful here, however, because these are the components of the curl +only in Cartesian coordinates. Later we will see how these components +relate to those in a general coordinate system. Also, recall that the +components $A_i$ are distinct from the usual vector components $A^i$. +These differences will be resolved when we give a detailed discussion +of the metric. Ultimately, the action of {\bf d} on a 1-form gives us +a coordinate invariant way to calculate the curl. + +Finally, suppose we have a 2-form expressed as +\[{\bf S}=A_z~{\bf d}x \wedge {\bf d}y+A_y~{\bf d}z \wedge {\bf d}x+ +A_x~{\bf d}y \wedge {\bf d}z\] +Then apply the exterior derivative gives +\[\begin{array}{rcl} +{\bf d}S&=&{\bf d}A_z \wedge{\bf d}x \wedge{\bf d}y+ +{\bf d}A_y \wedge{\bf d}z \wedge{\bf d}x+ +{\bf d}A_x \wedge{\bf d}y \wedge{\bf d}z\\ +&&\\ +&=&\displaystyle\frac{\partial A_z}{\partial z}{\bf d}z \wedge{\bf d}x + \wedge{\bf d}y+ +\displaystyle\frac{\partial A_y}{\partial y}{\bf d}y \wedge{\bf d}z + \wedge{\bf d}x+ +\displaystyle\frac{\partial A_x}{\partial x}{\bf d}x \wedge{\bf d}y +\wedge{\bf d}z\\ +&&\\ +&=&\displaystyle\left( +\frac{\partial A_z}{\partial z}+ +\frac{\partial A_y}{\partial y}+ +\frac{\partial A_x}{\partial x}\right)~{\bf d}x \wedge{\bf d}y \wedge{\bf d}z +\end{array}\] +so that the exterior derivative can also reproduce the divergence. + +\subsection{The Hodge dual} + +To truly have the curl we need a way to turn a 2-form into a vector, i.e., +a 1-form and a way to turn a 3-form into a 0-form. This leads us to +introduce the Hodge dual +\index{Hodge dual}, or star, operator $\star$. + +Notice that in 3-dim, both 1-forms and 2-forms have three independent +components, while both 0- and 3-forms have one component. This suggests +that we can define an invertible mapping between these pairs. In +Cartesian coordinates, suppose we set +\[\begin{array}{rcl} +\star({\bf dx} \wedge {\bf dy})&=&{\bf dz}\\ +\star({\bf dy} \wedge {\bf dz})&=&{\bf dx}\\ +\star({\bf dz} \wedge {\bf dx})&=&{\bf dy}\\ +\star({\bf dx} \wedge {\bf dy} \wedge {\bf dz})&=&1 +\end{array}\] +and further require that the star be its own inverse +\[\star\star = 1\] +With these rules we can find the Hodge dual of any form in 3-dim. + +The dual of the general 1-form +\[{\bf A} = A_i{\bf dx}^i\] +is the 2-form +\[S=A_z~{\bf dx} \wedge {\bf dy} + A_y~{\bf dz} \wedge {\bf dx} + +A_x~{\bf dy} \wedge {\bf dz}\] + +For an arbitrary (Cartesian) 1-form +\[{\bf A} = A_i{\bf dx}^i\] +that +\[\star{\bf d}\star{\bf A} = div {\bf A}\] + +The curl of {\bf A} +\[curl({\bf A}) = +\displaystyle\left( +\frac{\partial A_y}{\partial z}- +\frac{\partial A_z}{\partial y}\right){\bf dx}+ +\displaystyle\left( +\frac{\partial A_z}{\partial x}- +\frac{\partial A_x}{\partial z}\right){\bf dy} +\displaystyle\left(\frac{\partial A_x}{\partial y}- +\frac{\partial A_y}{\partial x}\right){\bf dz}\] + +Three operations - the wedge product $\wedge$, the exterior derivative +{\bf d}, and the Hodge dual $\star$ - together encompass the usual dot +and cross products as well as the divergence, curl and gradient. In fact, +they do much more - they extend all of these operations to arbitrary +coordinates and arbitrary numbers of dimensions. To explore these +generalizations, we must first explore properties of the metric and +look at coordinate transformations. This will allow us to define the +Hodge dula in arbitrary coordinates. + \chapter{Pade approximant} Pade approximant \chapter{Schwartz-Zippel lemma and testing polynomial identities} diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index d2d442a..1b581e3 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -103,12 +103,12 @@ of effort. We would like to acknowledge and thank the following people: "Stephen Watt Jaap Weel Juergen Weiss" "M. Weller Mark Wegman James Wen" "Thorsten Werther Michael Wester R. Clint Whaley" -"John M. Wiley Berhard Will Clifton J. Williamson" -"Stephen Wilson Shmuel Winograd Robert Wisbauer" -"Sandra Wityak Waldemar Wiwianka Knut Wolf" -"Liu Xiaojun Clifford Yapp David Yun" -"Vadim Zhytnikov Richard Zippel Evelyn Zoernack" -"Bruno Zuercher Dan Zwillinger" +"James T. Wheeler" John M. Wiley Berhard Will" +"Clifton J. Williamson Stephen Wilson Shmuel Winograd" +"Robert Wisbauer Sandra Wityak Waldemar Wiwianka" +"Knut Wolf Liu Xiaojun Clifford Yapp" +"David Yun Vadim Zhytnikov Richard Zippel" +"Evelyn Zoernack Bruno Zuercher Dan Zwillinger" )) diff --git a/books/bookvolbib.pamphlet b/books/bookvolbib.pamphlet index 24ddefb..cdc7266 100644 --- a/books/bookvolbib.pamphlet +++ b/books/bookvolbib.pamphlet @@ -14771,6 +14771,19 @@ Math. Tables Aids Comput. 10 91--96. (1956) \end{chunk} +\begin{chunk}{axiom.bib} +@misc{Whee12, + author = "Wheeler, James T.", + title = "Differential Forms", + year = "2012", + month = "September", + url = +"http://www.physics.usu.edu/Wheeler/ClassicalMechanics/CMDifferentialForms.pdf", + paper = "Whee12.pdf" +} + +\end{chunk} + \eject %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Bibliography} diff --git a/changelog b/changelog index 69ce447..f498757 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,9 @@ +20141008 jtw src/axiom-website/patches.html 20141008.02.jtw.patch +20141008 jtw books/bookvolbib add Whee12 biblio reference +20141008 jtw books/bookvol10.1 add chapter on differential forms +20141008 jtw books/bookvol5 add James Wheeler to credits +20141008 jtw readme add James Wheeler to credits +20141008 jtw James T. Wheeler 20141008 kxp src/axiom-website/patches.html 20141008.01.kxp.patch 20141008 kxp src/input/Makefile test new derham code 20141008 kxp src/input/derham2.input test new derham code diff --git a/patch b/patch index 1ffe3a3..cd6fcae 100644 --- a/patch +++ b/patch @@ -1,3 +1,3 @@ -books/bookvol10.3 DERHAM: add code for differential forms +books/bookvol10.1 add chapter on differential forms -Kurt Pagani posted additional code +James Wheeler contributed documentation on differential forms diff --git a/readme b/readme index 6b49bd3..7e51f86 100644 --- a/readme +++ b/readme @@ -267,12 +267,12 @@ at the axiom command prompt will prettyprint the list. "Stephen Watt Jaap Weel Juergen Weiss" "M. Weller Mark Wegman James Wen" "Thorsten Werther Michael Wester R. Clint Whaley" -"John M. Wiley Berhard Will Clifton J. Williamson" -"Stephen Wilson Shmuel Winograd Robert Wisbauer" -"Sandra Wityak Waldemar Wiwianka Knut Wolf" -"Liu Xiaojun Clifford Yapp David Yun" -"Vadim Zhytnikov Richard Zippel Evelyn Zoernack" -"Bruno Zuercher Dan Zwillinger" +"James T. Wheeler" John M. Wiley Berhard Will" +"Clifton J. Williamson Stephen Wilson Shmuel Winograd" +"Robert Wisbauer Sandra Wityak Waldemar Wiwianka" +"Knut Wolf Liu Xiaojun Clifford Yapp" +"David Yun Vadim Zhytnikov Richard Zippel" +"Evelyn Zoernack Bruno Zuercher Dan Zwillinger" Pervasive Literate Programming diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 98c3e98..0a16fe8 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -4674,6 +4674,8 @@ books/endpaper fix algebra hierarchy for OSAGP change
books/bookvol10.3 DERHAM: fix signature of 'degree'
20141008.01.kxp.patch books/bookvol10.3 DERHAM: add code for differential forms
+20141008.02.jtw.patch +books/bookvol10.1 add chapter on differential forms