Latest version
Close
Close
Close
Close
Close
Close
Allows developers to experiment with the MaidSafe SAFE Network functionality when no live network is available. Linux only so far. Windows / Mac versions may be built according to these instructions. The current version (v3.5.7) of the package was tested on major desktop platforms: Linux (Debian, Ubuntu and CentOS distributions), Windows 10, Mac OS X. Pre-compiled binaries for these OSes are provided on the project Web page. The interactive Python / Jupyter shells can be used from cloud services CoLab and CodeOcean.
Last released:
A python full-field electrodynamical solver, based on the Green dyadic method (volume integral technique in frequency domain).
Project description
pyGDM2 is available on pypi and gitlab.
Detailed documentation with many examples is avaiable at the pyGDM2 documentation website. See also the documentation paper on arXiv (1802.04071)
Requirements
Python
- python (2.7 or 3.5+, python)
- numpy (numpy)
- python headers (under ubuntu, install the package python-dev or python-devel)
Fortran
- fortran compiler (tested with gfortran. gcc)
- openmp (usually comes with fortran. openmp)
- f2py (comes with numpy. link)
Optional Python packages
- scipy >= v0.17.0, lower versions supported with restrictions (Strongly recommended. Used for standard solver LU decomposition and several tools. scipy)
- matplotlib (Strongly recommended. For all 2D visualization tools. matplotlib)
- mpi4py (for MPI parallelized calculation of spectra. mpi4py)
- mayavi (for all 3D visualization. mayavi)
- PIL (image processing. PIL)
- pathos (for multi-threaded generalized propagator operations. pathos)
- pytables (v3.x recommended. For hdf5 saving/loading of simulations. pytables)
- PaGMO / PyGMO (version 2.4+. Required for the EO submodule. pagmo)
- pycuda (tested with version 2018.1, for GPU-based matrix inversion. pyCUDA, for problems during installation with pip, see solution proposed here)
- scikit-cuda (tested with version 0.5, for GPU-based matrix inversion. scikit-cuda)
- alternatively: cupy (version 7+, tested with version 7.0.0b4, alternative to pycuda for GPU-based matrix inversion. cupy)
(all available via pip)
Installation under linux
Via setup script
The easiest possibility to compile (and install) pyGDM is via thesetup-script, which uses the extended distutils from numpy.
To install pyGDM, run in the source directory:
To install to a user-defined location, use the prefix option:
To only compile without installation, use
Manual compilation
- clone git:
2.a python 2.7: compile fortran parts:
2.b python 3.5+:
- optional, for system-wide usage add to path and pythonpath,e.g. add following lines to file “/home/USER/.profile”, where“path_of_pyGDM_folder” is the pyGDM installation directory:
Installation under windows
For windows, we also recommend Anaconda in which pyGDM can be installed easily via pip. See also the MacOS X instructions, but you can skip all steps for installing the gcc compilers, since the windows version of pyGDM comes as pre-compiled binary package.
Via pip
We provide a 64bit windows binary on the pypi repository (tested on Win7 and Win10). Install via
Compile using the Anaconda distribution (tested with anaconda3)
- get the repo (e.g. download from gitlab)
- install gcc compiler:
- compile fortran parts:
- install:
Installation under Mac OS X
Using the Anaconda distribution
The default compiler on OSX uses a clang which does not support OpenMP. Hence compilation might fail. We therefore suggest using Anaconda (Mac) and install gcc from the conda repository in a virtualenv (Here the example of python2. python3 was not tested on OSX so far):
“anaconda” at the end will copy the whole anaconda distribution to the virtial env. You can omit this option and create a “blank” virtual environment to install only selected packages.
Next activate the virtualenv and install the required software:
Also make sure you have the latest versions of numpy and scipy:
Without Anaconda
Alternatively, you can download the latest version and compile it manually without OpenMP support, which should work with the default OSX compiler:
Authors
Python code
- P. R. Wiecha
- contributions by C. Majorel
Fortran code
- C. Girard
- A. Arbouet
- R. Marty
- P. R. Wiecha
Release historyRelease notifications
1.0.10.1
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size pyGDM2-1.0.10.1-cp35-cp35m-win_amd64.whl (375.1 kB) | File type Wheel | Python version cp35 | Upload date | Hashes |
Filename, size pyGDM2-1.0.10.1-cp36-cp36m-win_amd64.whl (386.1 kB) | File type Wheel | Python version cp36 | Upload date | Hashes |
Filename, size pyGDM2-1.0.10.1-cp37-cp37m-win_amd64.whl (386.8 kB) | File type Wheel | Python version cp37 | Upload date | Hashes |
Filename, size pyGDM2-1.0.10.1.linux-x86_64.tar.gz (450.9 kB) | File type Source | Python version None | Upload date | Hashes |
Filename, size pyGDM2-1.0.10.1-py2.7-linux-x86_64.egg (479.0 kB) | File type Egg | Python version 2.7 | Upload date | Hashes |
Filename, size pyGDM2-1.0.10.1-py3.5-linux-x86_64.egg (487.7 kB) | File type Egg | Python version 3.5 | Upload date | Hashes |
Hashes for pyGDM2-1.0.10.1-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest |
---|---|
SHA256 | 5afdc2411cdf27d522bbc0d910ab00a8567d4c63b253000aa8ed6c528529dc17 |
MD5 | a7812b2124dda3085777ec1401e48222 |
BLAKE2-256 | b668476915705092f4c67cb40a9bf0bdc9fa0a7554c2da3839f4122f5356e133 |
Hashes for pyGDM2-1.0.10.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest |
---|---|
SHA256 | 8d1e8465bc78b0f29b5175180e968e34046e6467aed79d8b17cd5a850f511a69 |
MD5 | f7942352b72d471b7aa9bdfe54133563 |
BLAKE2-256 | 21349adfe74d5ee6be247629a65814b70a6826ededf440ab6c49ab328953151f |
Hashes for pyGDM2-1.0.10.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest |
---|---|
SHA256 | 8938cff2b3518dcfdd367af91482a7ed9a36d19448b2cc2630fa99316a25d5fb |
MD5 | 7282581701aa1671f22fb85f01a50b18 |
BLAKE2-256 | bbec7de182e2375b3c874947546f32900ac3583bf65629f6a30316e49c3a6ea8 |
Hashes for pyGDM2-1.0.10.1.linux-x86_64.tar.gz
Algorithm | Hash digest |
---|---|
SHA256 | 193d1913b5d2db006016f2ea6d9ca3c8ae7a7bbee34f24ca4c3dd2a58d0f3c51 |
MD5 | c8f675d874ed687db9b9d4925687573e |
BLAKE2-256 | c9479cef344a495c676f54dad951707c39739025343d6fd814ddcb1ef2d39b24 |
Hashes for pyGDM2-1.0.10.1-py2.7-linux-x86_64.egg
Algorithm | Hash digest |
---|---|
SHA256 | 10c7a8ece64c4cbc72f0f1b602550a5db18e5b0d2580ff4176b8c12d11e803a4 |
MD5 | a078c56c05d9629aed0abb7ac5542de6 |
BLAKE2-256 | 5be83717fd1ace530ceca0bbd0aab9ab504a5266c5f8453d1b1d02fcd06bc3fc |
Hashes for pyGDM2-1.0.10.1-py3.5-linux-x86_64.egg
Algorithm | Hash digest |
---|---|
SHA256 | c78597be1033443bff604235eecd2f9460e45ff72e73c8d06a9b509d00d1cf13 |
MD5 | b1df98c88546b13377c1da2e75249785 |
BLAKE2-256 | 9818c617f7ee8d7f2532b9933adb3af743293a9d5f5ce135497bbdb0a06dfb4f |