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, `python <https://www.python.org/>`_)
- **numpy** (`numpy <http://www.numpy.org/>`_)
- **python 2 headers** (under linux, 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:

.. 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








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.5.tar.gz (521.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyGDM2-1.0.5-py2.7-linux-x86_64.egg (441.6 kB view details)

Uploaded Egg

pyGDM2-1.0.5-cp27-cp27m-win_amd64.whl (475.8 kB view details)

Uploaded CPython 2.7mWindows x86-64

File details

Details for the file pyGDM2-1.0.5.tar.gz.

File metadata

  • Download URL: pyGDM2-1.0.5.tar.gz
  • Upload date:
  • Size: 521.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyGDM2-1.0.5.tar.gz
Algorithm Hash digest
SHA256 7e5934c05f54f26bae395c300cd1ca04f3a553dc0c3c30f389c6b30d02d5ab71
MD5 307f2c786bfb95413580457d58d30071
BLAKE2b-256 06e99d2aa3707cd8ae836f0c50c2324000fec5483aa1a345c06fd017733efa6d

See more details on using hashes here.

File details

Details for the file pyGDM2-1.0.5-py2.7-linux-x86_64.egg.

File metadata

File hashes

Hashes for pyGDM2-1.0.5-py2.7-linux-x86_64.egg
Algorithm Hash digest
SHA256 ad0106bfda10d56d9e231a034f286bb550ff82cd2fbdb5ecd6bdebaea977d594
MD5 9c4726d6d3c53fe4053c57f0e0a11181
BLAKE2b-256 0eb91c812e5fb54d2c7dbbd18295929173b71e54ad01de4932eecc2fbd0341cf

See more details on using hashes here.

File details

Details for the file pyGDM2-1.0.5-cp27-cp27m-win_amd64.whl.

File metadata

File hashes

Hashes for pyGDM2-1.0.5-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 4600d3d6f18fd28a725ac01dfb60c2f312a7194dd42e03e37b6373e9adc1f0c4
MD5 a79685996008038a621f82866bcb915a
BLAKE2b-256 35657144b953805d5b568aeace72648bf960c613e8f816ab086a6710da7231bc

See more details on using hashes here.

Supported by

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