diff options
Diffstat (limited to 'science/py-PyFR')
-rw-r--r-- | science/py-PyFR/Makefile | 46 | ||||
-rw-r--r-- | science/py-PyFR/distinfo | 3 | ||||
-rw-r--r-- | science/py-PyFR/files/patch-pyfr_backends_openmp_compiler.py | 11 | ||||
-rw-r--r-- | science/py-PyFR/pkg-descr | 20 |
4 files changed, 80 insertions, 0 deletions
diff --git a/science/py-PyFR/Makefile b/science/py-PyFR/Makefile new file mode 100644 index 000000000000..f82d0d349db1 --- /dev/null +++ b/science/py-PyFR/Makefile @@ -0,0 +1,46 @@ +# $FreeBSD$ + +PORTNAME= PyFR +DISTVERSION= 1.8.0 +PORTREVISION= 5 +CATEGORIES= science python +MASTER_SITES= http://www.pyfr.org/download/ +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Framework for solving advection-diffusion type problems + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}appdirs>=1.4.0:devel/py-appdirs@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}gimmik>=2.0:math/py-gimmik@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}h5py>=2.6:science/py-h5py@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}mako>=1.0.0:textproc/py-mako@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}mpi4py>=2.0:net/py-mpi4py@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytools>=2016.2.1:devel/py-pytools@${PY_FLAVOR} \ + ${NUMPY} + +USES= python:3.3+ shebangfix zip +SHEBANG_FILES= setup.py pyfr/__main__.py +USE_PYTHON= distutils concurrent autoplist +NO_ARCH= yes + +OPTIONS_MULTI= PARALLEL +OPTIONS_MULTI_PARALLEL= OPENCL OPENMP # CUDA isn't supported on FreeBSD +OPTIONS_DEFAULT= ${OPTIONS_MULTI_PARALLEL} +PARALLEL_DESC= Parallelization backends to install + +OPENCL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyopencl>0:devel/py-pyopencl@${PY_FLAVOR} \ + clblas>0:math/clblas +OPENMP_RUN_DEPENDS= openmp>0:devel/openmp \ + libxsmm>0:math/libxsmm + +pre-build: # patch in pre-build to make the patch less error-prone (it has %%LOCALBASE%%) + @${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/pyfr/backends/openmp/compiler.py + +post-install: # workaround: https://groups.google.com/forum/#!topic/pyfrmailinglist/RNi_LcizGBo + @${RM} ${STAGEDIR}${PREFIX}/__main__.py + @${REINPLACE_CMD} 's|^${PREFIX}/__main__\.py||' ${_PYTHONPKGLIST} + +.include <bsd.port.mk> diff --git a/science/py-PyFR/distinfo b/science/py-PyFR/distinfo new file mode 100644 index 000000000000..98242d6a65e7 --- /dev/null +++ b/science/py-PyFR/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1539760102 +SHA256 (PyFR-1.8.0.zip) = 6b2b71886cea1bade16b3c8cd5bc681b2a9a22b7388a6aa4e69c934be69f3c23 +SIZE (PyFR-1.8.0.zip) = 829366 diff --git a/science/py-PyFR/files/patch-pyfr_backends_openmp_compiler.py b/science/py-PyFR/files/patch-pyfr_backends_openmp_compiler.py new file mode 100644 index 000000000000..f77a4b146f77 --- /dev/null +++ b/science/py-PyFR/files/patch-pyfr_backends_openmp_compiler.py @@ -0,0 +1,11 @@ +--- pyfr/backends/openmp/compiler.py.orig 2018-03-19 21:34:24 UTC ++++ pyfr/backends/openmp/compiler.py +@@ -76,6 +76,8 @@ class SourceModule(object): + '-Ofast', # Optimise, incl. -ffast-math + '-march=native', # Use CPU-specific instructions + '-fopenmp', # Enable OpenMP support ++ '-I%%LOCALBASE%%/include', # Add the include directory ++ '-L%%LOCALBASE%%/lib', # Add the library directory + '-fPIC', # Generate position-independent code + '-o', libname, srcname, # Library and source file names + '-lm' # Link against libm diff --git a/science/py-PyFR/pkg-descr b/science/py-PyFR/pkg-descr new file mode 100644 index 000000000000..e851ff3eee74 --- /dev/null +++ b/science/py-PyFR/pkg-descr @@ -0,0 +1,20 @@ +PyFR is an open-source Python based framework for solving advection-diffusion +type problems on streaming architectures using the Flux Reconstruction approach +of Huynh. The framework is designed to solve a range of governing systems on +mixed unstructured grids containing various element types. It is also designed +to target a range of hardware platforms via use of an in-built domain specific +language derived from the Mako templating engine. The current release has the +following capabilities: +* Governing Equations - Euler, Navier Stokes +* Dimensionality - 2D, 3D +* Element Types - Triangles, Quadrilaterals, Hexahedra, Prisms, Tetrahedra, + Pyramids +* Platforms - CPU Clusters, Nvidia GPU Clusters, AMD GPU Clusters, Intel Xeon + Phi Clusters +* Spatial Discretisation - High-Order Flux Reconstruction +* Temporal Discretisation - Explicit and Implicit (via Dual Time-Stepping) +* Precision - Single, Double +* Mesh Files Imported - Gmsh (.msh), CGNS (.cgns) +* Solution Files Exported - Unstructured VTK (.vtu, .pvtu) + +WWW: http://www.pyfr.org/ |