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
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
pyGDM2-1.0.6.tar.gz
(437.6 kB
view hashes)
Built Distributions
pyGDM2-1.0.6-py3.5-linux-x86_64.egg
(451.5 kB
view hashes)
pyGDM2-1.0.6-py2.7-linux-x86_64.egg
(444.4 kB
view hashes)
pyGDM2-1.0.6-cp37-cp37m-win_amd64.whl
(356.9 kB
view hashes)
pyGDM2-1.0.6-cp36-cp36m-win_amd64.whl
(368.3 kB
view hashes)
pyGDM2-1.0.6-cp35-cp35m-win_amd64.whl
(356.3 kB
view hashes)
pyGDM2-1.0.6-cp27-cp27m-win_amd64.whl
(365.4 kB
view hashes)
Close
Hashes for pyGDM2-1.0.6-py3.5-linux-x86_64.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 756b2e8d2825fdcdd100f835de1f0808db0b4f593425fa90c8ef9774300df49d |
|
MD5 | 04feb3a34f9a8968c2d59b9b82c7456c |
|
BLAKE2b-256 | 7b83888d594d5189768cfdf2037ee9e6bf24a8f24b6f7e6e33ac4ef97f8bfb71 |
Close
Hashes for pyGDM2-1.0.6-py2.7-linux-x86_64.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | faf298f7d9a9adb24fe3083683dbc26f7fd87a82e322cecdfdd0ff30a0164421 |
|
MD5 | 6e70f12bdab9ffc995c171ad7a47d258 |
|
BLAKE2b-256 | 1dfe9c4c386a0d35dc9bcc50d231d42e0700a8354c2b264945fcedd30d1b6ffa |
Close
Hashes for pyGDM2-1.0.6-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ea8900bd2a6ec7f6d78ce7bad6fe554d30f81817773323b8e1f440f85aee2aa |
|
MD5 | fabc4ab89f59766b6846e2692a93a959 |
|
BLAKE2b-256 | 519d5e5b50a0b97f5e7d7d6701f205f69b10a264ce6fd190dbc6d9d1a2b26849 |
Close
Hashes for pyGDM2-1.0.6-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06545549a31809edbb4475eac97167a728ea125fec214c141e1e530f321b15c8 |
|
MD5 | fbbc9b0402455a65ab81de21d3b76bed |
|
BLAKE2b-256 | 27938d23436b9006e2acee47dad2ba8d46b7bb9b7621545760c38d7bb892c407 |
Close
Hashes for pyGDM2-1.0.6-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bacb46f62f52900f10e8207f13a4c33abc71d169305782cea8407ffc1ace0b80 |
|
MD5 | 06c5d80843dc18f34e9a8ad6e3fcf154 |
|
BLAKE2b-256 | 56776d8d161487896bb284e7a534969a77ceb79d8e6db674da4eae38b54ea875 |
Close
Hashes for pyGDM2-1.0.6-cp27-cp27m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ea7d880b757a20d3bb39d4b6566b1978e3834959b6f05a350570f64cf7622e7 |
|
MD5 | 1e2dc0b64d88b48e99990122df644885 |
|
BLAKE2b-256 | 6361868355b1951b8e2f935dff50be4f4e84263d72c195c3dd16a1df5aaa27bc |