# P4IRS - Parallel and Performance-Portable Particles Intermediate Representation and Simulator
P4IRS is an open-source, stand-alone compiler and domain-specific language for particle simulations which aims at generating optimized code for different target hardwares.
It is released as a Python package and allows users to define kernels, integrators and other particle routines in a high-level and straightforward fashion without the need to implement any backend code.
## Build instructions
There is a Makefile which contains configurable environment variables such as `TESTCASE` compiler parameters evaluate P4IRS performance on different scenarios.
`TESTCASE` refers to any of the files within the `examples` directory, such as `md` and `dem`.
## Usage
To use P4IRS, it is necessary to install it as a Python package and import it with:
```python
importpairs
```
Particle interactions and specific routines to update each particle individually are defined through Python methods. These can make use of defined properties in the simulation, parameters passed in the `compute` method and intrinsic methods from P4IRS: