RBniCS / RBniCSx

RBniCSx - reduced order modelling in FEniCSx
GNU Lesser General Public License v3.0
10 stars 4 forks source link

adios4dolfinx #10

Closed niravshah241 closed 11 months ago

niravshah241 commented 11 months ago

Is adios4dolfinx mandatory for rbnicsx? I am getting error while importing rbnicsx.backends: No module named 'adios4dolfinx'

Is there any alternative without adios4dolfinx and with dolfinx 0.8.0 ? Is branch-v.0.7.2 good option?

francesco-ballarin commented 11 months ago

Yes, I have made it mandatory as of 4 days ago, see https://github.com/RBniCS/RBniCSx/commit/d65440d7d8e061bceb3f2e102e4fa2486e4fbbc3 .

When you install with python3 -m pip install --check-build-dependencies --no-build-isolation .[tutorials] it should now automatically install adios4dolfinx, alongside multiphenicsx and ufl4rom.

Note that will effectively require to use RBniCSx with a dolfinx installation that had ADIOS2 enabled. Unfortunately that cannot be easily checked programmaticaly, because the adios2 installation does not have a pypi page (https://pypi.org/project/adios2/ is a mock package). I will not be supporting a switch between the case "the user installation has ADIOS2" and "the user installation does not have ADIOS2", because it's too much work on my end. I waited doing this change until I was confident that most users would have ADIOS2 enabled: this is now the time, because dolfinx provided by docker image and conda are already supporting ADIOS2, and the one provided by debian will be doing so in the next release.

If your local installation is not ADIOS2-ready you can just temporarily revert the commit above and reinstall.

francesco-ballarin commented 11 months ago

You may also consider installing with python3 -m pip install --check-build-dependencies --no-build-isolation .[backends], especially if you are on a cluster. The tutorials backend will pull in all dependencies required to run the tutorials, e.g. jupyter (!), while backends only the minimum amount of the dependencies required to import rbnicsx.backends correctly.

Any reasonable use of RBniCSx must have at least the [backends] extra upon installation. However, on CI I also test a case without dolfinx, and the subset of features outside of rbnicsx.backends must also work in that case.

niravshah241 commented 11 months ago

Thanks @francesco-ballarin for the detailed reply. I reverted to the commit d65440d .