deepboltzer / py4est

Python wrappers for p4est

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

py4est wraps the p4est functionality for static and dynamic AMR in Python.

Currently some important C structs are wrapped with ctypes.
The code relies on the following assumptions about p4est_base.h.
typedef int32_t     p4est_qcoord_t;
typedef int32_t     p4est_topidx_t;
typedef int32_t     p4est_locidx_t;
typedef int64_t     p4est_gloidx_t;
Their python counterparts are defined at the beginning of py4est.py
and they need to be changed whenever the p4est typedefs change.

The p4est core algorithms are documented in
Carsten Burstedde, Lucas C. Wilcox, and Omar Ghattas:
"p4est: Scalable Algorithms for Parallel Adaptive Mesh Refinement on Forests of
Octrees,"
SIAM Journal on Scientific Computing 33 No. 3 (2011), pages 1103-1133.

The AMR pipeline and the interaction between the mesh and the fields that is
behind the conventions in the py4est module are documented in
Carsten Burstedde, Omar Ghattas, Georg Stadler, Tiankai Tu, and Lucas C.
Wilcox:
"Towards Adaptive Mesh PDE Simulations on Petascale Computers,"
Proceedings of Teragrid '08.

If this library turns out useful, we would be grateful for these citations.

About

Python wrappers for p4est

License:GNU General Public License v2.0