Cantera / cantera

Chemical kinetics, thermodynamics, and transport tool suite
https://cantera.org
Other
623 stars 349 forks source link

ERROR: Expected system installation of Sundials, but it could not be found. #1800

Closed freedxmgxd closed 1 month ago

freedxmgxd commented 1 month ago

Problem description

Cannot build Cantera using system Sundials on Arch Linux (WSL)

Steps to reproduce

$ scons build system_eigen='y' system_sundials='y' googletest='system'

get the error

Checking for SUNContext ctx; SUNContext_Create(0, &ctx) in C++ library sundials_cvodes... no ERROR: Expected system installation of Sundials, but it could not be found.

speth commented 1 month ago

Please provide the full scons build output, as well as the contents of the config.log file.

Is this for Cantera 3.0, or the current development version?

What version of SUNDIALS is installed on your system? What release of Arch is this? Where are the SUNDIALS header files and library files located? I am unfamiliar with the paths used by Arch Linux.

freedxmgxd commented 1 month ago

This Cantera 3.0.0,

The log that I get is:

scons build system_eigen='y' system_sundials='y' googletest='system'
scons: Reading SConscript files ...
/home/Shinmen/cantera/SConstruct:1624: SyntaxWarning: invalid escape sequence '\.'
  return re.search('[0-9]+\.[0-9]+\.[0-9]+', h5_version[0]).group(0)
/home/Shinmen/cantera/site_scons/buildutils.py:182: SyntaxWarning: invalid escape sequence '\{'
  replacement = f"\{found}"
SCons 4.8.1 is using the following Python interpreter:
    /usr/bin/python (Python 3.12)
/home/Shinmen/cantera/site_scons/site_tools/subst.py:129: SyntaxWarning: invalid escape sequence '\w'
  _SubstFile_pattern = "@(?P<key>\w*?)@"
/home/Shinmen/cantera/site_scons/site_tools/subst.py:172: SyntaxWarning: invalid escape sequence '\w'
  "(?m)^(?P<space>\\s*?)(?P<type>#define|#undef)\\s+?@(?P<key>\w+?)@(?P<ending>.*?)$"
INFO: Compiling on 'AMD Ryzen 7 5800H with Radeon Graphics'
INFO: Building Cantera from git commit '806842dac'
INFO: Configuration variables read from 'cantera.conf' and command line:
    system_eigen = 'y'
    system_sundials = 'y'
    googletest = 'system'

Checking for C++ header file cmath... yes
INFO: Using system installation of fmt library.
INFO: Using fmt version 11.0.2
Checking for YAML::Node().Mark()... yes
INFO: Using system installation of yaml-cpp library.
Checking for C++ header file gtest/gtest.h... yes
Checking for C++ header file gmock/gmock.h... yes
INFO: Using system installation of Googletest
Checking for C++ header file eigen3/Eigen/Dense... yes
INFO: Using system installation of Eigen.
INFO: Found Eigen version 3.4.0
Checking whether __GLIBCXX__ is declared... yes
Checking whether __clang__ is declared... no
Checking for C++ library iomp5... no
Checking for C++ library omp... yes
INFO: Found Boost version 1.86
Checking for C library openblas... no
Checking for C library lapack... yes
Checking for C library blas... yes
Checking for CVodeCreate(CV_BDF, CV_NEWTON) in C++ library sundials_cvodes... no
Checking for CVodeCreate(CV_BDF) in C++ library sundials_cvodes... no
Checking for SUNContext ctx; SUNContext_Create(0, &ctx) in C++ library sundials_cvodes... no
ERROR: Expected system installation of Sundials, but it could not be found.

And I have the sundials 7.1.1-1 installed

OS info: OS: Arch Linux on Windows 10 x86_64 Kernel: 5.15.153.1-microsoft-standard-WSL2

The headers files is in /usr/include/

bryanwweber commented 1 month ago

Thanks. What are the contents of the config.log file? SCons can't find the headers or libraries and that file will have the compiler output to help debug it.

freedxmgxd commented 1 month ago

config.log Sorry, I think send at last message, following above.

speth commented 1 month ago

Cantera 3.0 isn't compatible with Sundials 7.1 due to various API changes. Sundials 6.6 or earlier should work, or you can use the current development version of Cantera where this support has been added.

freedxmgxd commented 1 month ago

You said the version 3.1 or the main branch? Downgrade the Sundials works fine for me, btw, thank you