This repository has been archived by the owner on Jul 27, 2022. It is now read-only.
forked from pyccel/pygyro
-
Notifications
You must be signed in to change notification settings - Fork 0
dominikbell/pygyro
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
PyGyro ====== PyGyro is a Python-3 library for parallel gyro-kinetic simulations. Requirements ============ The following python packages are required: coverage h5py matplotlib mpi4py numpy pytest scipy This project requires parallel h5py. The commands to install this are as follows: ``` export CC=mpicc export HDF5_MPI="ON" export HDF5_DIR=$HDF5_HOME pip install --no-binary=h5py h5py ``` On a module based system the following modules must first be loaded: ``` module load impi module load anaconda/3 module load mpi4py module load hdf5-mpi ``` If the module based system does not have parallel h5py installed, a virtual environment can be used. In this case the following modules must be loaded: ``` module load impi module load anaconda/3 module load hdf5-mpi ``` Then the virtual environment with mpi4py and h5py can be created using the following commands: ``` export CC=$(which mpicc) export HDF5_MPI="ON" python3 -m venv venv source venv/bin/activate python3 -m pip install --no-binary=mpi4py mpi4py python3 -m pip install --no-binary=h5py h5py ``` The virtual environment can be accessed using `source venv/bin/activate` and is deactivated with the command `deactivate`. Run === The pure python code can be run using the command: python fullSimulation There are 2 obligatory positional arguments. The first is the end time of the simulation. The second is the maximum real-world runtime. In addition there are 3 optional arguments: -f foldername -c constantsFile -s saveStep Either a constants file or a folder containing a constants file must be provided. Acceleration ============ The code can be run using pure python, using acceleration provided by numba or using acceleration provided by pyccel. Numba ===== In order to run pygyro using numba, the numba package must be installed. The command ``` make ACC=numba numba ``` will compile the code using the numba ahead-of-time compiler. The code can then be run as previously described for the pure python setup. Pyccel ====== In order to run pygyro using pyccel, the pyccel package must be installed. The command ``` make ACC=pycc LANGUAGE=[X] pycc ``` will compile the code which has been generated by pyccel. Where [X] is one of: fortran, c The code can then be run as previously described for the pure python setup. When using the pyccel generated code the option `COMP=intel` can also be specified if the intel compiler should be used. These options can all be specified in the makefile. A simple `make` command defaults to `make ACC=pycc LANGUAGE=fortran pycc COMP=gnu`. Pythran ======= In order to run pygyro using pythran, the pythran package must be installed. The command ``` make ACC=pythran pythran ``` will compile the code using pythran. The code can then be run as previously described for the pure python setup.
About
Python library for parallel gyro-kinetic simulations
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Python 98.9%
- Other 1.1%