{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# The E-module in Tetravolumes\n", "#### by D. Koski & K. Urner, June 2018\n", "\n", "The E-module has long been a standard module, starting with Synergetics and persisting through the writings and research of several students of polyhedral dissections.\n", "\n", "The E is 1/120th of the Rhombic Triacontahedron with:\n", "\n", "* radius = 1 (from center to surface face center)\n", "* surface face diagonals of 1/Ø and (1/Ø)(1/Ø)\n", "\n", "In Synergetics, our unit of volume is the regular tetrahedron of edges D, where D is the diameter of a CCP sphere in densest packing, with twelve-around-one at any interior vertex or node. D may be set at 1 or 2, in which case R (radius) will be 0.5 or 1 respectively.\n", "\n", "\"Rhombic\n", "\n", "
Fig 1. RT in Synergetics (Fig. 986.419)
\n", "\n", "The E-mod's volume, in tetra-volumes, is: (√2/8)/ØØØ\n", "\n", "The E-mod's volume is a little bigger than 1/24, the T-mod's volume i.e. 1/120th of a RT of volume 5 exactly. Ts and Es come in left and right handed flavors.\n", "\n", "The E-mods RT, scaled up by Ø in all linear dimensions, is the \"child\" of the Concentric Hierarchy Icosahedron of volume ~18.51 and its dual, the Pentagonal Dodecahedron. When their edges cross, the thirty diamond-face mid-points are established, along with the corresponding vertexes.\n", "\n", "When the RT is scaled up by Ø in all linear dimensions, volume goes up as a factor of Ø to the third power (we do *not* feel compelled to say \"cubed\" given the shape in question). David's notation for the larger Emod shapes is [E3](https://github.com/4dsolutions/Python5/blob/master/CuboidalE3.ipynb), whereas if we shrink Emod down by Ø in all linear dimensions, we call it e3 (lowercase means \"smaller than\"), e6 etc. Ditto for the Smod.\n", "\n", "For more on how the Platonics \"give birth\" to our Concentric Hierarchy players, check out [Genesis Story](https://youtu.be/vk-cpknOz9E) on Youtube." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.041731316927773654" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import tetravolume\n", "Ø = (1 + 5**0.5)/2\n", "from math import sqrt\n", "Emod = sqrt(2)/8 * Ø**-3\n", "Emod" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Koski tet](emod.jpg)\n", "\n", "
Fig 2. Emod by D. Koski
\n", "\n", "\n", "The E mod tetravolume is (√2/8)/ØØØ or .041731 \n", "\n", "In the figure above the E mod is further subdivided by additional intersecting planes creating what we might call Phe, Phi, Pho, Phum submodules. This [subdivision of the E](https://github.com/4dsolutions/Python5/blob/master/BeanStalkSeries.ipynb) is discussed in more detail elsewhere. The planes that cut the E3 per LCD trianges (derived from the 31 great circles of the spinning icosahedron), define a way to cut an E lying sideways on the E3's external face.\n", "\n", "The E module proper, as depicted, has three blue orthogonal lengths: \n", "* short_face_diag = 1/(Ø*Ø) = 0.381966\n", "* long_face_diag = 1/Ø = 0.618033 \n", "* radius = 1.000000\n", "\n", "It then has 2 red lengths, serving as hypotenuses:\n", "* long_hypot = √(5-√5)/2 = 1.175570\n", "* short_hypot = √(5-2√5) = .726542\n", "\n", "... and finally, a yellow length, also an hypotenuse:\n", "* yellow = (Ø^-1)(√3) = 1.070466" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "short_face_diag = 1/(Ø*Ø)\n", "long_face_diag = 1/Ø\n", "radius = 1.000000\n", "long_hypot = sqrt((5-sqrt(5))/2)\n", "short_hypot = sqrt(5-2*sqrt(5))\n", "yellow = sqrt(3)/Ø" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below, we convert these to Python and feed them to our volume computer, which sets D=1 i.e. our dimensions are twice as big (assuming R=1). So the final step involves taking 1/8th the computed volume." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Blue:\n", " short_face_diag: 0.38196601125010515\n", " long_face_diag: 0.6180339887498948\n", " radius: 1.0\n", "Red:\n", " long_hypot: 1.1755705045849463\n", " short_hypot: 0.7265425280053608\n", "\n", " yellow: 1.0704662693192697\n" ] } ], "source": [ "print(\"Blue:\")\n", "print(\" short_face_diag:\", short_face_diag)\n", "print(\" long_face_diag:\", long_face_diag)\n", "print(\" radius:\", radius)\n", "print(\"Red:\")\n", "print(\" long_hypot:\", long_hypot)\n", "print(\" short_hypot:\", short_hypot)\n", "print()\n", "print(\" yellow:\", yellow)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.04173131692777366" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ivm_vol = tetravolume.Tetrahedron(radius, long_face_diag, short_face_diag,\n", " long_hypot, short_hypot, yellow).ivm_volume()\n", "ivm_vol/8" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Koski tet](koski_tet.jpg)\n", "
Fig 3. Same Volume as Emod, by D. Koski
\n", "\n", "We may follow essentially the same workflow with this alternative tetrahedron which turns out to have the same volume as the E module. Note the division by 8 in the final step.\n", "\n", "* Short Blue = 1/Ø\n", "* Long Blue = 2/Ø\n", "* Yellow = √3/Ø\n", "* Purple = √3/Ø\n", "* Green = √2/Ø\n", "* Red = √((25-11√5)/2)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "purple = yellow = (3**0.5)/Ø\n", "short_blue = 1/Ø\n", "long_blue = 2/Ø\n", "green = sqrt(2)/Ø\n", "red = sqrt((25-11*sqrt(5))/2) " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "phi 1.618033988749895\n", "Purple, Yellow: 1.0704662693192697\n", " Short Blue: 0.6180339887498948\n", " Long Blue: 1.2360679774997896\n", " Green: 0.8740320488976422\n", " Red: 0.4490279765795847\n" ] } ], "source": [ "print(\"phi\", Ø)\n", "print(\"Purple, Yellow:\", purple)\n", "print(\" Short Blue:\", short_blue)\n", "print(\" Long Blue:\", long_blue)\n", "print(\" Green:\", green)\n", "print(\" Red:\", red)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ivm_vol = tetravolume.Tetrahedron(red, yellow, green, long_blue, short_blue, purple).ivm_volume()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.04173131692777366" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ivm_vol/8" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So far, we've depending on the built-in ```float``` type for our computations, but lets remember our 3rd party assets, in addition to ```decimal.Decimal``` in the Standard Library.\n", "\n", "The computations below run through some of the same volumes already talked about, such as the E-module." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RT5 radius: 0.9994833322623434400464260276814215953818\n", "SuperRT: 21.2132034355964257320253308631454711785451\n", "5+ RT: 5.0077580313328385159327414401998356487032\n", "5 RT: 5.0000000000000000000000000000000000000000\n", "Emod: 0.0417313169277736542994395120016652970725\n", "Tmod: 0.0416666666666666666666666666666666666667\n" ] } ], "source": [ "import gmpy2\n", "\n", "gmpy2.get_context().precision=300\n", "Ø = (1 + gmpy2.root(5, 2))/2\n", "vol_scale_factor = 1.5\n", "rad_scale_factor = gmpy2.root(vol_scale_factor, 3)\n", "\n", "h = (Ø / gmpy2.root(2,2)) * (1/rad_scale_factor)\n", "print(\"RT5 radius: {:42.40f}\".format(h))\n", "S3 = gmpy2.root(9/8, 2)\n", "SuperRT_vol = S3 * 20\n", "print(\"SuperRT: {:42.40f}\".format( SuperRT_vol))\n", "Emod_RT_vol = SuperRT_vol * (1/Ø)**3\n", "print(\"5+ RT: {:42.40f}\".format( Emod_RT_vol ))\n", "Tmod_RT_vol = gmpy2.mpfr(float(5.0))\n", "print(\"5 RT: {:42.40f}\".format( Tmod_RT_vol ))\n", "print(\"Emod: {:42.40f}\".format( Emod_RT_vol/120 ))\n", "print(\"Tmod: {:42.40f}\".format( Tmod_RT_vol/120 ))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }