-
Notifications
You must be signed in to change notification settings - Fork 0
piScope/PyMFEM_extension_sample
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
# # PyMFEM extension sample # This example is written for parallel (MPI) version of PyMFEM. You need to have python2.7 with mpi4py. # # How to build this sample # 1) prepare Makefile edit Makefile. You need to set compiler (mpicxx), location of include/lib of various libraries. 2) build make extension # build/install the sample external library make cxx # generate a wrapper code to wrap the sample library make so # compile a wrapper code make install # install Alternatively, you can pass these parameters from arguments as follows make <build command> PREFIX=~/sandbox \ MFEM_LNK_DIR=~/sandbox/mfem-git/par/lib \ MFEM_INC_DIR=~/sandbox/mfem-git/par/include \ CC=mpicc CXX=mpicxx \ HYPRE_INC_DIR=~/sandbox/include \ METIS_INC_DIR=~/sandbox/include where <build command> is extension, cxx, so, and install # # How to use this sample # 1) Build Files This build process of sample extension is done by following files. Makefile # Entry point of build process. Enviromental variables are set here setup.py # python script to build python extension wrapper and install it ext/CMakeLists.txt # CMake file to build a sample library mfem_ext_sample/Makefile # called from top-level Makefile # # test result # Python 2.7.15 (default, May 2 2018, 00:53:27) Type "copyright", "credits" or "license" for more information. IPython 5.4.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]: import mfem_ext_sample.sample_a In [2]: dir(mfem_ext_sample.sample_a) Out[2]: ['__builtin__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_newclass', '_object', '_sample_a', '_swig_getattr', '_swig_property', '_swig_repr', '_swig_setattr', '_swig_setattr_nondynamic', 'sample_PyMFEM_ext', 'sample_PyMFEM_ext_swigregister'] In [3]: refiner = mfem_ext_sample.sample_a.sample_PyMFEM_ext() Conctructor called In [4]: refiner.get_refine() Out[4]: 1 In [5]: import mfem.par In [8]: mesh = mfem.par.Mesh('test.msh') In [9]: mesh.GetNV() Out[9]: 14 In [10]: refiner.call_refine(mesh) In [11]: mesh.GetNV() Out[11]: 63
About
Sample extension to expand PyMFEM
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published