{"id":13515695,"url":"https://github.com/specifics/aero-structures","last_synced_at":"2025-03-31T05:30:42.901Z","repository":{"id":215749399,"uuid":"120988740","full_name":"specifics/aero-structures","owner":"specifics","description":"Resources for analyzing aircraft structures for aerospace engineers","archived":false,"fork":false,"pushed_at":"2020-03-15T17:45:07.000Z","size":229,"stargazers_count":35,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-01T19:36:45.748Z","etag":null,"topics":["aerospace","aerospace-engineering","engineering","mechanical-engineering","mechanics","python"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/specifics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-10T05:48:56.000Z","updated_at":"2024-09-20T17:04:48.000Z","dependencies_parsed_at":"2024-02-03T17:00:12.462Z","dependency_job_id":null,"html_url":"https://github.com/specifics/aero-structures","commit_stats":null,"previous_names":["specifics/aero-structures"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specifics%2Faero-structures","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specifics%2Faero-structures/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specifics%2Faero-structures/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specifics%2Faero-structures/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/specifics","download_url":"https://codeload.github.com/specifics/aero-structures/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246423527,"owners_count":20774795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aerospace","aerospace-engineering","engineering","mechanical-engineering","mechanics","python"],"created_at":"2024-08-01T05:01:14.936Z","updated_at":"2025-03-31T05:30:42.878Z","avatar_url":"https://github.com/specifics.png","language":null,"readme":"# \u003ca name=\"top\"\u003e\u003c/a\u003eaero-structures\nResources for analyzing aerospace (i.e. aircraft, rocket, spacecraft) structures for aerospace engineers.\n\n# \u003ca name=\"scope\"\u003e\u003c/a\u003eScope\nThis page provides resources for the analysis aircraft structures using classical methods developed by prominent engineering minds such as Elmer F. Bruhn, Michael Niu, Warren Young (aka Raymond J. Roark), and Sighard F. Hoerner. This page also includes applications of these analysis methods in Python. Finite element methods are mentioned to provide context, but are otherwise not within the scope of this page\n\nUltimately, my objective is to:\n* Create a portal for standard structural analysis methods used in the aerospace industry\n* Help you learn how to [save time](https://xkcd.com/1205/) with examples of how I automate and optimize routine analysis with Python\n* Provide you with a template to document your own engineering processes \u0026 analysis tools in a meaningful way\n\n**Note:** To keep this document free of implicit endorsement, there are no links to Amazon, Google, etc. They're easy enough for you to use on your own to find the materials you want.\n\n**Disclaimer:** All content on this page is provided on a strictly informational basis. The contributors to this page cannot assume any responsibility, in any manner whatsoever, for the use readers make of the information presented herein, or the devices, systems, or calculations resulting therefrom. It is the responsibility of the reader to determine if the data and information provided are in agreement with the latest design allowables.\n\n# \u003ca name=\"rationale\"\u003e\u003c/a\u003eRationale\nAnalysis engineers face two different, but interrelated challenges when working \n\n1. Communicate analysis and findings to their colleagues, managers, and clients in a way that effectively conveys information to the intended audience.\n1. Internally documenting the numerous analyses, processes, and tools used throughout a project in a meaningful and accessible way for later reference, often by engineers other than the original ones who developed them.\n\nThere have been a number of times where I completed a project, and some months or even years later started another, similar project. When I refer to the old project files, I find that it's disorganized at best, often missing key pieces of information that aren't immediately obvious. This isn't intensional, of course -- it's simply the result of the engineer being forced to sacrifice some level of documentation to get work product out the door, which is an unfortunate reality of schedule-driven projects.\n\nThis means I have to spend a significant amount of time re-developing processes and tools to ensure that all the relevant parts are in place to succeed in the new project. As projects scale in complexity, this _mobilization cost_ becomes greater, and it's worth taking steps in an attempt to reduce it. This page is a first step in documenting analysis tools that I frequently use, and hopefully serve as a template for you to do the same.\n\nNew graduates will encounter moments in their career where they ask themselves, *\"Why didn't I learn this in school?\"* during their formative years as an EIT. My hope is that some of these resources will accelerate the learning process, and potentially save inexperienced engineers from committing serious but preventable mistakes.\n\nAnother, more aerospace-specific problem has been happening for several decades now. While there are many resources for aerospace engineering, much of it is scattered about disparate places around the net (e.g. countless threads on [Eng-Tips](http://www.eng-tips.com/)), or locked behind proprietary sources like the _Boeing Design Manual_. The aerospace industry has a lot of \"tribal\" knowledge that becomes lost when veteran engineers, technicians, mechanics, and fabricators retire or pass away without disseminating their decades of experience and knowledge to the next generation. There's simply no replacement for this knowledge, and very little of it makes it into modern aerospace texts, let alone university lecture halls. Even when this knowledge is documented in company design manuals, in the end they are only manuals and do not effectively replace an experienced mentor.\n\n[⇪ Top](#top)\n\n---\n\n# \u003ca name=\"toc\"\u003e\u003c/a\u003eTable of Contents\n\u003cdetails open\u003e\u003csummary\u003e\u003csup\u003eHide\u003c/sup\u003e/\u003csub\u003eShow\u003c/sub\u003e\u003c/summary\u003e\u003cbr/\u003e\n\n- [Symbols \u0026 Abbreviations](#symbols)\n\n- [Universal References](#u-references)\n\n- [Python References](#py-references)\n  - [Beginner-Novice](#beginner-novice)\n    - [Why Python?](#why-python)\n    - [Learning Python for the First Time](#learning-python-for-the-first-time)\n  - [Intermediate-Advanced](#intermediate-advanced)\n\n- [](#)\n\n[⇪ Top](#top)\n\u003c/details\u003e\n\n---\n\n## \u003ca name=\"symbols\"\u003e\u003c/a\u003eSymbols \u0026 Abbreviations\n\n\u003cdetails close\u003e\u003csummary\u003e\u003csup\u003eShow\u003c/sup\u003e/\u003csub\u003eHide\u003c/sub\u003e\u003c/summary\u003e\u003cbr/\u003e\n\nNomenclature|Definition\n:---:|:---\nAN|Army-Navy Standard\nFEA|Finite Element Analysis\nFEM|Finite Element Model\nIDE|Integrated Development Environment; e.g. _Spyder_, _JupyterLab_, _Sublime Text_\nMIL|Military; see MS\nMMPDS|Metallic Materials Properties Development and Standardization; see [Universal References](#u-references)\nMS, MIL-STD|Military Standard\nPEP|Python Enhancement Proposal; e.g. [PEP8](https://www.python.org/dev/peps/pep-0008/)\n\n\u003c/details\u003e\n\n---\n\n## \u003ca name=\"u-references\"\u003e\u003c/a\u003eUniversal References\nThese references are universal in that they are frequently used by aerospace design engineers to conduct analysis during the preliminary and detail design phases. While FEA is a powerful analysis tool, it comes with a lot of costs and overhead that isn't practical or necessary for a lot of engineering problems. In many cases a problem can be solved using a straightforward analysis process out of one of these texts, and if necessary, automated using a Python script. A common glib in engineering goes: *\"Someone a lot smarter than me figured this out 50 years ago.\"* — which is really just another way of saying *\"Don't re-invent the wheel.\"*\n\n**Students beware:** Most of these resources are not suitable for learning topic/course material for the first time.\n\n### \u003ca name=\"mmpds\"\u003e\u003c/a\u003eMetallic Materials Properties Development and Standardization (MMPDS)\nMMPDS is a database of statistically-verified strength data for common aerospace materials and fasteners, which serves as the basis for design manuals in nearly every aerospace company. While a new version of MMPDS with updated data gets released every year or so, older versions remain valid for aerospace design work. MMPDS-01 is available for free from the [National Technical Reports Library](https://ntrl.ntis.gov/NTRL/dashboard/searchResults/titleDetail/PB2003106632.xhtml) (U.S. Dept. of Commerce).\n\n**Note:** For aerospace design, MMPDS supersedes MIL Handbook. MMPDS-01 contains data equivalent to MIL-HDBK-5J.\n\n### \u003ca name=\"bruhn\"\u003e\u003c/a\u003e\"Analysis and Design of Airplane Structures\" by Elmer F. Bruhn\nConsidered by many to be 'the Bible' of flight vehicle analysis, Professor Bruhn detailed empirical design methods and calculation processes for aircraft structures that were used for practically every aircraft design from the 1940s and onward, until the advent of FEA and computer-driven numerical methods in the mid-1970s. This book no longer appears to be published, so if you find a copy, buy it.\n\n### \u003ca name=\"niu\"\u003e\u003c/a\u003e\"Airframe Structural Design: Practical Design Information and Data on Aircraft Structures\" by Michael Niu\nNiu was the Senior R\u0026D Engineer at Lockheed Martin and Stress Engineer at Boeing Co. during the development of the 727 and 747. With over 30 years of experience, Niu wrote about nearly every detail design consideration required for flight vehicle design. This text contains helpful diagrams and practical examples from his work, backed by empirical data \u0026 charts that can be referenced for various stress coefficients for specific types of analysis.\n\n### \u003ca name=\"roark\"\u003e\u003c/a\u003e\"Roark's Formulas for Stress and Strain\" by Warren C. Young \u0026 Richard G. Budynas\nKnown better under his pen name Raymond J. Roark, Professor Young draws upon more than four decades of academic research in mechanics of materials and mechanical engineering to produce one of the most commonly referenced engineering books of all time. While not aerospace-specific, *Roark's* is invaluable for the analysis and detail design of many types of mechanical loading problems.\n\n### \u003ca name=\"hoerner\"\u003e\u003c/a\u003e\"Fluid-Dynamic Lift\" and \"Fluid-Dynamic Drag\" by Sighard F. Hoerner\nFollowing World War 2, the aerodynamics field exploded with pioneers and researchers like Dr. Hoerner leading the field. In the same way that Professor Bruhn's text is go-to reference for the analysis of flight vehicle structures, Hoerner's books are absolutely fundamental for aerodynamic analysis of all kinds.\n\n### \u003ca name=\"dtic\"\u003e\u003c/a\u003e[Defense Technical Information Center (DTIC) ASSIST-QuickSearch](https://quicksearch.dla.mil/qssearch.aspx)\nFor all your MIL-spec needs. Preferable over unofficial sites like EverySpec. Document ID is something like `MIL-HDBK-5`, or you can search using comma-separated strings.\n\n### \u003ca name=\"ntrs\"\u003e\u003c/a\u003e[NASA Technical Reports Server (NTRS)](https://ntrs.nasa.gov/search.jsp)\nNTRS contains a vast wealth of information dating back to the early days of NASA, when they were known as the _National Advisory Committee for Aeronautics (NACA)_ from 1915 to 1958. Major topics of interest include both aeronautics and aerospace research, such as NACA airfoil test data; aerodynamic test data; flight vehicle design manuals; and design manuals on rocket staging, propellants, etc.\n\nWhen searching NTRS, I recommend having a very specific query on a design or analysis problem — there's a decent chance that someone at NASA has already done the legwork for you. An example of a good query is `buckling thin shell` and `double slotted flap`. I also suggest filtering the `Document Type` to only contain \"Technical Reports\", which will only show NASA design manuals and technical memos.\n\nDocuments of interest on various topics:\n\n* [NASA-SP-125: \"Design of Liquid Propellant Rocket Engines, Second Edition\" by D.H. Huang \u0026 D.K. Huzel](https://ntrs.nasa.gov/search.jsp?R=19710019929)\n* [NASA-RP-1228: \"Fastener Design Manual\" by Richard T. Barrett](https://ntrs.nasa.gov/search.jsp?R=19900009424)\n* [NASA-SP-8007: \"Buckling of thin-walled circular cylinders\" by Peterson-Seide-Weingarten](https://ntrs.nasa.gov/search.jsp?R=19690013955)\n\n---\n\n## \u003ca name=\"py-references\"\u003e\u003c/a\u003ePython References\n\nThis section assumes that you have zero programming knowledge. Your goal here is to go from `Hello world!` to what Chris Moffitt calls the [\"plateau of productivity\"](http://pbpython.com/plateau-of-productivity.html).\n\n[\u003cimg src=\"./images/hype-cycle.png\" width=\"559\"\u003e](http://pbpython.com/plateau-of-productivity.html)\n\nMany people who start coding for the first time get stuck in the \"trough of disillusionment\" stage of learning, and struggle to break out of it. I pushed a boulder up this same hill many times, only to fall back into the trough and give up for a while... but after numerous tries and lots of encouragement from my friends, learning partners, and the Python community, I got past the rut and now routinely develop my own engineering tools. It has absolutely been worth all the effort — not only in the time Python has saved me, but also in the sense of accomplishment.\n\nRandall Munroe (xkcd) came up with a handy chart for figuring out whether or not it's worth spending your time automating a given task.\n\n[\u003cimg src=\"./images/is_it_worth_the_time_2x.png\" width=\"618\"\u003e](https://xkcd.com/1205/)\n\n### \u003ca name=\"why-python\"\u003e\u003c/a\u003eWhy Python?\n* It's easy to learn and a great first coding language.\n* It's a mature language with a vibrant, active open-source community. There are thousands of useful libraries that tend to be well-documented.\n* It's used for many applications such as scientific computing, web development, data analysis, and machine learning.\n* It can be extended into C/C++ for embedded computing applications.\n\n### \u003ca name=\"beginner-novice\"\u003e\u003c/a\u003eBeginner-Novice\nWhether you're learning to code for the first time or an experienced programmer looking to add Python to your repertoir of languages, these resources will get you up and running quickly. The very first thing you'll want to do is download the [Anaconda distribution](https://www.anaconda.com/download/) of Python 3, and start up an IDE of your choice for one of the resources below. I recommend _JupyterLab_ or _Spyder_\n\n#### \u003ca name=\"learning-python-for-the-first-time\"\u003e\u003c/a\u003eLearning Python for the First Time\nThere are five main resources recommended by the Python community, all of them free. You only need to choose one and stick with it, but as we are all blessed with different minds, you'll want to try several to see which is more suited to your learning style. As one of my professors once told me, *\"Find a voice that speaks to you.\"*\n\n1. [Automate the Boring Stuff with Python](http://inventwithpython.com/#automate) by Al Sweigart\n1. [Dive into Python 3](http://www.diveintopython3.net/) by Mark Pilgrim\n1. [Think Python](http://greenteapress.com/wp/think-python-2e/) by Allen B. Downey\n1. [Python 101](http://python101.pythonlibrary.org/index.html) ([ebook version here](https://leanpub.com/python_101)) by Michael Driscoll\n1. [The Official Python Tutorial](https://docs.python.org/3/tutorial/index.html) by the Python Software Foundation\n\nAll of them cover the basics of Python, but don't completely overlap with each other in the topics they cover. The main difference is that 1 \u0026 2 get you off the ground faster, giving you the knowledge to start writing practical programs very quickly, while 3-5 take longer to get through, but are more comprehensive and focus on helping you build a solid foundation in Python. It's completely fine to go with one of the faster resources and fill in the gaps later as you need to.\n\nI like *\"Automate the Boring Stuff with Python\"* the best, which took me about 50 hours (and numerous tries) to get through. At some point early on, you'll start to get the itch to write real programs. That's perfectly normal, and I encourage you to start applying what you've learned using a project-based approach. Finding problems and coming up with a solution in Python is the best way to remember and apply the concepts you've learned — and ultimately get better at programming — rather than spending all your time reading and watching videos.\n\nOne resource you should avoid is *\"Learn Python the Hard Way\"* by Zed Shaw, mainly because it's outdated.\n\n#### \u003ca name=\"code-like-a-pythonista\"\u003e\u003c/a\u003e[Code Like a Pythonista: Idiomatic Python](http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html)\nAs you learn Python, you'll start to understand why styling and whitespace are important. David Goodger's *\"Code Like a Pythonista\"* and similarly [PEP8](https://www.python.org/dev/peps/pep-0008/) are important companions to have so that you get into the habit writing readable code. While you can afford to skip over some bits of the Python language to learn later, you can never afford to write crappy code because it can (and will) come back to bite you later. The most confused engineer is frequently the same person who wrote the code, looking at it months or years later.\n\nAs [SICP](https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-7.html) wisely stated:\n\n\u003e \\[...] a computer language is not just a way of getting a computer to perform operations but rather \\[...] it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute.\n\nOr as [The Zen of Python](https://www.python.org/dev/peps/pep-0020/) simply says: __Readability counts.__\n\n#### \u003ca name=\"pbpython\"\u003e\u003c/a\u003e[Practical Business Python](http://pbpython.com/)\nPB Python is a monthly-ish blog by Chris Moffitt ([@chris1610](https://github.com/chris1610/pbpython)) where he talks about how to apply Python in an everyday business setting. This is the best resource I've found for contextualizing how Python can be used as a powerful tool for enhancing or eliminating tasks that are normally done using Excel or Word. It's also a great place to get started with `pandas` (Python Data Analysis Library) for the first time, which should be of interest for Test/Instrumentation Engineers and Flight Test Analysts.\n\nHead into the [PB Python Archive](http://pbpython.com/archives.html) and start with the article from 5 October 2014, [\"Using Sets for Data Analysis\"](http://pbpython.com/data-analysis-with-sets.html). As you move forward, go through the articles in chronological order. Chris does a fantastic job of building upon each one until you have a formidable set of tools to tackle a variety of problems!\n\n**Note:** For planning purposes, each PBpy exercise can take 1-2 hours to get through, depending on the topic and your skill level.\n\n#### \u003ca name=\"regex101\"\u003e\u003c/a\u003e[Regular Expressions 101](https://regex101.com/) by Firas Dib\nRegular expressions are a powerful tool, but can be hard to dive into while learning Python. You should practically consider it as a separate language. This regex tester and repository is a great resource that can get the regex you need into your Python applications, while also explaining how the specific regex works.\n\n#### \u003ca name=\"learning-python\"\u003e\u003c/a\u003e\"Learning Python, 5th Ed.\" by Mark Lutz\nThis text is perhaps the most comprehensive resource for beginner Python users, and covers some topics that aren't in any of the [Learning Python for the First Time](#learning-python) resources, such as interfacing Python with C/C++. This is of particular interest for engineers that work with embedded systems that require C/C++, or anyone that desires the computational power of C/C++ while keeping the ease of development in Python.\n\nSince this book is an absolute behemoth of over 1,600 pages, I recommend it mainly as a companion reference for looking up concepts \u0026 examples that aren't explained thoroughly by any of the free resources. For even more exercises, Mark Lutz made his [live course materials](http://learning-python.com/training) available for free.\n\n#### \u003ca name=\"python-in-a-nutshell\"\u003e\u003c/a\u003e\"Python in a Nutshell\" by Martelli-Ravenscroft-Holden\n\n---\n\n### \u003ca name=\"intermediate-advanced\"\u003e\u003c/a\u003eIntermediate-Advanced\nBy the time you've completed some programming projects on your own, you'll probably need some resources to reach the next skill level as a Python developer. The books in this section will help correct some of the bad habits you've undoubtedly picked up while learning Python, and fill in any knowledge gaps while also delving into more advanced programming methods. \"Fluent Python\" is a solid and frequently recommended text that you can't go wrong with, but each of these books has something different to offer depending on what your learning goals are.\n\n#### \u003ca name=\"fullstackpython\"\u003e\u003c/a\u003e[Full Stack Python](https://www.fullstackpython.com/introduction.html)\nFull Stack Python is a landing point for intermediate Python learners looking for a specific focus or application. This open book includes a wealth of resources for getting into web development, data analysis, security, and application deployment, which can be helpful for coming up with projects and learning goals beyond mastering the language.\n\n#### \u003ca name=\"fluent-python\"\u003e\u003c/a\u003e\"Fluent Python: Clear, Concise, and Effective Programming\" by Luciano Ramalho\n\n#### \u003ca name=\"effective-python\"\u003e\u003c/a\u003e\"Effective Python: 59 Specific Ways to Write Better Python\" by Brett Slatkin\n\n[From the author of \"Effective Python\" on the differences from \"Python Cookbook\"](https://www.reddit.com/r/Python/comments/31zjy5/book_effective_python_vs_python_cookbook_which/cq6nl66/):\n\n\u003e Author of Effective Python here. I think they're very different books! David Beazley is awesome and a wonderful educator. He's always the best speaker at PyCon. I'd say: the _Cookbook_ is a powerful and thorough reference, the _Effective_ books are short and scenario driven.\n\n#### \u003ca name=\"python-cookbook\"\u003e\u003c/a\u003e\"Python Cookbook\" by David Beazley and Brian K. Jones\n\n#### \u003ca name=\"high-performance-python\"\u003e\u003c/a\u003e\"High Performance Python: Practical Performant Programming for Humans\" by Micha Gorelick and Ian Ozsvald\n\n#### \u003ca name=\"hackers-guide-to-python\"\u003e\u003c/a\u003e\"The Hacker's Guide to Python\" by Julien Danjou\n\n---\n","funding_links":[],"categories":["Non-technical","GitHub lists on space sciences and technology"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecifics%2Faero-structures","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspecifics%2Faero-structures","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecifics%2Faero-structures/lists"}