Procedural Generation and Finite Element Testing of a Geodesic Dome
The code for the following writeup can be found here
Modeling a geodesic dome manually in finite element analysis software is a time intensive and unscalable process. Fortunately, it is possible to use input scripts to build models in finite element analysis software making the process infinitely scalable. While modeling the first dome takes roughly the same amount of time with each method, it is the process of rebuilding the dome with different frequencies, radii and projections where scripting shows its value and advantage.
The dome generation software was built on top of the deprecated python library PyDome, taking advantage of some dome modeling math included in the package. Additional code was added in order to export the domes into specific FEM software such as ABAQUS and project the icosahedral dome geometry onto different surfaces such as spheres and capsules. The outline of the process is shown in figure 1.
The core component to a geodesic dome is its 20-sided icosahedral structure. The nodes of the icosahedral structure are stored in the code as vector coordinates with a unit vector length of 1. In order to resize the geodesic dome to a specific radius, the dot product is taken between each vector node and the scalar radius given by the user as shown in equation 1.
After Equation 1 is applied to the original icosahedron, the vertex geometry for a 1st frequency geodesic sphere is generated. In order to generate a more usable geodesic sphere, each of the equilateral triangular faces must be subdivided. In this instance, each frequency subdivision will result in smaller equilateral triangles and shorter member lengths.
Once the formulas for the triangle subdivision is defined, a nested loop is used to calculate the coordinate of each node. The main loop will traverse from vertex A to C and the nested loop will traverse from vertex A to B at the same time as shown in equation 3.
Once the geodesic dome is subdivided into the given frequency, a mathematically perfect geodesic dome is produced with perfect equilateral triangles on all faces. However, at this stage, this icosahedron is not an ideal shape to bear high impact loads or utilize space efficiently in a location that is space limited. In order to solve these problems, the icosahedral dome must be projected onto a sphere. At this stage, the program will convert each of the nodes from a cartesian system to a spherical system. This will allow the program to adjust the distance of each node from the center of the sphere without disrupting other components of its location. Once the radius of each node is set to the fixed value given by the user, the coordinates are converted back to the cartesian system for exporting to CAD and FEM software.
In addition to spherical projections, the software is capable of projecting the geodesic structure onto cylinders and capsules. For these projections, rather than converting the coordinates into spherical form, they are converted to cylindrical.
In order to produce a capsule shape, a cut point must be made at a point where the top is projected using the spherical model and the bottom portion is projected This results in a structure that will take up more floor space and less vertical space. This will be helpful in the case that the allotted construction space has a lower ceiling. In addition, it will allow the areas of the dome that are close to the edges more usable.
The projection of the icosahedral structure onto different surfaces is not without its drawbacks. As the projection surface differs from the original icosahedral shape, the length of the frame members and the angles of the joins begin to deviate from each other. While an icosahedral dome will have perfectly identical member lengths, the set of member lengths in the geodesic sphere will have a standard deviation of greater than 6% and a capsule will result in standard deviations of greater than 15%.
The completed product of the dome generated software is a set of sorted arrays containing data for each of the vertices as well as which vertices are connected to each other. This information is then written to a cold text file that is read by a separate input script. This step is necessary because ABAQUS will not run python code with any third-party dependencies.
References
1) Meek, J., and Loganathan, S. (1989). “Theoretical and Experimental Investigation of a Shallow Geodesic Dome.” International Journal of Space Structures, 4(2), 89–105.
2) Nayfeh, A. H., and Hefzy, M. S. (2013). NASA Technical Reports Server, tech.
3) Ruen, T. (2017). Geodesic Polyhedron. Wikipedia.