Comments (10)
Closing this issue with this ScreenShot ;D
Additionally, this repo is now configured to test a release is using Github action.
from pymfem.
Thank you for your inputs. I am putting together a new setup script, and I am testing it on TestPyPI.
https://test.pypi.org/project/mfem/
This is not the official PyPI. It is a site meant for testing a PyPI package.
I am still testing this. I am going to do at least following test before putting it to PyPI
- build on MacOS
- check parallel build
- add --cuda option (I need this for myself ;D)
I also cleaned up README.md so that it looks nicer on PyPI and GitHub. Please give me your
feedback. This work in a brach (https://github.com/mfem/PyMFEM/tree/pip_install_dev)
Note version number is screwed because PyPI does not allow to overwrite he package which was
already uploaded. It will be changed to 4.2.0rc1 when this is uploaded to PyPI.
from pymfem.
I think it makes sense for pip install mfem
to install the minimal parallel version of MFEM -- this requires c++ compiler, MPI, METIS and HYPRE. If users want to enable more external libraries in MFEM, things will be tricky. They can build the extended version of MFEM themselves and point PyMFEM to that build with an environment variable. However, I don't know if PyMFEM can update itself and create additional wrappers for the new classes and functions provided by MFEM for the additional external libraries. Maybe these can be separate packages, e.g. one will need to install pip install mfem-petsc
.
from pymfem.
@v-dobrev. Yes. Just to be clear, I am thinking to create the following command like options.
python setup.py # install mfem and PyMFEM in serial
python setup.py --with-parallel # install mfem/metis/hypre and PyMFEM in both serial and parallel (require mpi4py)
python setup.py --mfem-prefix = # use /include/mfem/config/config.hpp and other headers
link with /lib/libmfem.so
Of course, the third option assumes all the libraries are installed as .so so that Python can load it.
Also, in the future, adding a .so checker by calling cmake from setup.py wouldn't be too complicated especially
there are CMAKE FindXXXs in https://github.com/mfem/mfem/tree/master/config/cmake/modules.
from pymfem.
from pymfem.
@jcwright77 Thank for supporting the plan. Yes, CMAKE in MFEM distribution will be used to install
mfem.
From user's perspective, however, installing the wrapper without installing mfem ready to use doesn't
make much sense. The idea, here, is to minimize what a new user needs to do. For example, when
he/she installs ubuntu to a new PC box, and wants to try mfem with Python w/o before doing anything
else ;D
I thought about the second approach too, but it requires the wrapper to be ready when MFEM
releases C++, which is unlikely at this point. But there may be a good way to take this route.
@tzanio, what do you think?
By the way, "pip install wxpython" installs wxwidgets, "pip install gmsh" install gmsh itself, and there is
even "pip installl cmake".
from pymfem.
from pymfem.
@v-dobrev Thank you for your input. I think we will add mpi4py as a dependency when installing the parallel version.
We can then ask mpi4py what mpi compiler is used. Installing METIS and HYPRE from setup.py is certainly possible.
Regarding other dependencies, ]I think we can write setup.py to run SWIG to generate a wrapper code when extra flat
like --with-mumps is on. Then, in the script to generate wrapper code (SWIG interface file, or so-called i-file), we can load config.hpp and use #ifdef-#endif.
In fact, PUMI extension is already using this feature. We can do the same for other libraries.
from pymfem.
So if you first install pip install mfem
and later decide to build your own MFEM version with more external libraries, then you just need to re-install the mfem
python package (pointing it to the new MFEM build with an environment variable). Is that what you're thinking?
from pymfem.
For completeness, the link to the PyPI page is: https://pypi.org/project/mfem.
from pymfem.
Related Issues (20)
- how to dereference swig double* returned by mfem.Vector().GetData() ? HOT 2
- VectorPyCoefficent invalid size causing crash HOT 5
- Power9 installation Failure HOT 6
- Up-to-date installation for parallel version? HOT 7
- Discrepancy in error calculation for identical meshes and solutions
- Module conflict with c++ mfem in `pyMFEM==4.5.2.1` HOT 2
- `FindPointsGSLIB::GetCode()` does not return `mfem::Array<unsigned int>` HOT 1
- Installation failure with `--with-parallel` and `--with-gslib` on v.4.5.2.1 HOT 4
- How to implement LinearFormIntegrator HOT 1
- MFEM4.6 support HOT 1
- vtk output for solutions HOT 14
- First element read by GF is 0 not the value in the file HOT 4
- can't build with external mfem HOT 14
- GridFunction, ProjectCoefficient and GetValue HOT 5
- build with external mfem still broken HOT 5
- build with external openblas HOT 3
- Modify an existing mfem.Mesh HOT 2
- Install fails on MacOS: `chrpath` not found HOT 5
- h derefinement fails after p adaption HOT 2
- Performance issues w/ mesh attribute retrieval HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pymfem.