Skip to content

Commit 9e8b2ca

Browse files
authored
File Formats & Libraries (#61)
1 parent 4d1970c commit 9e8b2ca

4 files changed

Lines changed: 65 additions & 0 deletions

File tree

source/fileformats.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
(c:impl.fileformats)=
2+
# File Formats
3+
4+
The Particle Accelerator Lattice Standard (PALS) documents objects and their properties.
5+
For readability, [this standard uses YAML-style](c:introduction) examples, but the PALS schema can be implemented in a variety of file formats.
6+
7+
8+
## File Endings
9+
10+
When storing a PALS lattice in a file, please use the following self-describing file endings.
11+
12+
* [YAML](https://yaml.org/faq.html): `.pals.yaml`
13+
* [JSON](https://www.json.org/json-en.html): `.pals.json`
14+
* [TOML](https://toml.io): `.pals.toml`
15+
* [XML](https://en.wikipedia.org/wiki/XML): `.pals.xml`
16+
17+
18+
## Schema Files
19+
20+
Schema files for validation have not yet been developed.
21+
A validation tool based on pydantic is in development.
22+
See the [Libraries](#c:impl.libs) section.

source/index.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ multipass.md
1818
bend-multipoles.md
1919
```
2020

21+
```{toctree}
22+
:maxdepth: 2
23+
:caption: Implementations
24+
25+
fileformats.md
26+
libraries.md
27+
simulations.md
28+
```
29+
2130
```{toctree}
2231
:maxdepth: 2
2332
:caption: Back Matter

source/libraries.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
(c:impl.libs)=
2+
# Libraries
3+
4+
There are reference implementations of PALS parsers.
5+
6+
7+
## Python
8+
9+
The [PALS-Python](https://github.com/campa-consortium/pals-python) project implements the PALS schema in a file-agnostic way, mirrored in data objects.
10+
11+
PALS-Python provides interfaces to:
12+
* define lattices,
13+
* expand & evaluate expressions on lattices,
14+
* write and read from/to files,
15+
* convert files and
16+
* validate existing files.
17+
18+
19+
## More Implementations Wanted!
20+
21+
We welcome community implementations of PALS!
22+
We seek implementations such as readers of PALS-conforming files to Julia/C++/Fortran/etc., visualization of PALS files, and more!

source/simulations.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
(c:impl.sims)=
2+
# Simulations
3+
4+
The Particle Accelerator Lattice Standard (PALS) will be used used in various accelerator lattice simulations.
5+
6+
## Planned Implementations
7+
8+
- [BMAD](https://github.com/bmad-sim)
9+
- [BLAST ImpactX](https://impactx.readthedocs.io)
10+
- [BLAST WarpX](https://warpx.readthedocs.io)
11+
- *more coming soon...*
12+

0 commit comments

Comments
 (0)