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