A python full-field electrodynamical solver, based on the Green dyadic method (volume integral technique in frequency domain).
Project description
Overview / Installation
***********************************
pyGDM2 is available on `pypi <https://pypi.python.org/pypi/pygdm2/>`_ and `gitlab <https://gitlab.com/wiechapeter/pyGDM2>`_.
Detailed documentation with many examples is avaiable at the `pyGDM2 documentation website <https://wiechapeter.gitlab.io/pyGDM2-doc/>`_. See also the `documentation paper on arXiv (1802.04071) <https://arxiv.org/abs/1802.04071>`_
Requirements
================================
Python
------------------
- **python** (2.7 or 3.5+, `python <https://www.python.org/>`_)
- **numpy** (`numpy <http://www.numpy.org/>`_)
- **python headers** (under ubuntu, install the package *python-dev* or *python-devel*)
Fortran
------------------
- *fortran* compiler (tested with **gfortran**. `gcc <https://gcc.gnu.org/fortran/>`_)
- **openmp** (`openmp <http://www.openmp.org/>`_)
- **f2py** (comes with **numpy**. `link <http://www.numpy.org/>`_)
Optional Python packages
-------------------------------------
- **scipy** >= v0.17.0, lower versions supported with restrictions (*Strongly recommended*. Used for standard solver LU decomposition and several tools. `scipy <https://www.scipy.org/>`_)
- **matplotlib** (*Strongly recommended*. For all 2D visualization tools. `matplotlib <https://matplotlib.org/>`_)
- **mpi4py** (for MPI parallelized calculation of spectra. `mpi4py <http://mpi4py.readthedocs.io/en/stable/>`_)
- **mayavi** (for all 3D visualization. `mayavi <http://docs.enthought.com/mayavi/mayavi/mlab.html>`_)
- **PIL** (image processing. `PIL <https://pypi.python.org/pypi/PIL>`_)
- **pathos** (for multi-threaded generalized propagator operations. `pathos <https://pypi.org/project/pathos/>`_)
- **pytables** (v3.x recommended. For hdf5 saving/loading of simulations. `pytables <https://www.pytables.org/>`_)
- **PaGMO / PyGMO** (version 2.4+. *Required* for the **EO** submodule. `pagmo <https://esa.github.io/pagmo2/>`_)
(all available via `pip <https://pypi.python.org/pypi/pip>`_)
Installation under linux
=============================================
Via pip
-------------------------------
Install from pypi repository via
.. code-block:: bash
$ pip install pygdm2
Via setup script
-------------------------------
The easiest possibility to compile (and install) pyGDM is via the
setup-script, which uses the extended *distutils* from *numpy*.
To install pyGDM, run in the source directory:
.. code-block:: bash
$ python setup.py install
To install to a user-defined location, use the *prefix* option:
.. code-block:: bash
$ python setup.py install --prefix=/some/specific/location
To only compile without installation, use
.. code-block:: bash
$ python setup.py build
Manual compilation
-------------------------------------------------------------
1. clone git:
.. code-block:: bash
$ git clone https://gitlab.com/wiechapeter/pyGDM2.git
2. compile fortran parts:
.. code-block:: bash
$ cd fortranBase
$ make
3. *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:
.. code-block:: bash
PATH="path_of_pyGDM_folder:$PATH"
export PATH
PYTHONPATH="path_of_pyGDM_folder:$PYTHONPATH"
export PYTHONPATH
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 <https://www.anaconda.com/download/#macos>`_ and install gcc from the conda repository in a virtualenv (Here the example of python2. python3 was not tested on OSX so far):
.. code-block:: bash
$ conda create -n python2 python=2.7 anaconda
"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:
.. code-block:: bash
$ source activate python2
$ xcode-select --install
$ conda install pip
$ conda install gcc
$ pip install pygdm2
Also make sure you have the latest versions of numpy and scipy:
.. code-block:: bash
$ pip install numpy scipy --upgrade
Without Anaconda
-------------------------------------------------------------
Alternatively, you can download the latest version and compile it manually without OpenMP support, which should work with the default OSX compiler:
.. code-block:: bash
$ python setup.py install --no-openmp
Installation under windows
=============================================
For windows, we also recommend `Anaconda <https://www.anaconda.com/download/#windows>`_ 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
-------------------------------
There is a binary for 64bit windows on the pypi repository (tested on Win7 and Win10). Install via
.. code-block:: bash
$ pip install pygdm2
Compile using the Anaconda distribution (tested with anaconda3)
------------------------------------------------------------------------------------------
1. get the repo (e.g. download from gitlab)
2. install gcc compiler
.. code-block:: bash
$ conda update conda
$ conda install m2w64-toolchain libpython
3. compile fortran parts:
.. code-block:: bash
$ python setupy.py build
4. install:
.. code-block:: bash
$ python setupy.py install
Authors
=========================
Python code
------------------------
- P\. R. Wiecha
Fortran code
-------------------------
- C\. Girard
- A\. Arbouet
- R\. Marty
- P\. R. Wiecha
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyGDM2-1.0.6.tar.gz.
File metadata
- Download URL: pyGDM2-1.0.6.tar.gz
- Upload date:
- Size: 437.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cf7450d7e4a3f594a4ec97f9b288f1387236ce52499953921442226439f2b87
|
|
| MD5 |
fa1ad75b810e097fddd35aa44210d4cc
|
|
| BLAKE2b-256 |
3a0521628940613d9b3bc01b2e4bd4d5f1d1b50390c866bd205751ddb32b2fcc
|
File details
Details for the file pyGDM2-1.0.6-py3.5-linux-x86_64.egg.
File metadata
- Download URL: pyGDM2-1.0.6-py3.5-linux-x86_64.egg
- Upload date:
- Size: 451.5 kB
- Tags: Egg
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
756b2e8d2825fdcdd100f835de1f0808db0b4f593425fa90c8ef9774300df49d
|
|
| MD5 |
04feb3a34f9a8968c2d59b9b82c7456c
|
|
| BLAKE2b-256 |
7b83888d594d5189768cfdf2037ee9e6bf24a8f24b6f7e6e33ac4ef97f8bfb71
|
File details
Details for the file pyGDM2-1.0.6-py2.7-linux-x86_64.egg.
File metadata
- Download URL: pyGDM2-1.0.6-py2.7-linux-x86_64.egg
- Upload date:
- Size: 444.4 kB
- Tags: Egg
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
faf298f7d9a9adb24fe3083683dbc26f7fd87a82e322cecdfdd0ff30a0164421
|
|
| MD5 |
6e70f12bdab9ffc995c171ad7a47d258
|
|
| BLAKE2b-256 |
1dfe9c4c386a0d35dc9bcc50d231d42e0700a8354c2b264945fcedd30d1b6ffa
|
File details
Details for the file pyGDM2-1.0.6-cp37-cp37m-win_amd64.whl.
File metadata
- Download URL: pyGDM2-1.0.6-cp37-cp37m-win_amd64.whl
- Upload date:
- Size: 356.9 kB
- Tags: CPython 3.7m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ea8900bd2a6ec7f6d78ce7bad6fe554d30f81817773323b8e1f440f85aee2aa
|
|
| MD5 |
fabc4ab89f59766b6846e2692a93a959
|
|
| BLAKE2b-256 |
519d5e5b50a0b97f5e7d7d6701f205f69b10a264ce6fd190dbc6d9d1a2b26849
|
File details
Details for the file pyGDM2-1.0.6-cp36-cp36m-win_amd64.whl.
File metadata
- Download URL: pyGDM2-1.0.6-cp36-cp36m-win_amd64.whl
- Upload date:
- Size: 368.3 kB
- Tags: CPython 3.6m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06545549a31809edbb4475eac97167a728ea125fec214c141e1e530f321b15c8
|
|
| MD5 |
fbbc9b0402455a65ab81de21d3b76bed
|
|
| BLAKE2b-256 |
27938d23436b9006e2acee47dad2ba8d46b7bb9b7621545760c38d7bb892c407
|
File details
Details for the file pyGDM2-1.0.6-cp35-cp35m-win_amd64.whl.
File metadata
- Download URL: pyGDM2-1.0.6-cp35-cp35m-win_amd64.whl
- Upload date:
- Size: 356.3 kB
- Tags: CPython 3.5m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.5.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bacb46f62f52900f10e8207f13a4c33abc71d169305782cea8407ffc1ace0b80
|
|
| MD5 |
06c5d80843dc18f34e9a8ad6e3fcf154
|
|
| BLAKE2b-256 |
56776d8d161487896bb284e7a534969a77ceb79d8e6db674da4eae38b54ea875
|
File details
Details for the file pyGDM2-1.0.6-cp27-cp27m-win_amd64.whl.
File metadata
- Download URL: pyGDM2-1.0.6-cp27-cp27m-win_amd64.whl
- Upload date:
- Size: 365.4 kB
- Tags: CPython 2.7m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ea7d880b757a20d3bb39d4b6566b1978e3834959b6f05a350570f64cf7622e7
|
|
| MD5 |
1e2dc0b64d88b48e99990122df644885
|
|
| BLAKE2b-256 |
6361868355b1951b8e2f935dff50be4f4e84263d72c195c3dd16a1df5aaa27bc
|