In Nektar++ the SessionReader::VerifySolutionInfo function checks if a property of the input file has an associated map that maps from the value to an enum. If no map exists then no error is raised, if a map exists because a call to
Nektar::LibUtilities::SessionReader::RegisterEnumValue exists to associate a property, value and enum, then every value associated with that property must be associated with an enum or a assert will be triggered.
Some solver libraries contain calls to RegisterEnumValue as described. If a executable is linked to one of these libraries
then the problem described is triggered.
The Spack build does not build these libraries so no error occurs but if these libraries are built then Neso's build system will create a interface target Nektar++::Nektar++ that includes all nektar++ libraries and the assert in VerifySolutionInfo will fail
Can be fixed by e.g.
Registering an enum for every solver type as per pull request #257
Changing Neso's build system to link more selectively instead of to every Nektar++ library available
In Nektar++ the
SessionReader::VerifySolutionInfo
function checks if a property of the input file has an associated map that maps from the value to an enum. If no map exists then no error is raised, if a map exists because a call toNektar::LibUtilities::SessionReader::RegisterEnumValue
exists to associate a property, value and enum, then every value associated with that property must be associated with an enum or a assert will be triggered.Some solver libraries contain calls to
RegisterEnumValue
as described. If a executable is linked to one of these libraries then the problem described is triggered.The Spack build does not build these libraries so no error occurs but if these libraries are built then Neso's build system will create a interface target
Nektar++::Nektar++
that includes all nektar++ libraries and the assert inVerifySolutionInfo
will failCan be fixed by e.g.