{"id":19604133,"url":"https://github.com/zedthree/openplasmaequilibrium","last_synced_at":"2026-03-02T07:04:19.735Z","repository":{"id":145381164,"uuid":"241412085","full_name":"ZedThree/OpenPlasmaEquilibrium","owner":"ZedThree","description":"Strawperson specification for plasma equilibrium file format","archived":false,"fork":false,"pushed_at":"2020-02-19T17:17:34.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-18T00:54:03.348Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZedThree.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2020-02-18T16:34:55.000Z","updated_at":"2020-02-19T17:17:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"069bb67a-9854-45f3-b5c2-122092e687ec","html_url":"https://github.com/ZedThree/OpenPlasmaEquilibrium","commit_stats":{"total_commits":4,"total_committers":1,"mean_commits":4.0,"dds":0.0,"last_synced_commit":"b73b6401243cc18e8659e625353fc3c229423630"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZedThree%2FOpenPlasmaEquilibrium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZedThree%2FOpenPlasmaEquilibrium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZedThree%2FOpenPlasmaEquilibrium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZedThree%2FOpenPlasmaEquilibrium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZedThree","download_url":"https://codeload.github.com/ZedThree/OpenPlasmaEquilibrium/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240887290,"owners_count":19873533,"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":[],"created_at":"2024-11-11T09:34:56.101Z","updated_at":"2026-03-02T07:04:19.682Z","avatar_url":"https://github.com/ZedThree.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Open Plasma Equilibrium Specification\n\nThe Open Plasma Equilibrium Specification (OPEQS) is a description of\na file format for plasma equilibria using [HDF5][hdf5]. Currently a\nwork in progress, absolutely everything about this is subject to\nchange, including the name.\n\nOPEQS is licensed under Creative Commons Attribution Share Alike 4.0\nInternational. See [LICENSE.md](LICENSE.md).\n\n## TODO\n\n- Provide schema and validator\n- Provide units for all quantities\n\n## OPEQS Specification 0.1.0\n\n- OPEQS files are HDF5 files\n    - Specify HDF5 version? At least 1.10? Backwards compatibility\n      issues\n- Files must have some metadata: what version of OPEQS spec, what\n  software was used to create the file (including that software\n  version)\n- Currently targeting only tokamaks, but for future-proofing, this can\n  be specified via `symmetry` variable\n- `\u003cname\u003e` is placeholder for a value\n- `/equilibrium/\u003csymmetry\u003e` must match the value of `/symmetry`, that\n  is `/equilibrium/tokamak` is currently the only supported group name\n- Circuits consisting of multiple coils are represented by nested\n  groups:\n  - `/equilibrium/tokamak/coils/P2/P2U` and\n    `/equilibrium/tokamak/coils/P2/P2L` are two coils that make up the\n    `P2` circuit\n\n### Metadata (in root `/`)\n\n| Variable             | Required | Rank | Type     | Units | Description                                                     |\n|:---------------------|:---------|------|:---------|:------|:----------------------------------------------------------------|\n| `/opeqs_version`     | yes      | n/a  | `string` | n/a   | Version number of the OPEQS specification this file conforms to |\n| `/creation_software` | yes      | n/a  | `string` | n/a   | Name of the software used to create this file                   |\n| `/creation_version`  | yes      | n/a  | `string` | n/a   | Version of the software used to create this file                |\n| `/symmetry`          | no       | n/a  | `string` | n/a   | Type of symmetry. Only \"tokamak\" is currently supported         |\n\n### Equilibrium quantities (in group `/equilibrium`)\n\n| Variable                   | Required       | Rank | Type     | Units  | Description                                                                                           |\n|:---------------------------|:---------------|------|:---------|:-------|:------------------------------------------------------------------------------------------------------|\n| `Rmin`                     | no             | 0    | `float`  | metres | Minimum major radius                                                                                  |\n| `Rmax`                     | no             | 0    | `float`  | metres | Maximum major radius                                                                                  |\n| `R_1D`                     | yes            | 1    | `float`  | metres | Major radius                                                                                          |\n| `R`                        | no\u003csup\u003e1\u003c/sup\u003e | 2    | `float`  | metres | Major radius                                                                                          |\n| `Zmin`                     | no             | 0    | `float`  | metres | Minimum vertical coordinate                                                                           |\n| `Zmax`                     | no             | 0    | `float`  | metres | Maximum vertical coordinate                                                                           |\n| `Z_1D`                     | yes            | 1    | `float`  | metres | Vertical coordinate                                                                                   |\n| `Z`                        | no\u003csup\u003e1\u003c/sup\u003e | 2    | `float`  | metres | Vertical coordinate                                                                                   |\n| `boundary_function`        | no             | n/a  | `string` | n/a    | Name of boundary function to apply. One of `[\"fixedBoundary\", \"freeBoundary\", \"freeBoundaryHagenow\"]` |\n| `current`                  | no             | 0    | `float`  | Amps   | Plasma current                                                                                        |\n| `psi`                      | yes            | 2    | `float`  | FIXME  | Total poloidal flux, including contribution from plasma and external coils as a function of `(R, Z)`  |\n| `plasma_psi`               | yes            | 2    | `float`  | FIXME  | Poloidal flux, just contribution from plasma, as a function of `(R, Z)`                               |\n| `pressure`                 | no             | 2    | `float`  | FIXME  | Pressure as a function of `(R, Z)`                                                                    |\n| `toroidal_current_density` | no             | 2    | `float`  | FIXME  | Toroidal current density as a function of `(R, Z)`                                                    |\n\n\u003csup\u003e1\u003c/sup\u003e.: If one of these variables is present, they must both be present\n\n### Machine information (in group `/equilibrium/\u003csymmetry\u003e`)\n\n| Variable                  | Required       | Rank | Type    | Units    | Description                                                      |\n|:--------------------------|:---------------|------|:--------|:---------|:-----------------------------------------------------------------|\n| `wall_R`                  | no\u003csup\u003e2\u003c/sup\u003e | 1    | `float` | metres   | Major radius locations of points defining the machine wall       |\n| `wall_Z`                  | no\u003csup\u003e2\u003c/sup\u003e | 1    | `float` | metres   | Vertical locations of points defining the machine wall           |\n| `coils/\u003cname\u003e/R`          | no\u003csup\u003e3\u003c/sup\u003e | 0    | `float` | metres   | Major radius location of the coil                                |\n| `coils/\u003cname\u003e/Z`          | no\u003csup\u003e3\u003c/sup\u003e | 0    | `float` | metres   | Vertical location of the coil                                    |\n| `coils/\u003cname\u003e/area`       | no\u003csup\u003e3\u003c/sup\u003e | 0    | `float` | metres^2 | Cross-sectional area of the coil                                 |\n| `coils/\u003cname\u003e/current`    | no\u003csup\u003e3\u003c/sup\u003e | 0    | `float` | Amps     | Current in each turn of the coil                                 |\n| `coils/\u003cname\u003e/turns`      | no\u003csup\u003e3\u003c/sup\u003e | 0    | `int`   | n/a      | Number of turns in coil                                          |\n| `coils/\u003cname\u003e/control`    | no\u003csup\u003e3\u003c/sup\u003e | 0    | `bool`  | n/a      | Control system is enabled                                        |\n| `coils/\u003cname\u003e/multiplier` | no\u003csup\u003e4\u003c/sup\u003e | 0    | `float` | n/a      | If this coil is part of a circuit, the multiplier of the current |\n|                           |                |      |         |          |                                                                  |\n\n\u003csup\u003e2\u003c/sup\u003e: If one of these variables is present, they must both be\npresent  \n\u003csup\u003e3\u003c/sup\u003e: If one of these variables is present, they must all be\npresent  \n\u003csup\u003e4\u003c/sup\u003e: This must be present if and only if this coil is part of a circuit\n\n## Attributes\n\nAll variables may have the following attributes:\n\n| Attribute     | Type     | Description                |\n|:--------------|----------|:---------------------------|\n| `title`       | `string` | Short name of the variable |\n| `description` | `string` | Long name of the variable  |\n| `units`       | `string` | SI unit name               |\n\nVariables which have units specified must have the `units` attribute.\n\n\n[hdf5]: https://www.hdfgroup.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzedthree%2Fopenplasmaequilibrium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzedthree%2Fopenplasmaequilibrium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzedthree%2Fopenplasmaequilibrium/lists"}