Skip to content

incompatibility with PETSc in complex mode #17

@francesco-ballarin

Description

@francesco-ballarin

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions