{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Smooth manifolds, vector fields and tensor fields\n", "\n", "This notebook accompanies the lecture\n", "[Symbolic tensor calculus on manifolds](http://sagemanifolds.obspm.fr/jncf2018/) at JNCF 2018.\n", "\n", "Click [here](https://raw.githubusercontent.com/sagemanifolds/SageManifolds/master/Worksheets/JNCF2018/jncf18_vector.ipynb) to download the notebook file (ipynb format). To run it, you must start SageMath with the Jupyter Notebook server, via the command `sage -n jupyter`" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us restore the 2-sphere manifold constructed in the [preceeding worksheet](http://nbviewer.jupyter.org/github/sagemanifolds/SageManifolds/blob/master/Worksheets/JNCF2018/jncf18_scalar.ipynb):" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (U, (x, y)),\n", " Chart (V, (xp, yp)),\n", " Chart (W, (x, y)),\n", " Chart (W, (xp, yp))]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M = Manifold(2, 'M')\n", "U = M.open_subset('U')\n", "XU. = U.chart()\n", "V = M.open_subset('V')\n", "XV. = V.chart(\"xp:x' yp:y'\")\n", "M.declare_union(U,V)\n", "XU_to_XV = XU.transition_map(XV, \n", " (x/(x^2+y^2), y/(x^2+y^2)), \n", " intersection_name='W',\n", " restrictions1= x^2+y^2!=0, \n", " restrictions2= xp^2+yp^2!=0)\n", "XV_to_XU = XU_to_XV.inverse()\n", "M.atlas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also reconstruct the point $p$:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point p on the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "p = U((1,2), chart=XU, name='p')\n", "print(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and the embedding $\\mathbb{S}^2 \\to \\mathbb{R}^3$:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Phi: M --> R^3\n", "on U: (x, y) |--> (X, Y, Z) = (2*x/(x^2 + y^2 + 1), 2*y/(x^2 + y^2 + 1), (x^2 + y^2 - 1)/(x^2 + y^2 + 1))\n", "on V: (xp, yp) |--> (X, Y, Z) = (2*xp/(xp^2 + yp^2 + 1), 2*yp/(xp^2 + yp^2 + 1), -(xp^2 + yp^2 - 1)/(xp^2 + yp^2 + 1))" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R3 = Manifold(3, 'R^3', r'\\mathbb{R}^3')\n", "XR3. = R3.chart()\n", "Phi = M.diff_map(R3, {(XU, XR3): \n", " [2*x/(1+x^2+y^2), 2*y/(1+x^2+y^2),\n", " (x^2+y^2-1)/(1+x^2+y^2)],\n", " (XV, XR3): \n", " [2*xp/(1+xp^2+yp^2), 2*yp/(1+xp^2+yp^2),\n", " (1-xp^2-yp^2)/(1+xp^2+yp^2)]},\n", " name='Phi', latex_name=r'\\Phi')\n", "Phi.display()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph = XU.plot(chart=XR3, mapping=Phi, number_values=25, \n", " label_axes=False) + \\\n", " XV.plot(chart=XR3, mapping=Phi, number_values=25, \n", " color='green', label_axes=False) + \\\n", " p.plot(chart=XR3, mapping=Phi, label_offset=0.05)\n", "show(graph, viewer='threejs', online=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally we reconstruct the scalar field $f$:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "f: M --> R\n", "on U: (x, y) |--> 1/(x^2 + y^2 + 1)\n", "on V: (xp, yp) |--> (xp^2 + yp^2)/(xp^2 + yp^2 + 1)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f = M.scalar_field({XU: 1/(1+x^2+y^2), XV: (xp^2+yp^2)/(1+xp^2+yp^2)},\n", " name='f')\n", "f.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and assign the Python variable `CM` to the algebra of scalar fields:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Algebra of differentiable scalar fields on the 2-dimensional differentiable manifold M" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "CM = M.scalar_field_algebra()\n", "CM" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tangent vectors\n", "\n", "The tangent space at the point $p$ introduced above is generated by" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Tangent space at Point p on the 2-dimensional differentiable manifold M" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Tp = M.tangent_space(p)\n", "Tp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is a vector space over $\\mathbb{R}$, which is represented by Sage's Symbolic Ring:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Category of finite dimensional vector spaces over Symbolic Ring\n" ] } ], "source": [ "print(Tp.category())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The dimension of $T_p M$ is the same as that of $M$:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "2" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dim(Tp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tangent spaces are implemented as a class inherited from `TangentSpace` via the category framework:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(Tp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The class `TangentSpace` actually inherits from the generic class\n", "`FiniteRankFreeModule`, which, in SageMath, is devoted to free modules of finite rank\n", "without any distinguished basis:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "isinstance(Tp, FiniteRankFreeModule)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Two bases of $T_p M$ are already available: those generated by the derivations\n", "at $p$ along the coordinates of charts `XU` and `XV` respectively:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Basis (d/dx,d/dy) on the Tangent space at Point p on the 2-dimensional differentiable manifold M,\n", " Basis (d/dxp,d/dyp) on the Tangent space at Point p on the 2-dimensional differentiable manifold M]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Tp.bases()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "None of these bases is distinguished, but one if the default one, which\n", "simply means that it is the basis to be considered if the basis argument\n", "is skipped in some methods:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Basis (d/dx,d/dy) on the Tangent space at Point p on the 2-dimensional differentiable manifold M" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Tp.default_basis()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A tangent vector is created as an element of the tangent space by the\n", "standard SageMath procedure\n", "`new\\_element = parent(...)`, where `...`\n", "stands for some material sufficient to construct the element:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tangent vector v at Point p on the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "vp = Tp((-3, 2), name='v')\n", "print(vp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since the basis is not specified, the pair $(-3,2)$ refers to components\n", "with respect to the default basis:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v = -3 d/dx + 2 d/dy" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vp.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have of course" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Tangent space at Point p on the 2-dimensional differentiable manifold M" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vp.parent()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vp in Tp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As other manifold objects, tangent vectors have some plotting capabilities:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph += vp.plot(chart=XR3, mapping=Phi, scale=0.5, color='gold')\n", "show(graph, viewer='threejs', online=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The main attribute of the object `vp` representing the vector $v$ is the dictionary `_components`, which stores the components of $v$ in various bases of $T_p M$:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "{Basis (d/dx,d/dy) on the Tangent space at Point p on the 2-dimensional differentiable manifold M: 1-index components w.r.t. Basis (d/dx,d/dy) on the Tangent space at Point p on the 2-dimensional differentiable manifold M}" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vp._components" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see above, the keys of the dictionary `_components` are the bases of $T_p M$, while the values belongs to the class [Components](http://doc.sagemath.org/html/en/reference/tensor_free_modules/sage/tensor/modules/comp.html) devoted to store ring elements indexed by integers or tuples of integers:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1-index components w.r.t. Basis (d/dx,d/dy) on the Tangent space at Point p on the 2-dimensional differentiable manifold M" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vpc = vp._components[Tp.default_basis()]\n", "vpc" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(vpc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The components themselves are stored in the dictionary `_comp` of the `Components` object, with the indices as keys:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "{(0,): -3, (1,): 2}" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vpc._comp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Module of vector fields\n", "\n", "The $C^\\infty(M)$-module of vector fields on $M$, $\\mathfrak{X}(M)$, is obtained as" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Module X(M) of vector fields on the 2-dimensional differentiable manifold M" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YM = M.vector_field_module()\n", "YM" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Category of modules over Algebra of differentiable scalar fields on the 2-dimensional differentiable manifold M" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YM.category()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YM.base_ring() is CM" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\mathfrak{X}(M)$ is not a free module (at least its SageMath implementation does not\n", "belong to the class `FiniteRankFreeModule`):" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "False" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "isinstance(YM, FiniteRankFreeModule)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is because $M=\\mathbb{S}^2$ is not a parallelizable manifold:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "False" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.is_manifestly_parallelizable()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Via the category mechanism,\n", "the module $\\mathfrak{X}(M)$ is implemented by a dynamically-generated subclass\n", "of the class `VectorFieldModule`, which is devoted to modules of vector fields\n", "on non-parallelizable manifolds:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(YM)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On the contrary, the set $\\mathfrak{X}(U)$ of vector fields on $U$ is a free module of finite rank over the algebra $C^\\infty(U)$:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YU = U.vector_field_module()\n", "isinstance(YU, FiniteRankFreeModule)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Algebra of differentiable scalar fields on the Open subset U of the 2-dimensional differentiable manifold M" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YU.base_ring()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is because the open subset $U$ is a parallelizable manifold:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U.is_manifestly_parallelizable()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "being a coordinate chart domain:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U.is_manifestly_coordinate_domain()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can check that in the atlas of $U$, at least one chart has $U$ for domain:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Chart (U, (x, y)), Chart (W, (x, y)), Chart (W, (xp, yp))]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U.atlas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The rank of $\\mathfrak{X}(U)$ is the manifold's dimension:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "2" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rank(YU)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Via the category mechanism,\n", "the free module $\\mathfrak{X}(U)$ is implemented by a dynamically-generated subclass\n", "of the class `VectorFieldFreeModule`, which is devoted to modules of vector fields\n", "on parallelizable manifolds:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(YU)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The class `VectorFieldFreeModule` is itself a subclass\n", "of the generic class `FiniteRankFreeModule`:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 20 graphics primitives" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class_graph(\n", "sage.manifolds.differentiable.vectorfield_module.VectorFieldFreeModule\n", ").plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since $U$ is a chart domain, the free module $\\mathfrak{X}(U)$ is automatically endowed with a basis: the coordinate frame associated to the chart:" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Coordinate frame (U, (d/dx,d/dy))]" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YU.bases()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us denote by `eU` this frame. We can set `eU = YU.bases()[0]` or\n", "alternatively" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Coordinate frame (U, (d/dx,d/dy))" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eU = YU.default_basis()\n", "eU" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another equivalent instruction would have been `eU = U.default_frame()`.\n", "\n", "Similarly, $\\mathfrak{X}(V)$ is a free module, endowed with the coordinate frame\n", "associated to stereographic coordinates from the South pole, which we\n", "denote by `eV`:" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Coordinate frame (V, (d/dxp,d/dyp))]" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YV = V.vector_field_module()\n", "YV.bases()" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Coordinate frame (V, (d/dxp,d/dyp))" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eV = YV.default_basis()\n", "eV" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we consider the intersection $W=U\\cap V$, we notice its module\n", "of vector fields is endowed with two bases, reflecting the fact that\n", "$W$ is covered by two charts: $(W,(x,y))$ and $(W,(x',y'))$:" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[Coordinate frame (W, (d/dx,d/dy)), Coordinate frame (W, (d/dxp,d/dyp))]" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "W = U.intersection(V)\n", "YW = W.vector_field_module()\n", "YW.bases()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us denote by `eUW` and `eUV` these two bases, which are\n", "actually the restrictions of the vector frames `eU` and `eV` to $W$:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eUW = eU.restrict(W)\n", "eVW = eV.restrict(W)\n", "YW.bases() == [eUW, eVW]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The free module $\\mathfrak{X}(W)$ is also automatically endowed with automorphisms\n", "connecting the two bases, i.e. change-of-frame operators:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "{(Coordinate frame (W, (d/dx,d/dy)),\n", " Coordinate frame (W, (d/dxp,d/dyp))): Field of tangent-space automorphisms on the Open subset W of the 2-dimensional differentiable manifold M,\n", " (Coordinate frame (W, (d/dxp,d/dyp)),\n", " Coordinate frame (W, (d/dx,d/dy))): Field of tangent-space automorphisms on the Open subset W of the 2-dimensional differentiable manifold M}" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "W.changes_of_frame()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first of them is" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Field of tangent-space automorphisms on the Open subset W of the 2-dimensional differentiable manifold M" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P = W.change_of_frame(eUW, eVW)\n", "P" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It belongs to the general linear group of the free module $\\mathfrak{X}(W)$:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "General linear group of the Free module X(W) of vector fields on the Open subset W of the 2-dimensional differentiable manifold M" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P.parent()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and its matrix is deduced from the Jacobian matrix of the transition map `XV` $\\to$ `XU`:" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[-x^2 + y^2 -2*x*y]\n", "[ -2*x*y x^2 - y^2]" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P[:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## An example of vector field\n", "\n", "We introduce a vector field $v$ on $M$ by" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v = 1/(x^2 + y^2 + 1) d/dx - 2 d/dy" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v = M.vector_field(name='v')\n", "v[eU, 0] = f.restrict(U)\n", "v[eU, 1] = -2\n", "v.display(eU)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that at this stage, we have defined $v$ only on $U$, by setting\n", "its components in the vector frame `eU`, either explicitely as scalar\n", "fields, like the component $v^0$ set to the restriction of $f$ to $U$ or\n", "to some symbolic expression, like for the component $v^1$: the $-2$\n", "will be coerced to the constant scalar field of value $-2$.\n", "We can ask for the scalar-field value of a components via the double-bracket\n", "operator, since `eU` is the default frame on $M$, we don't have to specify\n", "it:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Scalar field f on the Open subset U of the 2-dimensional differentiable manifold M" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[[0]]" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "f: U --> R\n", " (x, y) |--> 1/(x^2 + y^2 + 1)\n", "on W: (xp, yp) |--> (xp^2 + yp^2)/(xp^2 + yp^2 + 1)" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[[0]].display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the single bracket operator returns a chart function\n", "of the component:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/(x^2 + y^2 + 1)" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The restriction of $v$ to $W$ is of course" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v = 1/(x^2 + y^2 + 1) d/dx - 2 d/dy" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.restrict(W).display(eUW)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since we have a second vector frame on $W$, namely `eVW`, and the\n", "change-of-frame automorphisms are known, we can ask for the components\n", "of $v$ with respect to that frame:" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v = (4*x*y^3 - x^2 + 4*(x^3 + x)*y + y^2)/(x^6 + y^6 + (3*x^2 + 1)*y^4 + x^4 + (3*x^4 + 2*x^2)*y^2) d/dxp - 2*(x^4 - y^4 + x^2 + x*y - y^2)/(x^6 + y^6 + (3*x^2 + 1)*y^4 + x^4 + (3*x^4 + 2*x^2)*y^2) d/dyp" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.restrict(W).display(eVW)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that the components are expressed in terms of the coordinates $(x,y)$\n", "since they form the default chart on $W$. To have them expressed in\n", "terms of the coordinates $(x',y')$, we have to add the restriction of\n", "the chart\n", "$(V,(x',y'))$ to $W$ as the second argument of the method `display()`:" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v = -(xp^4 - 4*xp*yp^3 - yp^4 - 4*(xp^3 + xp)*yp)/(xp^2 + yp^2 + 1) d/dxp - 2*(xp^4 + xp^3*yp + xp*yp^3 - yp^4 + xp^2 - yp^2)/(xp^2 + yp^2 + 1) d/dyp" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.restrict(W).display(eVW, XV.restrict(W))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We extend the expression of $v$ to the full vector frame `XV`\n", "by continuation of this expression:" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "v.add_comp_by_continuation(eV, W, chart=XV)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have then" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v = -(xp^4 - 4*xp*yp^3 - yp^4 - 4*(xp^3 + xp)*yp)/(xp^2 + yp^2 + 1) d/dxp - 2*(xp^4 + xp^3*yp + xp*yp^3 - yp^4 + xp^2 - yp^2)/(xp^2 + yp^2 + 1) d/dyp" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.display(eV)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this stage, the vector field $v$ is defined in all $M$.\n", "According to the hairy ball theorem\\index{hairy ball theorem}, it has to vanish somewhere.\n", "Let us show that this occurs at the North pole, by first introducing the\n", "latter, as the point of stereographic coordinates $(x',y')=(0,0)$:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point N on the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "N = M((0,0), chart=XV, name='N')\n", "print(N)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a check, we verify that the image of $N$ by the canonical embedding\n", "$\\Phi: \\mathbb{S}^2 \\to \\mathbb{R}^3$ is the point of Cartesian coordinates $(0,0,1)$:" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 0, 1)" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "XR3(Phi(N))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The vanishing of $\\left. v\\right| _N$:" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v = 0" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.at(N).display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On the other hand, $v$ does not vanish at the point $p$ introduced above:" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v = 1/6 d/dx - 2 d/dy" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.at(p).display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We may plot the vector field $v$ in terms of the stereographic coordinates\n", "from the North pole:" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 25 graphics primitives" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.plot(chart=XU, chart_domain=XU, max_range=2, \n", " number_values=5, scale=0.4, aspect_ratio=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "or in term of those from the South pole:" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAJFCAYAAABjrWe2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xd0VOXWBvAnhdATepfeq0hVmlgJCoKgEixgL4CIBUWK6EUE9YIiCooKWMBKFaV3UAREAkqHUEMPSQiQ+n5/7DvfySQzk+mnzPNbaxZTzgl7Umb2vGXvMKWUAhERERGRl8L1DoCIiIiIzI0JJRERERH5hAklEREREfmECSURERER+YQJJRERERH5hAklEREREfmECSURERER+YQJJRERERH5hAklEREREfmECSURERER+YQJJRERERH5hAklEYWsMWPGoHHjxsjMzNQ7FCIiUwtTSim9gyAi0kP16tVRpEgR7N+/X+9QiIhMjSOURBSS9u7di+PHj+O5557TOxQiItNjQklEIWnFihUoVqwYBg4cqHcoRESmx4SSiELSihUr8OCDD6JUqVJ6h0JEZHqRegdARBRsWVlZWLt2LTZs2KB3KERElsARSiIKOVu2bEHz5s3RokULvUMhIrIEJpREZAkXL17EE088gd69e+O+++7LVwro1VdfRZ8+fQAAO3bswODBg/UIk4jIklg2iIgsYfDgwRg1ahQuXLiApk2bYtGiRejRowcAQCmFsmXLonXr1li+fLnOkRIRWQ9HKInI9Pbs2YPKlSujUqVK2Lx5MwCgQoUK///4rl27kJSUhFtuuUWvEImILI0JJRGZ3rlz5/Dwww8DAL766ivUrVsXbdu2/f/H169fDwBMKImIAoS7vInI9Dp37gwAOHbsGDZu3Ihx48YhLCzs/x9fv349oqOj0apVK71CJCKyNI5QEpFlzJs3DwDQt29fu/vXr1+Pzp07IyIiQo+wiIgsjwklEVnG1q1bUblyZTRo0OD/79u3bx/OnDnD6W4iogBiQklElnHhwgXUqFHD7r6VK1cCALp27apHSEREIYEJJRFZRuvWrXHs2DFkZ2cDAOLj4zF69GiUKVOGRcyJiAKIm3KIyDJef/11nDhxAt27d0fdunVRokQJZGZmIjY21m6TDhER+RcLmxORJSilcO3aNRQtWvT/71uwYAF69+6NxYsX4+6779YxOiIia2NCSUSWcOedd+L3339HYmIiihcvDqUUOnTogOjoaCxdulTv8IiILI1rKInIErZu3Yq2bduiaNGiyM7OxrBhw5CTk4Pvv/9e79CIiCyPI5REZAkrVqzAihUrcOXKFZw9exZt27bF0KFDUahQIb1DIyKyPCaUREREROQTTnkTERERkU+YUBIRERGRT5hQEhEREZFPmFASERERkU+YUBIRERGRT5hQEhEREZFPmFASERERkU+YUBIRERGRT5hQEhEREZFPmFASERERkU+YUBIRERGRT5hQEpHlKaWQkpICpZTeoRARWRITSiKyvNTUVMTExCA1NVXvUIiILIkJJRERERH5hAklEREREfmECSURERER+YQJJRERERH5hAklEREREfmECSURERER+YQJJRERERH5hAklEREREfmECSURERER+YQJJRERERH5hAklWdL06cBvv+kdBRERUWhgQkmW8+qrwLPPAt27A337AsnJekdERERkbUwoyXIOH9au//wz0KQJ8Msv+sVjZF99BZQuLYk3ERGRt5hQGtxbbwEdOgAffAAcPAgopXdExnfTTfa3T54EevQA+vcHzp3TJyajeuEF4NIlSbznzdM7GiIiMqswpZiiGNW5c0CFCvb3VaggCWaHDkDHjkDLlkBUlD7xGdW33wIPPeT4sbJlgQ8/lOQyLCy4cRnNzp3A9ddrtytXBvbvB0qU0C+mQElJSUFMTAySk5MRHR2tdzhERJbDEUoDK1UKiIy0v+/sWWD+fODll4H27YGYGKBLF+D114ElS4CkJH1iNZLSpZ0/duGCJJt33w0cPx68mIxo9mz724mJwKhR+sRCRETmxhFKg3v5ZeC///XsnMaNZfSyQwegc2egZs2AhGZYf/wB3HhjwceVLAlMnAg8/TQQHmIfrTIzgapV8y8BCAsDfv8daNdOn7gCxTZCGRsbi8jISMTFxSEuLk7vsIiILIMJpcGdOQNUrw5kZHh3flgYMHUq8Nxz/o3LyPbtAxo2dP/4Tp2AGTOABg0CF5PRLFoE3HOP48eaNQO2bbPWUgpfpryvXJGNXk2bBig4IiILCLFxGfOpWFHW+3lLKWDtWr+FYwplynh2/IYNQIsWwIQJMnIXCmbNcv7Yrl3Ae+8FLRRDi4+X36dmzWQkm4iIHOMIpQnk3TzhiaJFgY0bgRtu8G9MRpaVBRQq5N25HToAK1cCRYr4NyYjOX8eqFLFdfIcFSW/d56M9BqZNyOUmzYB3boBly/L7Zo1gSNHAhcjEZGZRRZ8iPeUkk/4aWnA1avywpyWJv+6e71OHWDOHM9HnaykRQvg1luBVas8P3fWrNBKJgHZyFSyJJCa6vm5mzbJCF2bNv6Pyyjmzi14JDYjA3jqKRndDrX1pYBsfOvfH7h2TbuvcGH94iEiMrqAJpS33OL7dOvBg7Lea+BAf0RkXsOGeZ5QjhkD3H9/YOIxujJlvEso779fSjFZmavp7tw2bAA+/1wSy1Dy8cfAkCH5a77mTi6JiMheQMce/v3XP1+nfXv/fB0zi431bNNInz7AG28ELh6j83REu04dYPFi4Pvv85dqspL4eOCvv9w//pVXgFOnAhePkSgFjBgBDB7suIEAi+ITETkX0IRy+nTfi0d3726ddVy+CA8Hhg5179jChYGRI0NzqtLGVS3K3IoVA8aPB/75R2pTWl3e2pMFSUmRBMvqMjKAAQNkY5YzV67IchwiIsovoClH797uT6858+KLfgnFEh55xL1EKT0d6NoVWL488DEZlTsjlDExkkiOGBEa6+MyM4FvvvH8vPnzrd2WMSUFuOsu4OuvCz6Wo5RERI4FfAzrkUekOLc3mjeXdZgkihcHnnnG+eNRUUDt2nI9OVmmyT/8MDT7f7tKvIsWlX+Tk2V9bqhYulQ6LXlj8GD5fllNYqJ0mlq50r3jmVASETkWlEnRCRMkufHUsGHst5zXoEHO1/h9+inw999aweqcHOCFF2RThbeF0c3K0QhlqVJS5H3FCu2+MWNCJ0nwZbYgMdH++2YFe/dKR6W//3b/nFD5XSEi8lRQEsqICClV4ulayF9+kTZ6pKlaFXjggfz3v/SS7IQvWVKmJ19/XXvs88+B224LrTfDypW162FhklQfOCAJeYcOWtWA5GT775VVXb4sm4681aCBfN+sYtMmeT5Hj3p2Xij9DREReSKohc0PHJAewUlJnp13442ylrJXL2vvwHXX9u1A69ba7dhYSRYiIuyPmzMHeOwxWVMJSGHmRYuk64fVnTsHPPSQLAMYOxZo1cr+8TNngPr1Zf1cWBjw55/231OrSU6WDyOONpWUKgVcuiTX69SR71u1anK87VKmjLlnC3IXNo+Pj8btt3tXBujdd2Xneyg7cUJKSq1bB/z4o/zuDBgAfPml3pERkZ6C3iln5UrpPpGd7fyYyEh5kzt/3v7+mjWB558HHn8c8LAdr+X06CEjuE2ayGhLTIzj4/78UxLxxES5XaKEbMxw1sc5lEyerG36atcO2LzZ2jvj//pLuiZVqKAliraOOba/p5tvBtas0TXMgMidUD7/fLTHu91tXnlFkspQoRSwZ4/83mzYIBdHo7plygAXLgQ/PiIyDl1aL370kSSGzjz9NPDBBzJNPmkSsHu3/eMlSwJPPilfo0aNwMZqVGlpkkh27Cilb1w5eVKSym3b5HZYGPD228Brr5l71MlXmZnS0tJWL3XmzNAtoB8dLYXg69UD9u/XOxr/y51Q7t4djT59gNOnPf86AwfK74lVZWbKBw9b8rhpk3uJ4hNPADNmBD4+IjIuXRJKpWRN2+efO358zx5tvaVSMqo5aZLsUs0tPBzo21c277D4uWtXr8r093ffaff17y8/A9uu51C0apWsLwWAihWBffucj/ZaWaNGskmlWDFZb2m1Dxp5e3lnZMjyj08/dX+HNyB1cZcsCVycejh+XF4HNmyQNetXr3p2fuHC8qG1bNnAxEdE5qDLBF9YmLQ369Qp/2N5C5mHhQG33w789pvUDHzySa1mYE4O8MMPssbyppuAn34CsrKC8xzMpmhRWVM5bpx235w5UjIlVDqhOHLrrdJVCJB1lW+9pW88eqlaVf69csWa5YHyioqSD6MrVkh719deK3ikH7DeppycHJnleOstWergaTIJSGk4JpNEpNuKsago4Oef809Zuypk3rgx8NlnwLFjwJtvylowm99/B+67T6bsJk+WzRZkLyxMOujMmyc1LQFg61agTRttOjwUvf8+UKSIXJ8yxX8tQ83EllACMtoUSurUkdcTW0LpanTWagllWJi8FvvC1fIlIgodum5BKF9epp1syU3Llu4VMq9QQeoHHj0qOwubNtUeS0iQpLRaNSml42lZkFDQu7esjapeXW6fOiWjxbmnw0NJzZoyQgXICPfQoaFXDD6UE0oAWLBA2wR4//3aqGXuD62ArDO1krAwacfpbVJ52232r79EFLp039PavLnsIBw1Slq8ebJ2q0gR4NFHgfh4aTPYrZv2WGqqrLusXVvqNrKepb0WLWR0smNHuX3tGhAXB4weLdNgoWb4cEksAVlT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\n", "text/plain": [ "Graphics object consisting of 80 graphics primitives" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.plot(chart=XV, chart_domain=XV, max_range=2, \n", " number_values=9, scale=0.05, aspect_ratio=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Thanks to the embedding $\\Phi$, we may also have a 3D plot of $v$\n", "atop of the 3D plot already obtained:" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "graph_v = v.plot(chart=XR3, mapping=Phi, chart_domain=XU, \n", " number_values=7, scale=0.2) + \\\n", " v.plot(chart=XR3, mapping=Phi, chart_domain=XV, \n", " number_values=7, scale=0.2)\n", "show(graph + graph_v, viewer='threejs', online=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the sampling, performed on the two charts `XU` and `XV`\n", "is not uniform on the sphere. A better sampling would be acheived by introducing\n", "spherical coordinates." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Some details about the implementation of vector fields" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vector fields on $M$ are implemented via the class `VectorField`:" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "isinstance(v, sage.manifolds.differentiable.vectorfield.VectorField)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since $M$ is not parallelizable, the representation of the vector field\n", "$v$ via its restrictions to parallelizable open subsets; they are stored in the dictionary `_restrictions`, whose keys are the open subsets:" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "{Open subset W of the 2-dimensional differentiable manifold M: Vector field v on the Open subset W of the 2-dimensional differentiable manifold M,\n", " Open subset V of the 2-dimensional differentiable manifold M: Vector field v on the Open subset V of the 2-dimensional differentiable manifold M,\n", " Open subset U of the 2-dimensional differentiable manifold M: Vector field v on the Open subset U of the 2-dimensional differentiable manifold M}" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v._restrictions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us consider one of these restrictions, for instance the restriction to $U$:" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vU = v._restrictions[U]\n", "vU is v.restrict(U)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since $U$ is a parallelizable open subset, `vU` belongs to the class\n", "`VectorFieldParal`:" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "isinstance(vU, sage.manifolds.differentiable.vectorfield.VectorFieldParal)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The main attribute of `vU` is the dictionary `_components`, which stores the components of `vU` with respect to (possibly various) vector frames on $U$, the keys of that dictionary being the vector frames:" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "{Coordinate frame (U, (d/dx,d/dy)): 1-index components w.r.t. Coordinate frame (U, (d/dx,d/dy))}" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vU._components" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "{Coordinate frame (W, (d/dx,d/dy)): 1-index components w.r.t. Coordinate frame (W, (d/dx,d/dy)),\n", " Coordinate frame (W, (d/dxp,d/dyp)): 1-index components w.r.t. Coordinate frame (W, (d/dxp,d/dyp))}" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v._restrictions[W]._components" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The values of the dictionary `_components` belong to the same class [Components](http://doc.sagemath.org/html/en/reference/tensor_free_modules/sage/tensor/modules/comp.html) as that used for the storage of components of tangent vectors (cf. the example of `vp` above):" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1-index components w.r.t. Coordinate frame (U, (d/dx,d/dy))" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vUc = vU._components[eU]\n", "vUc" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(vUc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As already mentioned above, the components themselves are stored in a dictionary, `_comp`, whose keys are the indices:" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "{(0,): Scalar field f on the Open subset U of the 2-dimensional differentiable manifold M,\n", " (1,): Scalar field on the Open subset U of the 2-dimensional differentiable manifold M}" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vUc._comp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The difference with the tangent vector case is that the values are now scalar fields, i.e. elements of $C^\\infty(U)$ in the present case. This is of course in agreement with the treatment of $\\mathfrak{X}(U)$ as a free module over $C^\\infty(U)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us perform some algebraic operation on $v$:" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Vector field on the 2-dimensional differentiable manifold M" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w = v + f*v\n", "w" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The code for the addition is accessible via" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [], "source": [ "v.__add__??" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As for the addition of scalar field (cf. [this notebook](http://nbviewer.jupyter.org/github/sagemanifolds/SageManifolds/blob/master/Worksheets/JNCF2018/jncf18_scalar.ipynb)), we see that `__add__()` is implemented at the level\n", "of the generic class `Element` from which `VectorField` inherits.\n", "When both operands of the addition have the same parent, as here, `__add__()` invokes the\n", "method `_add_()`\n", "(note the single underscore on each side of `add`). This operator is\n", "implemented at the level of `TensorField`, as it can be checked from the source code:" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "v._add_??" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first step in the addition of two vector fields is to search in the\n", "restrictions of both vector fields for common domains: this is performed via the method `_common_subdomains`. Then the addition is performed at the level of the restrictions. The rest of the code is simply the set up of the vector field object containing the result.\n", "Recursively, the addition performed will reach a level at which\n", "the domains are parallelizable. Then a different method `_add_()`, will\n", "be involved, as we can check on `vU`:" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [], "source": [ "vU._add_??" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that this method `_add_()` is implemented\n", "at the level of tensors on free modules, i.e. in the class\n", "[FreeModuleTensor](http://doc.sagemath.org/html/en/reference/tensor_free_modules/sage/tensor/modules/free_module_tensor.html), from which `VectorFieldParal` inherits. Here the free module is clearly $\\mathfrak{X}(U)$. The addition amounts to adding the components in a\n", "a basis of the free module in which both operands have known components. Such\n", "a basis is returned by the method `common_basis` invoked in the first line.\n", "If necessary, this method can use change-of-basis formulas to compute the\n", "components of `self` or `other` in a common basis.\n", "The addition of the components in the returned basis involves the method `__add__()` of \n", "class `Components`; we can examine the corresponding code via the `Components` object `vUc`:" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "vUc.__add__??" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We note that the computation can be parallelized on the\n", "components if the user has turned on parallelization (this is done with the command\n", "`Parallelism().set(nproc=8)` (for 8 threads)). Focusing on the sequential code, we see that the addition is\n", "performed component by component. Each component being an element of\n", "$C^\\infty(U)$ (the base ring of $\\mathfrak{X}(U)$), this addition is that\n", "of scalar fields, as presented in [this notebook](http://nbviewer.jupyter.org/github/sagemanifolds/SageManifolds/blob/master/Worksheets/JNCF2018/jncf18_scalar.ipynb).\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Action of a vector field on a scalar field\n", "\n", "The action of $v$ on $f$ is defined pointwise by\n", "considering $v$ at each point $p\\in M$ as a derivation (the very definition of a tangent vector); the result is then a\n", "scalar field $v(f)$ on $M$:" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Scalar field v(f) on the 2-dimensional differentiable manifold M" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vf = v(f)\n", "vf" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v(f): M --> R\n", "on U: (x, y) |--> 2*(2*y^3 + 2*(x^2 + 1)*y - x)/(x^6 + y^6 + 3*(x^2 + 1)*y^4 + 3*x^4 + 3*(x^4 + 2*x^2 + 1)*y^2 + 3*x^2 + 1)\n", "on V: (xp, yp) |--> -2*(xp^5 + 2*xp^3*yp^2 + xp*yp^4 - 2*yp^5 - 2*(2*xp^2 + 1)*yp^3 - 2*(xp^4 + xp^2)*yp)/(xp^6 + yp^6 + 3*(xp^2 + 1)*yp^4 + 3*xp^4 + 3*(xp^4 + 2*xp^2 + 1)*yp^2 + 3*xp^2 + 1)" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vf.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Tensor fields\n", "\n", "### 1-forms\n", "\n", "Let us start with a 1-form, namely the differential of $f$:" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1-form df on the 2-dimensional differentiable manifold M" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = f.differential()\n", "df" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form df on the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "print(df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A 1-form is a tensor field of type $(0,1)$:" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 1)" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.tensor_type()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "while a vector field is a tensor field of type $(1,0)$:" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(1, 0)" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.tensor_type()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Specific 1-forms are those forming the dual basis (coframe) of a given vector frame: for instance for the vector frame `eU` = $(U, (\\partial_{x}, \\partial_{y}))$, we have" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Coordinate coframe (U, (dx,dy))" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eU.dual_basis()" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form dx on the Open subset U of the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "print(eU.dual_basis()[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since `eU` is the default frame on $M$, the default display of $\\mathrm{d}f$ is performed in terms of `eU`'s coframe:" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "df = -2*x/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) dx - 2*y/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) dy" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.display()" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[0] == diff(f.expr(), x)" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[1] == diff(f.expr(), y)" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "df = 2*xp/(xp^4 + yp^4 + 2*(xp^2 + 1)*yp^2 + 2*xp^2 + 1) dxp + 2*yp/(xp^4 + yp^4 + 2*(xp^2 + 1)*yp^2 + 2*xp^2 + 1) dyp" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.display(eV)" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "2*xp/(xp^4 + yp^4 + 2*(xp^2 + 1)*yp^2 + 2*xp^2 + 1)" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[eV,0,XV]" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[eV,0,XV] == diff(f.expr(XV), xp)" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[eV,1,XV] == diff(f.expr(XV), yp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The parent of $\\mathrm{d}f$ is the set $\\Omega^1(M)$ of all 1-forms on $M$, considered as a $C^\\infty(M)$-module:" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Module Omega^1(M) of 1-forms on the 2-dimensional differentiable manifold M\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "Module Omega^1(M) of 1-forms on the 2-dimensional differentiable manifold M" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(df.parent())\n", "df.parent()" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Algebra of differentiable scalar fields on the 2-dimensional differentiable manifold M" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.parent().base_ring()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This module is actually the dual of `YM` = $\\mathfrak{X}(M)$:" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Module Omega^1(M) of 1-forms on the 2-dimensional differentiable manifold M" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "YM.dual()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A 1-form acts on vector fields, yielding a scalar field:" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field df(v) on the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "print(df(v))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This scalar field is nothing but the result of the action of $v$ on $f$,\n", "considering $v$ at each point $p\\in M$ as a derivation (the very definition of a tangent vector):" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df(v) == v(f)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### More general tensor fields" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We construct a tensor of type $(1,1)$ by taking the tensor product $v\\otimes \\mathrm{d}f$:" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Tensor field of type (1,1) on the 2-dimensional differentiable manifold M" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t = v * df\n", "t" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v*df = -2*x/(x^6 + y^6 + 3*(x^2 + 1)*y^4 + 3*x^4 + 3*(x^4 + 2*x^2 + 1)*y^2 + 3*x^2 + 1) d/dx*dx - 2*y/(x^6 + y^6 + 3*(x^2 + 1)*y^4 + 3*x^4 + 3*(x^4 + 2*x^2 + 1)*y^2 + 3*x^2 + 1) d/dx*dy + 4*x/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) d/dy*dx + 4*y/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) d/dy*dy" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t.display()" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v*df = -2*(xp^5 - 4*xp^2*yp^3 - xp*yp^4 - 4*(xp^4 + xp^2)*yp)/(xp^6 + yp^6 + 3*(xp^2 + 1)*yp^4 + 3*xp^4 + 3*(xp^4 + 2*xp^2 + 1)*yp^2 + 3*xp^2 + 1) d/dxp*dxp - 2*(xp^4*yp - 4*xp*yp^4 - yp^5 - 4*(xp^3 + xp)*yp^2)/(xp^6 + yp^6 + 3*(xp^2 + 1)*yp^4 + 3*xp^4 + 3*(xp^4 + 2*xp^2 + 1)*yp^2 + 3*xp^2 + 1) d/dxp*dyp - 4*(xp^5 + xp^4*yp + xp^2*yp^3 - xp*yp^4 + xp^3 - xp*yp^2)/(xp^6 + yp^6 + 3*(xp^2 + 1)*yp^4 + 3*xp^4 + 3*(xp^4 + 2*xp^2 + 1)*yp^2 + 3*xp^2 + 1) d/dyp*dxp - 4*(xp^3*yp^2 + xp*yp^4 - yp^5 - yp^3 + (xp^4 + xp^2)*yp)/(xp^6 + yp^6 + 3*(xp^2 + 1)*yp^4 + 3*xp^4 + 3*(xp^4 + 2*xp^2 + 1)*yp^2 + 3*xp^2 + 1) d/dyp*dyp" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t.display(eV)" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "v*df^x_x = -2*x/(x^6 + y^6 + 3*(x^2 + 1)*y^4 + 3*x^4 + 3*(x^4 + 2*x^2 + 1)*y^2 + 3*x^2 + 1) \n", "v*df^x_y = -2*y/(x^6 + y^6 + 3*(x^2 + 1)*y^4 + 3*x^4 + 3*(x^4 + 2*x^2 + 1)*y^2 + 3*x^2 + 1) \n", "v*df^y_x = 4*x/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) \n", "v*df^y_y = 4*y/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) " ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t.display_comp()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The parent of `t` is the set $\\mathcal{T}^{(1,1)}(M)$ of all type-$(1,1)$ tensor fields on $M$,\n", "considered as a $C^\\infty(M)$-module:" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Module T^(1,1)(M) of type-(1,1) tensors fields on the 2-dimensional differentiable manifold M\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "Module T^(1,1)(M) of type-(1,1) tensors fields on the 2-dimensional differentiable manifold M" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(t.parent())\n", "t.parent()" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Algebra of differentiable scalar fields on the 2-dimensional differentiable manifold M" ] }, "execution_count": 103, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t.parent().base_ring()" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "{Open subset V of the 2-dimensional differentiable manifold M: Tensor field v*df of type (1,1) on the Open subset V of the 2-dimensional differentiable manifold M,\n", " Open subset U of the 2-dimensional differentiable manifold M: Tensor field v*df of type (1,1) on the Open subset U of the 2-dimensional differentiable manifold M}" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t._restrictions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As for vector fields, since $M$ is not parallelizable, the $C^\\infty(M)$-module\n", "$\\mathcal{T}^{(1,1)}(M)$ is not free and the tensor fields are described by their restrictions to parallelizable subdomains:" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Free module T^(1,1)(U) of type-(1,1) tensors fields on the Open subset U of the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "print(t._restrictions[U].parent())" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Algebra of differentiable scalar fields on the Open subset U of the 2-dimensional differentiable manifold M" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t._restrictions[U].parent().base_ring()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Riemannian metric on $M$\n", "\n", "The standard metric on $M=\\mathbb{S}^2$ is that induced by the Euclidean metric of $\\mathbb{R}^3$. Let us start by defining the latter:" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "h = dX*dX + dY*dY + dZ*dZ" ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h = R3.metric('h')\n", "h[0,0], h[1,1], h[2, 2] = 1, 1, 1\n", "h.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The metric $g$ on $M$ is the pullback of $h$ associated with the embedding $\\Phi$:" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Riemannian metric g on the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "g = M.metric('g')\n", "g.set( Phi.pullback(h) )\n", "print(g)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that we could have defined $g$ intrinsically, i.e. by providing its components in the two frames `eU` and `eV`, as we did for the metric $h$ on $\\mathbb{R}^3$. Instead, we have chosen to get it as the pullback of $h$, as an example of pullback associated with some differential map. \n", "\n", "The metric is a symmetric tensor field of type (0,2):" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0, 2)" ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.tensor_type()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The expression of the metric in terms of the default frame on $M$ (`eU`):" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g = 4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) dx*dx + 4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) dy*dy" ] }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We may factorize the metric components:" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "4/(x^2 + y^2 + 1)^2" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g[0,0].factor() ; g[1,1].factor()" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g = 4/(x^2 + y^2 + 1)^2 dx*dx + 4/(x^2 + y^2 + 1)^2 dy*dy" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A matrix view of the components of $g$ in the manifold's default frame:" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[4/(x^2 + y^2 + 1)^2 0]\n", "[ 0 4/(x^2 + y^2 + 1)^2]" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g[:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display in terms of the vector frame $(V, (\\partial_{x'}, \\partial_{y'}))$:" ] }, { "cell_type": "code", "execution_count": 114, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g = 4/(xp^4 + yp^4 + 2*(xp^2 + 1)*yp^2 + 2*xp^2 + 1) dxp*dxp + 4/(xp^4 + yp^4 + 2*(xp^2 + 1)*yp^2 + 2*xp^2 + 1) dyp*dyp" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.display(eV)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The metric acts on vector field pairs, resulting in a scalar field:" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field g(v,v) on the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "print(g(v,v))" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Algebra of differentiable scalar fields on the 2-dimensional differentiable manifold M" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(v,v).parent()" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g(v,v): M --> R\n", "on U: (x, y) |--> 4*(4*x^4 + 4*y^4 + 8*(x^2 + 1)*y^2 + 8*x^2 + 5)/(x^8 + y^8 + 4*(x^2 + 1)*y^6 + 4*x^6 + 6*(x^4 + 2*x^2 + 1)*y^4 + 6*x^4 + 4*(x^6 + 3*x^4 + 3*x^2 + 1)*y^2 + 4*x^2 + 1)\n", "on V: (xp, yp) |--> 4*(5*xp^8 + 5*yp^8 + 4*(5*xp^2 + 2)*yp^6 + 8*xp^6 + 2*(15*xp^4 + 12*xp^2 + 2)*yp^4 + 4*xp^4 + 4*(5*xp^6 + 6*xp^4 + 2*xp^2)*yp^2)/(xp^8 + yp^8 + 4*(xp^2 + 1)*yp^6 + 4*xp^6 + 6*(xp^4 + 2*xp^2 + 1)*yp^4 + 6*xp^4 + 4*(xp^6 + 3*xp^4 + 3*xp^2 + 1)*yp^2 + 4*xp^2 + 1)" ] }, "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(v,v).display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The **Levi-Civita connection** associated with the metric $g$:" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Levi-Civita connection nabla_g associated with the Riemannian metric g on the 2-dimensional differentiable manifold M\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "Levi-Civita connection nabla_g associated with the Riemannian metric g on the 2-dimensional differentiable manifold M" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nab = g.connection()\n", "print(nab)\n", "nab" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The nonzero Christoffel symbols of $g$ (skipping those that can be deduced by symmetry on the last two indices) w.r.t. the chart `XU`:" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Gam^x_xx = -2*x/(x^2 + y^2 + 1) \n", "Gam^x_xy = -2*y/(x^2 + y^2 + 1) \n", "Gam^x_yy = 2*x/(x^2 + y^2 + 1) \n", "Gam^y_xx = 2*y/(x^2 + y^2 + 1) \n", "Gam^y_xy = -2*x/(x^2 + y^2 + 1) \n", "Gam^y_yy = -2*y/(x^2 + y^2 + 1) " ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.christoffel_symbols_display(chart=XU)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\nabla_g$ acting on the vector field $v$:" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field nabla_g(v) of type (1,1) on the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "Dv = nab(v)\n", "print(Dv)" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "nabla_g(v) = 4*(y^3 + (x^2 + 1)*y - x)/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) d/dx*dx - 4*(x^3 + x*y^2 + x + y)/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) d/dx*dy + 2*(2*x^3 + 2*x*y^2 + 2*x + y)/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) d/dy*dx + 2*(2*y^3 + 2*(x^2 + 1)*y - x)/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) d/dy*dy" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dv.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Curvature\n", "\n", "The Riemann tensor associated with the metric $g$:" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field Riem(g) of type (1,3) on the 2-dimensional differentiable manifold M\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "Riem(g) = 4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) d/dx*dy*dx*dy - 4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) d/dx*dy*dy*dx - 4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) d/dy*dx*dx*dy + 4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) d/dy*dx*dy*dx" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Riem = g.riemann()\n", "print(Riem)\n", "Riem.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The components of the Riemann tensor in the default frame on $M$:" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Riem(g)^x_yxy = 4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) \n", "Riem(g)^x_yyx = -4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) \n", "Riem(g)^y_xxy = -4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) \n", "Riem(g)^y_xyx = 4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) " ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Riem.display_comp()" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Module T^(1,3)(M) of type-(1,3) tensors fields on the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "print(Riem.parent())" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "no symmetry; antisymmetry: (2, 3)\n" ] } ], "source": [ "Riem.symmetries()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Riemann tensor associated with the Euclidean metric $h$ on $\\mathbb{R}^3$ is identically zero:" ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Riem(h) = 0" ] }, "execution_count": 126, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.riemann().display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Ricci tensor and the Ricci scalar:" ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Ric(g) = 4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) dx*dx + 4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) dy*dy" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ric = g.ricci()\n", "Ric.display()" ] }, { "cell_type": "code", "execution_count": 128, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "r(g): M --> R\n", "on U: (x, y) |--> 2\n", "on V: (xp, yp) |--> 2" ] }, "execution_count": 128, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R = g.ricci_scalar()\n", "R.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hence we recover the fact that $(\\mathbb{S}^2,g)$ is a Riemannian manifold of constant positive curvature.\n", "\n", "In dimension 2, the Riemann curvature tensor is entirely determined by the Ricci scalar $R$ according to\n", "$$ R^i_{\\ \\, jlk} = \\frac{R}{2} \\left( \\delta^i_{\\ \\, k} g_{jl} - \\delta^i_{\\ \\, l} g_{jk} \\right)$$\n", "Let us check this formula here, under the form $R^i_{\\ \\, jlk} = -R g_{j[k} \\delta^i_{\\ \\, l]}$:" ] }, { "cell_type": "code", "execution_count": 129, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ "delta = M.tangent_identity_field()\n", "Riem == - R*(g*delta).antisymmetrize(2,3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly the relation $\\mathrm{Ric} = (R/2)\\; g$ must hold:" ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ric == (R/2)*g" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The **Levi-Civita tensor** associated with $g$:" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2-form eps_g on the 2-dimensional differentiable manifold M\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "eps_g = 4/(x^4 + y^4 + 2*(x^2 + 1)*y^2 + 2*x^2 + 1) dx/\\dy" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eps = g.volume_form()\n", "print(eps)\n", "eps.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The exterior derivative of the 2-form $\\epsilon_g$:" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3-form deps_g on the 2-dimensional differentiable manifold M\n" ] } ], "source": [ "print(eps.exterior_derivative())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course, since $M$ has dimension 2, all 3-forms vanish identically:" ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "deps_g = 0" ] }, "execution_count": 133, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eps.exterior_derivative().display()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "SageMath 8.2.rc1", "language": "", "name": "sagemath" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.14" } }, "nbformat": 4, "nbformat_minor": 2 }