Is MOAB still compatible with PyTAPS?

Issue #53 resolved
Guilherme Caminha created an issue

Hi, I've been trying to build MOAB to use with the PyTAPS interface. I have noticed that the PyTAPS repo haven't been updated in a long time, and algo I keep getting this error when trying to import the iMesh module:

>>> from itaps import iMesh
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: /usr/local/lib/python2.7/site-packages/PyTAPS-1.4-py2.7-linux-x86_64.egg/itaps/iMesh.so: undefined symbol: imesh_getentities_

When I try to run a C++ program using MOAB I can successfully link against the MOAB libraries and run it. So, should I use an old version of MOAB?

Comments (14)

  1. Vijay M

    Currently the support for PyTAPS is stale. We are working on a more Pythonic interface to MOAB without all the inconsistencies and bloat of PyTAPS. This work is currently being submitted as a PR by @pshriwise, and we hope to have that merged to master soon. Please let us know if you have specific requirements or requests for the interfaces.

  2. Guilherme Caminha reporter

    That's excellent. Is he working on a private fork? I'm a new user, so I may not have anything to request, but for sure a more pythonic interface would great.

    Also, how soon do you think it will be available? Like months, weeks...?

  3. Guilherme Caminha reporter

    Looks great. Sure I will try to contribute. Just for curiosity, how will pymoab interoperate with the iGeom interface?

  4. Guilherme Caminha reporter

    Also, will this python interface possibly work with MPI Parallelism? I'm planning to adopt MOAB (i.e. pymoab) + Trilinos (i.e. PyTrilinos) in my research group, so it would be great if it was possible to run our simulations on distributed memory systems.

  5. Vijay M

    Yes our intent is to make PyMOAB to work correctly on distributed systems. However, the first version of the Python interface for MOAB may not expose MPI parallelism yet or be compatible with iGeom interfaces. The next update will certainly depend on MPI4Py and we will verify scalability of the mesh ops with the Python interfaces. We also do plan to create interfaces for CGM and MeshKit along the vein of PyMOAB in the future.

  6. Guilherme Caminha reporter

    Ok, great. MPI4Py is a great interface, and with this anyone should be able to interop with most parallel solvers. I look forward to use the library and help.

    I have cloned the repo here and have tried a few things. I was wondering if, and maybe how, you are planning to check coverage for the tests when using Cython for the interface. I was trying to get coverage info and was unable to get coverage referring to the Cython code.

  7. Patrick Shriwise

    Hi @Estanho! Current PyMOAB developer here... glad to hear you're interested in the interface!

    It's possible that code coverage checks will be done separately for the python interface(s) via a tool like coverage.py. It now has plugins for checking coverage in Cython modules (see here).

    It will require us to use a relatively new version of Cython (> 0.22.0), but I think this is already the case due to how some of the interface designed...

  8. Guilherme Caminha reporter

    Hi @pshriwise, I tried doing this but couldn't figure out. I don't have much experience with Cython. But now that I have gone through the code, maybe there is no need to get coverage info for now, since the Cython code seems to be pretty straightforward as it's mostly wrapping MOAB functionality.

    Regarding the information that PyTAPS is stale, maybe there should be information on the PyTAPS repo, and also on the SIGMA website, and the PyPi website, calling for development for PyMOAB. It was a bit hard for me to find this information.

  9. Patrick Shriwise

    I agree that coverage might not be of concern yet. I think the priority here should be a rich set of unit tests for now. As more MOAB interfaces/classes get added to PyMOAB, coverage reporting will definitely become important.

    I've been mostly focusing on getting the interface fully integrated into MOAB, but yes this should certainly happen. My guess is that this will occur in a public manner with the release of MOAB 5.0 (maybe @vijaysm can confirm that).

  10. Vijay M

    Yes I've updated the website to reflect that PyTAPS is unsupported and will be replaced with interfaces based on Cython. As MOAB 5.0 rolls out, we will add more information about this. Let me know if we need to update anything else.

  11. Guilherme Caminha reporter

    @pshriwise I have been working on a MeshTopoUtil wrapper. Are you working on something similar? If not, I could open a PR for it if there's interest.

  12. Log in to comment