Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

incompatibility with PETSc in complex mode #17

Open
francesco-ballarin opened this issue Jan 12, 2024 · 0 comments
Open

incompatibility with PETSc in complex mode #17

francesco-ballarin opened this issue Jan 12, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@francesco-ballarin
Copy link
Contributor

I tried to run the testsuite with a complex PETSc installation, and got

FAILED test_eps.py::test_eps_ghep_eigfuncs - ZeroDivisionError: float division by zero
FAILED test_ksp.py::test_ksp_preonly_lu - assert 0.5333333333319396 < 0.0001
FAILED test_ksp.py::test_ksp_cg_gamg - assert 0.5333333333319396 < 0.0001
FAILED test_pc.py::test_pc_gamg - assert 0.5333333333319396 < 0.0001
FAILED test_pc.py::test_pc_hiptmaier_xu_sor - netgen.libngpy._meshing.NgException: BaseVector::operator/=: division by zero
FAILED test_pc.py::test_pc_hiptmaier_xu_bjacobi - netgen.libngpy._meshing.NgException: BaseVector::operator/=: division by zero
FAILED test_snes.py::test_snes_toy_newtonls - assert -6 in [4, 3, 2]

plus one of the SNES tests getting stuck at

7822 SNES Function norm 8.626434292221e-01 
7823 SNES Function norm 8.626434292221e-01 
7824 SNES Function norm 8.626434292221e-01 
7825 SNES Function norm 8.626434292221e-01 
7826 SNES Function norm 8.626434292221e-01 
7827 SNES Function norm 8.626434292221e-01 
7828 SNES Function norm 8.626434292221e-01 
7829 SNES Function norm 8.626434292221e-01 
7830 SNES Function norm 8.626434292221e-01 
7831 SNES Function norm 8.626434292221e-01 
7832 SNES Function norm 8.626434292221e-01 
7833 SNES Function norm 8.626434292221e-01 
7834 SNES Function norm 8.626434292221e-01 

and forcing me to interrupt the test session.

I do realize that I may sound like a fool trying to use a complex PETSc since (to my limited understanding) ngsolve only uses real numbers. However, I am doing that because ngsPETSc is also employed as a dependency of other libraries (firedrake and FEniCSx), which may legitimately employ PETSc in complex mode.

Possible course of actions:

  1. support complex PETSc, or
  2. clarify which parts of ngsPETSc are supposed to work with complex PETSc (I guess, all parts interfacing firedrake and FEniCSx), and which parts are not supposed to work (I guess, those interfacing ngsolve).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants