Skip to content

ULMAT/UGLMAT not working for indefinite matrices with latest oneAPI 2025 MKL #13784

@marcosvanella

Description

@marcosvanella

In spark load the latest compiler, mpi and mkl modules, compile the impi_intel_linux_db target and run this case:

&HEAD CHID='test_indefinite', TITLE='Test ULMAT/UGLMAT on indefinite Poisson problem.' /
# Mesh:
&MESH IJK=9,8,8, XB=0.0,9.0,-4.0,4.0,0.0,8.0 /
# Simulation Paremeters:
&TIME T_END=.02, DT=0.01/
&MISC SIMULATION_MODE='DNS', STRATIFICATION=.FALSE., NOISE_VELOCITY=0.5 /
&RADI RADIATION=.FALSE. /
&PRES SOLVER='ULMAT', CHECK_POISSON=T  /

# OBST just to trigger PARDISO solve with ULMAT:
&OBST XB=8.,9.,-4.,4.,0.,8. /
# Boundaries:
&VENT MB='XMIN', SURF_ID='MIRROR' /
&VENT MB='XMAX', SURF_ID='MIRROR' /
&VENT MB='YMIN', SURF_ID='MIRROR' /
&VENT MB='YMAX', SURF_ID='MIRROR' /
&VENT MB='ZMIN', SURF_ID='MIRROR' /
&VENT MB='ZMAX', SURF_ID='MIRROR' / 
# Output:
&SLCF PBY=0., QUANTITY='VELOCITY',      VECTOR=.TRUE.        /
&SLCF PBY=0., QUANTITY='H' /
&TAIL /

The Poisson matrix for this problem is symmetric indefinite. Both with ULMAT and UGLMAT we are getting H=0 as solution regardless of what the Poisson RHS is.
Screenshot 2024-11-20 at 3 32 03 PM

Now unload mkl/latest and load mkl/2024.2, recompile the impi_intel_linux_db target and run the case. The solution for H is correct.
Screenshot 2024-11-20 at 3 36 45 PM

Interfaces to PARDISO or SPARSE_CLUSTER_SOLVER have not changed, and VERBOSE metrics for matrix factorization are identical.
I opened a thread in the Intel MKL forum asking about any parameter changes that might be related to this (https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Change-in-behavior-of-Pardiso-and-Sparse-Cluster-Solver-for/m-p/1644570#M36659).

Next I'll setup a standalone test of the solver.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions