Skip to content

BUG: DMD: FOAM_SETNAN=true causes implementation-dependent FATALs

Summary

FOAM_SETNAN=false (default) masks various vulnerabilities in DMD.

Steps to reproduce

  • For bash, set export FOAM_SETNAN=true.
  • Run $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/cylinder2D
  • Will throw the following (or similar) FATAL (implementation/environment dependent):
Expanding orthonormal basis for field: U
	Compressing orthonormal basis for field: U
[0] 
[0] 
[0] --> FOAM FATAL ERROR: (openfoam-2106)
[0] List size (1) incompatible with Matrix diagonal
[0] 
[0]     From void Foam::Matrix<Foam::SquareMatrix<double>, double>::diag(const UList<Type> &) [Form = Foam::SquareMatrix<double>, Type = double]

Relevant logs and/or images

  • Compiled the functionObjects/field/ library with -DFULLDEBUG -g -O0 (by @Mattijs):

processor0.log.gz

Environment information

    api      = 2106
    patch    = 0
    HEAD     = 6595429f53
    version  = com
    compiler = Clang (system)
             = clang version 9.0.1 
    mpi      = SYSTEMOPENMPI
             = mpirun (Open MPI) 1.10.7.0.5e373bf1fd
    OS       = Description:     openSUSE Leap 15.1
    opts     = linux64ClangDPInt32Opt