Skip to main content

Python frontend for Gmsh

Project description

PyGmsh
======

|Build Status| |Code Health| |Coverage Status| |Documentation Status|
|PyPi Version| |PyPi Downloads|

`Gmsh <http://geuz.org/gmsh/>`__ is powerful mesh generation tool and
its scripting language is notoriously hard to write.

The goal PyGmsh is to combine the power of Gmsh with the versatility of
Python and to provide useful abstractions from the Gmsh scripting
language so you can create create complex geometries even more easily.

.. raw:: html

<p align="center">

.. raw:: html

</p>

To create the above mesh, simply do

.. code:: python

import pygmsh as pg
import numpy as np

# Draw a cross.
poly = pg.add_polygon([
[0.0, 0.5, 0.0],
[-0.1, 0.1, 0.0],
[-0.5, 0.0, 0.0],
[-0.1, -0.1, 0.0],
[0.0, -0.5, 0.0],
[0.1, -0.1, 0.0],
[0.5, 0.0, 0.0],
[0.1, 0.1, 0.0]
],
lcar=0.05
)

axis = [0, 0, 1]

pg.Extrude(
'Surface{%s}' % poly,
translation_axis=axis,
rotation_axis=axis,
point_on_axis=[0, 0, 0],
angle=2.0 / 6.0 * np.pi
)

print(pg.get_code())

and write the output to a file, e.g., ``screw.geo``. Then use Gmsh to
generate the mesh

.. code:: bash

$ gmsh -3 screw.geo

You will find this example in the directory ``test/examples/`` along
with other small examples.

Installation
~~~~~~~~~~~~

Python Package Index
^^^^^^^^^^^^^^^^^^^^

PyGmsh is `available from the Python Package
Index <https://pypi.python.org/pypi/pygmsh/>`__, so simply type

::

pip install pygmsh

to install or

::

pip install pygmsh -U

to upgrade.

Manual installation
^^^^^^^^^^^^^^^^^^^

Download PyGmsh from `PyPi <https://pypi.python.org/pypi/pygmsh/>`__ or
`GitHub <https://github.com/nschloe/pygmsh>`__ and install it with

::

python setup.py install

Requirements
~~~~~~~~~~~~

PyGmsh depends on

- `NumPy <http://www.numpy.org/>`__

and, obviously, `Gmsh <http://geuz.org/gmsh/>`__.

Usage
~~~~~

Just

::

import pygmsh as pg

and make use of all the goodies the module provides. The
`documentation <http://pygmsh.readthedocs.org/>`__ and the examples
under ``test/examples/`` might inspire you.

Testing
~~~~~~~

To run the PyGmsh unit tests, check out this repository and type

::

nosetests

or

::

nose2 -s test

Distribution
~~~~~~~~~~~~

To create a new release

1. bump the ``__version__`` number,

2. create a Git tag,

::

$ git tag -a v0.3.1
$ git push --tags

and

3. upload to PyPi:

::

$ make upload

License
~~~~~~~

PyGmsh is published under the `MIT
license <https://en.wikipedia.org/wiki/MIT_License>`__.

.. |Build Status| image:: https://travis-ci.org/nschloe/pygmsh.svg
:target: https://travis-ci.org/nschloe/pygmsh
.. |Code Health| image:: https://landscape.io/github/nschloe/pygmsh/master/landscape.png
:target: https://landscape.io/github/nschloe/pygmsh/master
.. |Coverage Status| image:: https://coveralls.io/repos/nschloe/pygmsh/badge.svg?branch=master&service=github
:target: https://coveralls.io/github/nschloe/pygmsh?branch=master
.. |Documentation Status| image:: https://readthedocs.org/projects/pygmsh/badge/?version=latest
:target: http://pygmsh.readthedocs.org/en/latest/?badge=latest
.. |PyPi Version| image:: https://img.shields.io/pypi/v/pygmsh.svg
:target: https://pypi.python.org/pypi/pygmsh
.. |PyPi Downloads| image:: https://img.shields.io/pypi/dm/pygmsh.svg
:target: https://pypi.python.org/pypi/pygmsh

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

pygmsh-0.2.0.tar.gz (7.7 kB view hashes)

Uploaded Source

Supported by

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