{"id":23913074,"url":"https://github.com/nategphillips/moc","last_synced_at":"2025-02-23T18:18:49.968Z","repository":{"id":187059568,"uuid":"676232169","full_name":"nategphillips/moc","owner":"nategphillips","description":"An implementation of the method of characteristics for supersonic nozzle design written in Python.","archived":false,"fork":false,"pushed_at":"2023-08-31T14:29:14.000Z","size":831,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-05T09:30:46.363Z","etag":null,"topics":["aerospace-engineering","method-of-characteristics","nozzle-design","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nategphillips.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-08-08T18:19:58.000Z","updated_at":"2024-07-26T20:01:46.000Z","dependencies_parsed_at":"2023-12-17T02:45:10.739Z","dependency_job_id":null,"html_url":"https://github.com/nategphillips/moc","commit_stats":null,"previous_names":["amilkyboi/moc","nategphillips/moc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nategphillips%2Fmoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nategphillips%2Fmoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nategphillips%2Fmoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nategphillips%2Fmoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nategphillips","download_url":"https://codeload.github.com/nategphillips/moc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240356297,"owners_count":19788530,"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-engineering","method-of-characteristics","nozzle-design","python"],"created_at":"2025-01-05T09:29:28.899Z","updated_at":"2025-02-23T18:18:49.932Z","avatar_url":"https://github.com/nategphillips.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# moc\n\n\u003e *Last Updated: 16 August 2023*\n\nAn implementation of the method of characteristics for supersonic nozzle design written in Python.\n\n## Roadmap\n\nFor now, I've only implemented minimum-length nozzle design. The plan is to use the baseline algorithm to add more complex features in the future.\n\nPlanned nozzle designs:\n\n- [x] minimum-length\n- [ ] expansion-straightening\n- [ ] axisymmetric\n\n## Example Design\n\nDesign of a minimum-length supersonic nozzle using:\n\n- $M_\\text{e}=2.4$\n- $\\gamma=1.4$\n- $N_\\text{lines}=25$\n- $r_\\text{t}=1.0$\n\n![example design](img/example.webp)\n\n## Some Theory\n\nAssumptions and general overview of different nozzle designs. In general, the flow is assumed to be\n\n- two-dimensional\n- steady\n- adiabatic\n- irrotational\n- shock-free\n- isentropic\n- supersonic\n\nexcept in the case of axisymmetric design, where a cylindrical coordinate system is used since the nozzle profile can be rotated around the centerline axis.\n\n### Minimum-length\n\nMinimum-length nozzle design is the simplest way to apply the 2-D MOC. These designs assume that the sonic line at the throat is straight and neglect the expansion section of the nozzle.\n\nAll characteristic lines emanate from the sharp corner that defines the throat radius and the compatibility equations are algebraic.\n\n### Expansion-straightening\n\nThe flow assumptions here are the same as those in the minimum-length design, but the expansion section is introduced. This complicates how the characteristic lines emanate, but the compatibility equations are still algebraic.\n\n### Axisymmetric\n\nProduces nozzle designs that can be rotated about the centerline axis. Unlike the previous two methods, whose nozzles can only be used in wind tunnel facilities, the nozzles generated using this method can theoretically be flown on rockets. (They will still be far too long and therefore heavy to be flown, [Rao](https://en.wikipedia.org/wiki/Bell_nozzle) nozzles offer a more useful baseline for real-world engine design.)\n\nNow, the compatibility equations involve differentials and must be solved using finite differencing techniques. The general MOC propagation algorithm remains unchanged.\n\n## Other Designs\n\nThree-dimensional methods can be used, along with governing equations that consider rotational flow. MOC can even be coupled with equilibrium or non-equilibrium chemical kinetic solvers to produce nozzles that consider variable gas properties in the flowfield.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnategphillips%2Fmoc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnategphillips%2Fmoc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnategphillips%2Fmoc/lists"}