Skip to main content

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


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 details)

Uploaded Source

Built Distributions

pyGDM2-1.0.6-py3.5-linux-x86_64.egg (451.5 kB view details)

Uploaded Egg

pyGDM2-1.0.6-py2.7-linux-x86_64.egg (444.4 kB view details)

Uploaded Egg

pyGDM2-1.0.6-cp37-cp37m-win_amd64.whl (356.9 kB view details)

Uploaded CPython 3.7mWindows x86-64

pyGDM2-1.0.6-cp36-cp36m-win_amd64.whl (368.3 kB view details)

Uploaded CPython 3.6mWindows x86-64

pyGDM2-1.0.6-cp35-cp35m-win_amd64.whl (356.3 kB view details)

Uploaded CPython 3.5mWindows x86-64

pyGDM2-1.0.6-cp27-cp27m-win_amd64.whl (365.4 kB view details)

Uploaded CPython 2.7mWindows x86-64

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

Hashes for pyGDM2-1.0.6.tar.gz
Algorithm Hash digest
SHA256 0cf7450d7e4a3f594a4ec97f9b288f1387236ce52499953921442226439f2b87
MD5 fa1ad75b810e097fddd35aa44210d4cc
BLAKE2b-256 3a0521628940613d9b3bc01b2e4bd4d5f1d1b50390c866bd205751ddb32b2fcc

See more details on using hashes here.

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

Hashes for pyGDM2-1.0.6-py3.5-linux-x86_64.egg
Algorithm Hash digest
SHA256 756b2e8d2825fdcdd100f835de1f0808db0b4f593425fa90c8ef9774300df49d
MD5 04feb3a34f9a8968c2d59b9b82c7456c
BLAKE2b-256 7b83888d594d5189768cfdf2037ee9e6bf24a8f24b6f7e6e33ac4ef97f8bfb71

See more details on using hashes here.

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

Hashes for pyGDM2-1.0.6-py2.7-linux-x86_64.egg
Algorithm Hash digest
SHA256 faf298f7d9a9adb24fe3083683dbc26f7fd87a82e322cecdfdd0ff30a0164421
MD5 6e70f12bdab9ffc995c171ad7a47d258
BLAKE2b-256 1dfe9c4c386a0d35dc9bcc50d231d42e0700a8354c2b264945fcedd30d1b6ffa

See more details on using hashes here.

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

Hashes for pyGDM2-1.0.6-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 0ea8900bd2a6ec7f6d78ce7bad6fe554d30f81817773323b8e1f440f85aee2aa
MD5 fabc4ab89f59766b6846e2692a93a959
BLAKE2b-256 519d5e5b50a0b97f5e7d7d6701f205f69b10a264ce6fd190dbc6d9d1a2b26849

See more details on using hashes here.

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

Hashes for pyGDM2-1.0.6-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 06545549a31809edbb4475eac97167a728ea125fec214c141e1e530f321b15c8
MD5 fbbc9b0402455a65ab81de21d3b76bed
BLAKE2b-256 27938d23436b9006e2acee47dad2ba8d46b7bb9b7621545760c38d7bb892c407

See more details on using hashes here.

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

Hashes for pyGDM2-1.0.6-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 bacb46f62f52900f10e8207f13a4c33abc71d169305782cea8407ffc1ace0b80
MD5 06c5d80843dc18f34e9a8ad6e3fcf154
BLAKE2b-256 56776d8d161487896bb284e7a534969a77ceb79d8e6db674da4eae38b54ea875

See more details on using hashes here.

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

Hashes for pyGDM2-1.0.6-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 2ea7d880b757a20d3bb39d4b6566b1978e3834959b6f05a350570f64cf7622e7
MD5 1e2dc0b64d88b48e99990122df644885
BLAKE2b-256 6361868355b1951b8e2f935dff50be4f4e84263d72c195c3dd16a1df5aaa27bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page