Problems Installing Cantera

1,907 views
Skip to first unread message

Andrew St. George

unread,
Feb 13, 2014, 3:54:01 PM2/13/14
to canter...@googlegroups.com
So I recently downloaded Cantera 2.1 for my windows machine using the .msi provided on the site.  That worked out pretty nicely, and things linked into my existing matlab installation.  I was using that for a bit until I decided I'd like to integrate Cantera with some fortran scripts.

First, I installed Cygwin to get gfortran, gcc, g++, etc... until I had installed all the prerequisites for Cantera, and following a few sets of scattered instructions from the internet, I figured a Cygwin installation would be very similar to a Unix/Linux installation.  NOPE--instead, there were a number of compiler failures, and despite setting and resetting path variables thru scons, it never seemed to be able to find sundials libraries and headers.  Despite this, the script refused to generate a config.h file (which after reading through the config.h.in file, was supposed to get generated by running a "preconfig" script, which may have been named "autoconfig" somewhere).  Point is, I tried the same procedure on a Linux machine, and it executed just fine on the first try, passing all the tests, etc.  So after hours of tinkering and trying to find why scons refused to generate a config.h and was dead on arrival, I gave up entirely on the Cygwin install, figuring that maybe it was inherently bugged for the most recent Cantera.

So, I installed virtualbox and set up a linux machine with Ubuntu 12.04.  I went and collected (again) all the prerequisite software with apt-get, until I had everything I needed.  I used scons to set up Cantera, and it had difficulty finding my sundials libraries and headers, so I managed to reset the paths until it finally detected sundials.  This resulted in a failed build, which I suppose was attributed to some sort of library conflict with sundials?? Not sure, but found something on the internet suggesting I use a flag in my sundials installation to enable shared libraries.  When I recompiled sundials, it ended up somehow changing the sundials library paths (I can only guess), because when I tried scons build again, it could no longer find sundials headers and libraries.  This was probably for the best though, because at least this time, Cantera managed to build successfully.  Heck, it even managed to pass 57/57 tests, so I figured things were looking uphill.

So the install suggested running the setup_cantera script, which after cracking it open to take a look, just adds some new environment variables, so I ran it.  Then I cracked open python and attempted "import cantera", but to no avail, there was no cantera module detected.  Went to compile a fortran script next, first trying a simple script that just involved importing cantera, but not invoking any cantera functions.  This also failed to work, as no cantera module was detected.  Somewhere on the internet, someone suggested using " -fintrinsic-modules-path /usr/local/include/cantera", which surprising, worked.  So now that fortran at least detected the cantera module, I figured I'd try some more complicated functions.  So I cracked open the demo.f90 included with cantera, and attempted to compile it, and it failed in spectacular fashion.  Someone on the internet suggested that I just needed to add a path to all the cantera module files, or just drop them in the folder where I was compiling.  So I tried that, but dumping everything into the folder "TestCode", just to watch things fail again:

andrew@andrew-VirtualBox:~/TestCode$ gfortran demo.f90 -o demo.exe -fintrinsic-modules-path /usr/local/include/cantera
/tmp/cc08BNNi.o: In function `demo_':
demo.f90:(.text+0x1c5): undefined reference to `__cantera_thermo_MOD_ctthermo_temperature'
demo.f90:(.text+0x1fa): undefined reference to `__cantera_thermo_MOD_ctthermo_pressure'
demo.f90:(.text+0x22f): undefined reference to `__cantera_thermo_MOD_ctthermo_density'
demo.f90:(.text+0x264): undefined reference to `__cantera_thermo_MOD_ctthermo_enthalpy_mole'
demo.f90:(.text+0x299): undefined reference to `__cantera_thermo_MOD_ctthermo_entropy_mole'
demo.f90:(.text+0x2ce): undefined reference to `__cantera_thermo_MOD_ctthermo_cp_mole'
demo.f90:(.text+0x31c): undefined reference to `__cantera_thermo_MOD_ctthermo_equilibrate'
demo.f90:(.text+0x3d8): undefined reference to `__cantera_thermo_MOD_ctthermo_temperature'
demo.f90:(.text+0x40d): undefined reference to `__cantera_thermo_MOD_ctthermo_pressure'
demo.f90:(.text+0x442): undefined reference to `__cantera_thermo_MOD_ctthermo_density'
demo.f90:(.text+0x477): undefined reference to `__cantera_thermo_MOD_ctthermo_enthalpy_mole'
demo.f90:(.text+0x4ac): undefined reference to `__cantera_thermo_MOD_ctthermo_entropy_mole'
demo.f90:(.text+0x4e1): undefined reference to `__cantera_thermo_MOD_ctthermo_cp_mole'
demo.f90:(.text+0x525): undefined reference to `__cantera_kinetics_MOD_ctkin_nreactions'
demo.f90:(.text+0x53e): undefined reference to `__cantera_kinetics_MOD_ctkin_getfwdratesofprogress'
demo.f90:(.text+0x554): undefined reference to `__cantera_kinetics_MOD_ctkin_getrevratesofprogress'
demo.f90:(.text+0x56a): undefined reference to `__cantera_kinetics_MOD_ctkin_getnetratesofprogress'
demo.f90:(.text+0x5aa): undefined reference to `__cantera_kinetics_MOD_ctkin_getreactionstring'
demo.f90:(.text+0x6e2): undefined reference to `__cantera_transport_MOD_ctrans_viscosity'
demo.f90:(.text+0x6f6): undefined reference to `__cantera_transport_MOD_ctrans_thermalconductivity'
demo.f90:(.text+0x711): undefined reference to `__cantera_transport_MOD_ctrans_getmixdiffcoeffs'
demo.f90:(.text+0x812): undefined reference to `__cantera_thermo_MOD_ctthermo_nspecies'
demo.f90:(.text+0x855): undefined reference to `__cantera_thermo_MOD_ctthermo_getspeciesname'
/tmp/cc08BNNi.o: In function `MAIN__':
demo.f90:(.text+0xa4c): undefined reference to `__cantera_funcs_MOD_ctfunc_importphase'
demo.f90:(.text+0xab1): undefined reference to `__cantera_thermo_MOD_ctstring_setstate_tpx'
demo.f90:(.text+0xabd): undefined reference to `__cantera_thermo_MOD_ctthermo_nspecies'
demo.f90:(.text+0xacc): undefined reference to `__cantera_kinetics_MOD_ctkin_nreactions'
collect2: ld returned 1 exit status

From this, I can only guess that despite my best efforts, it has not found any of the cantera modules, and doesn't understand any of these cantera-related types or commands.  Furthermore, it worries me that python didn't seem to detect them either.  Someone on the internet suggested to look in /usr/local/lib/python2.7/site-packages, and if I didn't see anything in that folder, then I needed a fresh Cantera install.  So I tried a fresh Cantera install, and there's still nothing in that folder.

Honestly my command line coding is pretty weak.  My understanding of Linux systems is pretty weak.  In general, my understanding of computers, compiling, and installing could use work.  What I perceived as a simple installation process (since they basically wrote a full how-to on the Cantera site) has turned into a 3 day nightmare of chasing ghosts through my computer.  In the end, nothing works, and I have no idea why.  Someone please help me get Cantera running.

Andrew

Ray Speth

unread,
Feb 13, 2014, 6:36:00 PM2/13/14
to canter...@googlegroups.com
Hi Andrew,

The most common method for building Cantera on Windows is to use native Windows compilers, e.g. Visual Studio or MinGW. There isn't any inherent reason that Cygwin shouldn't work, but it hasn't been subject to much testing, so there may be some bugs to work out. If you can provide details for specific problems compiling Cantera using Cygwin, I'd be happy to help get those fixed.

I apologize for the confusion regarding the note in config.h.in. The reference to 'preconfig' is from the build system for Cantera 1.7 and eariler, not the current SCons-based system. The config.h file should be generated by SCons using config.h.in as a template.

As to the problems importing the python module, the solution to those will depend on where you installed the Cantera Python module, which should have been printed at the end of the output from 'scons install'. Some directories are automatically on Python's path, and it's easiest if you install Cantera to one of these. I recommend setting the SCons option 'python_prefix=USER', which will install to /home/$USER/.local/lib/python2.7/site-packages, which should be on your Python path and doesn't require installing Cantera as root.

The problems you're having with the Fortran compilation are actually linker errors, as evidenced by the last line of the error message which references the program 'ld', the linker. These errors mean that you haven't specified the libraries to link to that define the functions called by your code. At a minimum, you need to link to the libraries cantera_fortran and cantera, and probably several others as well, such as Sundials and BLAS/LAPACK. The correct compiler command will probably look something like:

    gfortran demo.f90 -o demo.exe -fintrinsic-modules-path /usr/local/include/cantera -L/path/to/cantera/library/directory -lcantera_fortran -lcantera -lsundials_cvodes -lsundials_nvecserial -llapack -lblas -lstdc++

Regards,
Ray

Andrew St. George

unread,
Feb 14, 2014, 12:15:08 PM2/14/14
to canter...@googlegroups.com
Ray,

Thank you for your help.

As for the Cygwin install, I already had used Cygwin to acquire gfortran (and the whole gcc package for that matter) and figured I could continue using it for everything else.  I figured as per your advice, I'd try a different windows installation (through Windows SDK 7.1) and just installed python 2.7, but ran into another problem.  When I run scons build, it gives me the following:


C:\cantera-2.1.0>scons build
scons: Reading SConscript files ...

scons: warning: VC version 9.0 not installed.  C/C++ compilers are most likely n
ot set correctly.
 Installed versions are: ['10.0', '10.0Exp']
File "C:\cantera-2.1.0\SConstruct", line 138, in <module>
Configuration variables read from 'cantera.conf' and command line:

INFO: Using 'C:\cygwin64\bin\gfortran' to build the Fortran 90 interface
Checking for C++ header file cmath... no
ERROR: The C++ compiler is not correctly configured.
See 'config.log' for details.

However, I know that c++ is at least installed with the path set properly, as the following command reads an input file error, rather than a command not found error:

C:\cantera-2.1.0>c++
c++: fatal error: no input files
compilation terminated.

So this begs the question... if I used Cygwin to install gfortran and the rest of the gcc package, is that installation of the GNU C++ causing confusion in scons?  Is it possible to simultaneously use the gfortran installation with Microsoft SDK 2010?  The config.log file reads:

file C:\cantera-2.1.0\SConstruct,line 781:
Configure(confdir = .sconf_temp)
scons: Configure: Checking for C++ header file cmath... 
.sconf_temp\conftest_0.cpp <-
  |
  |#include <cmath>
  |
  |
cl /Fo.sconf_temp\conftest_0.obj /c .sconf_temp\conftest_0.cpp /EHsc /MD /nologo /Zc:wchar_t /Zc:forScope /D_SCL_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS /O2 /DNDEBUG /Zi /Fd.sconf_temp\conftest_0.obj.pdb
conftest_0.cpp
.sconf_temp\conftest_0.cpp(2) : fatal error C1034: cmath: no include path set
scons: Configure: no

So it looks like it can't find the cmath header.  Did I screw up the c++ installation?  If so, how, since the installation ran automatically with a .exe from Microsoft?  

Ray Speth

unread,
Feb 14, 2014, 12:29:39 PM2/14/14
to canter...@googlegroups.com
Andrew,

I think if you're using gfortran in cygwin, you should use cygwin g++ to compiler Cantera. This page: http://www.scons.org/wiki/SConsAndCygwin has some information on using SCons with Cygwin. From what I can tell, what you want to do is make sure that SCons is seeing the Cygwin version of Python, so that it will attempt to use the GNU compilers provided by Cygwin. You can see from the config log that it's currently trying to use the Microsoft compiler (cl).

Regards,
Ray

Andrew St. George

unread,
Feb 14, 2014, 12:43:35 PM2/14/14
to canter...@googlegroups.com
Ray,

Alright, so back in Cygwin, once again, I have the missing "config.h" file issue.  I've attached the config.log as well, but it doesn't seem to have any errors in it.

charles@charles-PC ~/cantera-2.1.0
$ scons build
scons: Reading SConscript files ...
Configuration variables read from 'cantera.conf' and command line:
    prefix = '/home/charles/cantera'
    optimize = False

INFO: Using '/usr/bin/gfortran' to build the Fortran 90 interface
Checking for C++ header file cmath... (cached) yes
Checking for C header file sys/times.h... (cached) yes
Checking for C header file unistd.h... (cached) yes
Checking whether erf is declared... (cached) yes
Checking for C++ header file boost/math/special_functions/erf.hpp... (cached) yes
Checking for CVodeCreate(CV_BDF, CV_NEWTON) in C++ library sundials_cvodes... (cached) yes
Checking for double x; log(x) in C library None... (cached) yes
INFO: Using Sundials version 2.5.0
INFO: Found Cython version 0.20.1 for Python 2.x.
INFO: Building the new Python package using numpy.
WARNING: Couldn't find '3to2'. Python examples will not work correctly.
WARNING: Cython package for Python 3 not found or incompatible version: Found 0.0.0 but 0.17 or newer is required
scons: done reading SConscript files.
scons: Building targets ...
g++ -o build/src/fortran/fct.o -c -ftemplate-depth-128 -pthread -O0 -fno-inline -g -Iinclude -Isrc src/fortran/fct.cpp
In file included from include/cantera/equil/MultiPhase.h:11:0,
                 from include/cantera/equil/equil.h:12,
                 from src/fortran/fct.cpp:10:
include/cantera/base/ct_defs.h:17:20: fatal error: config.h: No such file or directory
 #include "config.h"
                    ^
compilation terminated.
scons: *** [build/src/fortran/fct.o] Error 1
scons: building terminated because of errors.

This is identical to the error I experienced prior to messing around with non-cygwin python and scons installations, so I'm sure that it's using the cygwin-based python and scons installations running here.

Thanks,
Andrew

Andrew St. George

unread,
Feb 14, 2014, 12:48:37 PM2/14/14
to canter...@googlegroups.com
Sorry, forgot the attachment
config.log

Ray Speth

unread,
Feb 14, 2014, 12:54:07 PM2/14/14
to canter...@googlegroups.com
Andrew,

Can you run:

    scons clean

then:

    scons build --tree=all > buildlog.txt

And attach the contents of buildlog.txt? This error is somewhat confusing, as SCons should understand that compiling fct.cpp depends on having config.h, and should build that first.

Regards,
Ray

Andrew St. George

unread,
Feb 14, 2014, 12:58:33 PM2/14/14
to canter...@googlegroups.com
I've attached buildlog.txt as per your instructions.
buildlog.txt

Nick Curtis

unread,
Feb 14, 2014, 1:45:36 PM2/14/14
to canter...@googlegroups.com
Hi Andrew,
A few notes that may help: 

1) In regards to the attempted Windows SDK install: 
Checking for C++ header file cmath... no
ERROR: The C++ compiler is not correctly configured.

This is due to the fact that you likely did not set your PATH environment variable correctly.  The easiest fix is the use the Visual Studio Command Line when compiling, however, I don't know that the SDK comes with that command line.  In which case you'll want to add something like the following to your PATH:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib

You may need to lib\amd64 instead of just the lib folder depending on whether you're compiling in 64 bits or not.

2)  Be very, very careful about assuming which version of python SCons is using.  I've had installs be broken for days due to this.
The version of python SCons uses is determined by the shebang in the main scons file (scons.py)

#! /usr/bin/env python

I'm not 100% on the workings of Cygwin, but the env command will look up the first python instance found in it's environment... AND Cygwin imports all Windows environment variables on start...

You could easily be locating the non-Cygwin python. 
The quickest way to tell which python you're using would be to type:
/usr/bin/env python

in the Cygwin terminal.

3)  Having tried to build using Cygwin before... it can be painful.  I might suggest trying MinGW (if you need fortran) or the SDK (if you don't need fortran), simply because *you* will be the only thing setting your environment variables (and not potentially conflicting with Cygwin)

Ray Speth

unread,
Feb 14, 2014, 1:45:42 PM2/14/14
to canter...@googlegroups.com
Andrew,

Can you try adding the following line:

    localenv.Depends(objects, localenv['config_h_target'])

to src/fortran/SConscript after line 13 to see if this helps?

Regards,
Ray

Nick Curtis

unread,
Feb 14, 2014, 1:54:48 PM2/14/14
to canter...@googlegroups.com
err... I meant:

which python

in the Cygwin terminal, instead of:
/usr/bin/env python

Andrew St. George

unread,
Feb 14, 2014, 3:26:21 PM2/14/14
to canter...@googlegroups.com
Ray,

After adding the line you suggested to the SConstruct file, I got the following error:

$ scons build
scons: Reading SConscript files ...
NameError: name 'localenv' is not defined:
  File "/home/charles/cantera-2.1.0/SConstruct", line 28:
    localenv.Depends(objects, localenv['config_h_target'])

Andrew St. George

unread,
Feb 14, 2014, 3:27:45 PM2/14/14
to canter...@googlegroups.com
Nick,

It looks like it's detecting the cygwin python:

charles@charles-PC ~/cantera-2.1.0
$ which python
/usr/bin/python

Ray Speth

unread,
Feb 14, 2014, 3:53:38 PM2/14/14
to canter...@googlegroups.com
Andrew,

Are you sure you added that to the correct file? You should be adding that as line 14 of 'src/fortran/SConscript', with the previous line reading:

    objects = [o for o in artifacts if not o.path.endswith('.mod')]

Regards,
Ray

Andrew St. George

unread,
Feb 14, 2014, 4:09:32 PM2/14/14
to canter...@googlegroups.com
Ray,

You are correct that I modified the wrong SConscript file.  I apologize for not reading clearly enough.  However, after I correctly applied your modification, it generated an additional error.  Here are the last several lines copied from the command window:

In file included from ext/f2c_libs/backspac.c:2:0:
ext/f2c_libs/fio.h:2:21: fatal error: sysdep1.h: No such file or directory
 #include "sysdep1.h"
                     ^
compilation terminated.
scons: *** [build/ext/f2c_libs/backspac.os] Error 1
scons: building terminated because of errors.


Also, I've included another buildlog.txt and attached it.

Thanks,
Andrew
buildlog.txt

Ray Speth

unread,
Feb 14, 2014, 4:42:08 PM2/14/14
to canter...@googlegroups.com
Andrew,

What version of SCons are you using (scons --version)? It should be identifying this dependency on its own.

You can get past this error by just copying the files 'ext/f2c_libs/signal1.h0' to 'ext/f2c_libs/signal1.h' and 'ext/f2c_libs/sysdep1.h0' to 'ext/f2c_libs/sysdep1.h', since these supposedly "system dependent" header files seem not to be on any modern OS.

Regards,
Ray

Andrew St. George

unread,
Feb 15, 2014, 11:22:21 AM2/15/14
to canter...@googlegroups.com
Ray,

The prompt indicates I'm using v2.3.0.  

$ scons --version
SCons by Steven Knight et al.:
        script: v2.3.0, 2013/03/03 09:48:35, by garyo on reepicheep
        engine: v2.3.0, 2013/03/03 09:48:35, by garyo on reepicheep
        engine path: ['/usr/lib/scons-2.3.0/SCons']
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 The SCons Foundation

So I copied those files and changed the extensions to .h, and got the following error:

$ scons build --tree=all > buildlog.txt
scons: *** [ext/f2c_libs/sysdep1.h] Source `ext/f2c_libs/sysdep1.h0' not found, needed by target `ext/f2c_libs/sysdep1.h'.

This is strange, because I can verify that ext/f2c_libs/sysdep1.h0 exists in that folder.  When using ls in the command prompt while in the directory ext/f2c_libs, I can see sysdep1.h0 right there in the list.

Ray Speth

unread,
Feb 15, 2014, 3:20:32 PM2/15/14
to canter...@googlegroups.com
Andrew,

That is definitely a strange error. You can try commenting out lines 84-90 of 'ext/SConscript', which read:

    headerenv = prep_f2c(env)
   
# Possibly system-dependent headers
    headerenv
.Command('#ext/f2c_libs/signal1.h', 'f2c_libs/signal1.h0',
                     
Copy('$TARGET', '$SOURCE'))


    headerenv
.Command('#ext/f2c_libs/sysdep1.h', 'f2c_libs/sysdep1.h0',
                     
Copy('$TARGET', '$SOURCE'))

To just skip everything related to these headers (which is fine, since you've already copied them into place manually). Let me know how it goes.

Regards,
Ray

Andrew St. George

unread,
Feb 16, 2014, 2:24:08 AM2/16/14
to canter...@googlegroups.com
Ray,

I commented out the lines you suggested.  It allowed me to bypass that previous error.  Things seemed to be going fine for a while, until I ran into another error.  This one was a little cryptic,  but judging by the command prompt text, there seems to be a missing math library or something, as the commands isnan (presumably "is Not a Number") and isinf (presumably "is Infinity") are not defined.

charles@charles-PC ~/cantera-2.1.0
$ scons build --tree=all > buildlog.txt
src/base/checkFinite.cpp: In function ‘void Cantera::checkFinite(double)’:
src/base/checkFinite.cpp:48:13: error: ‘::isnan’ has not been declared
         if (::isnan(tmp)) {
             ^
src/base/checkFinite.cpp:48:13: note: suggested alternative:
In file included from include/cantera/base/ct_defs.h:19:0,
                 from src/base/checkFinite.cpp:12:
/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cmath:836:5: note:   ‘std::isnan’
     isnan(_Tp __f)
     ^
src/base/checkFinite.cpp:50:20: error: ‘::isinf’ has not been declared
         } else if (::isinf(tmp) == 1) {
                    ^
src/base/checkFinite.cpp:50:20: note: suggested alternative:
In file included from include/cantera/base/ct_defs.h:19:0,
                 from src/base/checkFinite.cpp:12:
/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cmath:827:5: note:   ‘std::isinf’
     isinf(_Tp __f)
     ^
scons: *** [build/src/base/checkFinite.os] Error 1

Thanks again for your continued help in what is proving to be a tricky installation.

Andrew
buildlog.txt

Ray Speth

unread,
Feb 16, 2014, 11:09:01 AM2/16/14
to canter...@googlegroups.com
Andrew,

Can you try replacing src/base/checkFinite.cpp with the version I have attached, which adds a special case for Cygwin?

Regards,
Ray
checkFinite.cpp

Andrew St. George

unread,
Feb 16, 2014, 1:52:23 PM2/16/14
to canter...@googlegroups.com
Ray,

I replaced the file as per your instructions.  It looks like it generated another error:

charles@charles-PC ~/cantera-2.1.0
$ scons build --tree=all > buildlog.txt
src/base/checkFinite.cpp: In function ‘void Cantera::checkFinite(double)’:
src/base/checkFinite.cpp:47:10: error: ‘finite’ is not a member of ‘std’
     if (!std::finite(tmp)) {
          ^
src/base/checkFinite.cpp:47:10: note: suggested alternative:
In file included from /usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cmath:44:0,
                 from include/cantera/base/ct_defs.h:19,
                 from src/base/checkFinite.cpp:12:
/usr/include/math.h:260:12: note:   ‘finite’
 extern int finite _PARAMS((double));
            ^
scons: *** [build/src/base/checkFinite.os] Error 1


I've attached the log file.

Thanks,
Andrew
buildlog.txt

Ray Speth

unread,
Feb 16, 2014, 3:56:06 PM2/16/14
to canter...@googlegroups.com
Andrew,

OK, so the function it previously suggested as an alternative doesn't exist. What if you try removing the instances of "std::" from finite/isnan/isinf in the Cygwin section of checkFInite.cpp?

Ray

Andrew St. George

unread,
Feb 17, 2014, 10:55:35 AM2/17/14
to canter...@googlegroups.com
Ray,

I removed the instances of std:: from CheckFinite.cpp, and while I got past the previous error, things seemed to be chugging along for a while 2-3 minutes, and quite a few errors were produced:

charles@charles-PC ~/cantera-2.1.0
$ scons build --tree=all > buildlog.txt
src/thermo/MargulesVPSSTP.cpp: In member function ‘virtual void Cantera::MargulesVPSSTP::getPartialMolarVolumes(doublereal*) const’:
src/thermo/MargulesVPSSTP.cpp:334:20: warning: variable ‘delAK’ set but not used [-Wunused-but-set-variable]
     size_t iA, iB, delAK, delBK;
                    ^
src/thermo/MargulesVPSSTP.cpp:334:27: warning: variable ‘delBK’ set but not used [-Wunused-but-set-variable]
     size_t iA, iB, delAK, delBK;
                           ^
src/thermo/RedlichKwongMFTP.cpp: In member function ‘int Cantera::RedlichKwongMFTP::NicholsSolve(double, double, doublereal, doublereal, doublereal*) const’:
src/thermo/RedlichKwongMFTP.cpp:1374:9: warning: variable ‘nTurningPoints’ set but not used [-Wunused-but-set-variable]
     int nTurningPoints;
         ^
src/thermo/RedlichKwongMFTP.cpp:1375:10: warning: variable ‘lotsOfNumError’ set but not used [-Wunused-but-set-variable]
     bool lotsOfNumError = false;
          ^
src/thermo/RedlichKwongMFTP.cpp:1376:16: warning: variable ‘Vturn’ set but not used [-Wunused-but-set-variable]
     doublereal Vturn[2];
                ^
src/thermo/VPSSMgr.cpp: In member function ‘virtual const vector_fp& Cantera::VPSSMgr::getStandardVolumes() const’:
src/thermo/VPSSMgr.cpp:233:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
src/equil/vcs_solve_TP.cpp: In member function ‘int VCSnonideal::VCS_SOLVE::vcs_solve_TP(int, int, int)’:
src/equil/vcs_solve_TP.cpp:87:12: warning: variable ‘doPhaseDeleteKspec’ set but not used [-Wunused-but-set-variable]
     size_t doPhaseDeleteKspec = npos;
            ^
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::~CVodesIntegrator()':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:144: undefined reference to `CVodeSensFree'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:144:(.text+0x369): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CVodeSensFree'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:146: undefined reference to `CVodeFree'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:146:(.text+0x379): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CVodeFree'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:149: undefined reference to `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:149:(.text+0x396): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:152: undefined reference to `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:152:(.text+0x3b3): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `N_VDestroy_Serial'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::setTolerances(double, unsigned long, double*)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:175: undefined reference to `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:175:(.text+0x4ed): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:177: undefined reference to `N_VNew_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:177:(.text+0x4f9): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `N_VNew_Serial'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::setMaxStepSize(double)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:218: undefined reference to `CVodeSetMaxStep'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:218:(.text+0x710): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CVodeSetMaxStep'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::setMinStepSize(double)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:226: undefined reference to `CVodeSetMinStep'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:226:(.text+0x762): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CVodeSetMinStep'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::setMaxSteps(int)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:234: undefined reference to `CVodeSetMaxNumSteps'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:234:(.text+0x7b0): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CVodeSetMaxNumSteps'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::setMaxErrTestFails(int)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:242: undefined reference to `CVodeSetMaxErrTestFails'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:242:(.text+0x7f4): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `CVodeSetMaxErrTestFails'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::sensInit(double, Cantera::FuncEval&)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:265: undefined reference to `N_VNew_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:265:(.text+0x954): additional relocation overflows omitted from the output
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:266: undefined reference to `N_VCloneVectorArray_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:286: undefined reference to `CVodeSensInit'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:293: undefined reference to `CVodeSensSStolerances'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::initialize(double, Cantera::FuncEval&)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:305: undefined reference to `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:307: undefined reference to `N_VNew_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:319: undefined reference to `CVodeFree'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:328: undefined reference to `CVodeCreate'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:355: undefined reference to `CVodeInit'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:367: undefined reference to `CVodeSVtolerances'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:369: undefined reference to `CVodeSStolerances'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:393: undefined reference to `CVodeSetUserData'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:401: undefined reference to `CVodeSetSensParams'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::reinitialize(double, Cantera::FuncEval&)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:435: undefined reference to `CVodeReInit'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::applyOptions()':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:448: undefined reference to `CVDense'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:450: undefined reference to `CVDiag'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:452: undefined reference to `CVSpgmr'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:457: undefined reference to `CVBand'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:463: undefined reference to `CVodeSetMaxOrd'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:466: undefined reference to `CVodeSetMaxNumSteps'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:469: undefined reference to `CVodeSetMaxStep'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:472: undefined reference to `CVodeSetMinStep'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:475: undefined reference to `CVodeSetMaxErrTestFails'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::integrate(double)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:481: undefined reference to `CVode'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::step(double)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:491: undefined reference to `CVode'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::nEvals() const':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:504: undefined reference to `CVodeGetNumRhsEvals'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::sensitivity(unsigned long, unsigned long)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:519: undefined reference to `CVodeGetSens'
build/src/numerics/CVodesIntegrator.os: In function `Cantera::CVodesIntegrator::getErrorInfo(int)':
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:538: undefined reference to `N_VNew_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:539: undefined reference to `N_VNew_Serial'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:540: undefined reference to `CVodeGetErrWeights'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:541: undefined reference to `CVodeGetEstLocalErrors'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:548: undefined reference to `N_VDestroy'
/home/charles/cantera-2.1.0/src/numerics/CVodesIntegrator.cpp:549: undefined reference to `N_VDestroy'
build/src/numerics/IDA_Solver.os: In function `Cantera::IDA_Solver::~IDA_Solver()':
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:160: undefined reference to `IDAFree'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:163: undefined reference to `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:166: undefined reference to `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:169: undefined reference to `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:172: undefined reference to `N_VDestroy_Serial'
build/src/numerics/IDA_Solver.os: In function `Cantera::IDA_Solver::setTolerances(double, double*)':
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:201: undefined reference to `N_VNew_Serial'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:208: undefined reference to `IDASVtolerances'
build/src/numerics/IDA_Solver.os: In function `Cantera::IDA_Solver::setTolerances(double, double)':
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:221: undefined reference to `IDASStolerances'
build/src/numerics/IDA_Solver.os: In function `Cantera::IDA_Solver::getCurrentStepFromIDA()':
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:268: undefined reference to `IDAGetCurrentStep'
build/src/numerics/IDA_Solver.os: In function `Cantera::IDA_Solver::setJacobianType(int)':
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:277: undefined reference to `IDADlsSetDenseJacFn'
build/src/numerics/IDA_Solver.os: In function `Cantera::IDA_Solver::init(double)':
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:316: undefined reference to `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:319: undefined reference to `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:322: undefined reference to `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:325: undefined reference to `N_VDestroy_Serial'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:328: undefined reference to `N_VNew_Serial'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:329: undefined reference to `N_VNew_Serial'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:330: undefined reference to `N_VNew_Serial'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:342: undefined reference to `IDAFree'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:346: undefined reference to `IDACreate'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:368: undefined reference to `IDAInit'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:378: undefined reference to `IDASVtolerances'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:399: undefined reference to `IDAInit'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:409: undefined reference to `IDASStolerances'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:422: undefined reference to `IDADense'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:430: undefined reference to `IDABand'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:436: undefined reference to `IDADlsSetDenseJacFn'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:450: undefined reference to `IDASetUserData'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:458: undefined reference to `IDASetMaxOrd'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:464: undefined reference to `IDASetMaxNumSteps'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:470: undefined reference to `IDASetInitStep'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:476: undefined reference to `IDASetStopTime'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:482: undefined reference to `IDASetMaxErrTestFails'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:488: undefined reference to `IDASetMaxNonlinIters'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:494: undefined reference to `IDASetMaxConvFails'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:500: undefined reference to `IDASetSuppressAlg'
build/src/numerics/IDA_Solver.os: In function `Cantera::IDA_Solver::correctInitial_Y_given_Yp(double*, double*, double)':
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:519: undefined reference to `IDACalcIC'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:525: undefined reference to `IDAGetConsistentIC'
build/src/numerics/IDA_Solver.os: In function `Cantera::IDA_Solver::correctInitial_YaYp_given_Yd(double*, double*, double)':
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:550: undefined reference to `IDACalcIC'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:556: undefined reference to `IDAGetConsistentIC'
build/src/numerics/IDA_Solver.os: In function `Cantera::IDA_Solver::solve(double)':
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:573: undefined reference to `IDASetStopTime'
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:583: undefined reference to `IDASolve'
build/src/numerics/IDA_Solver.os: In function `Cantera::IDA_Solver::step(double)':
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:612: undefined reference to `IDASolve'
build/src/numerics/IDA_Solver.os: In function `Cantera::IDA_Solver::getOutputParameter(int) const':
/home/charles/cantera-2.1.0/src/numerics/IDA_Solver.cpp:632: undefined reference to `IDAGetWorkSpace'
collect2: error: ld returned 1 exit status
scons: *** [build/lib/cygcantera_shared.dll] Error 1

Is this another instance of bad/nonworking links to libraries, or missing libraries?

Andrew
buildlog.txt

Nick Curtis

unread,
Feb 17, 2014, 2:00:59 PM2/17/14
to canter...@googlegroups.com
Hi Andrew,
These are linking errors resulting from some error involving the Sundials/CVodes libraries.  Either the linker cannot find these libraries or they were built incorrectly.

Did you add the path to the sundials/cvodes libraries to your library path?
this can be done using the sundials_libdir arguement for scons or by adding the path to the LD_LIBRARY_PATH variable in your Cygwin shell.

If that doesn't work, it's likely that you may have built Sundials incorrectly.

Nick

Andrew St. George

unread,
Feb 17, 2014, 6:09:20 PM2/17/14
to canter...@googlegroups.com
Nick,

Thanks for the idea.  I re-installed Sundials just to make sure things were set up correctly.  I used the scons commands for sundials_libdir=/usr/local/lib, and sundials_include=/usr/local/include, but unfortunately, this was not sufficient for the compiling to work.  Despite using scons help to verify that the paths were set correctly, and browsing through the folders to verify that the files were all there, I got virtually the same set of sundials-library-related errors.  

$ scons build --tree=all > buildlog.txt


Should I just skip using sundials entirely by setting use_sundials=n?  How would I go about completely wiping the current Sundials install from my machine and trying a completely fresh start?

Andrew
buildlog.txt

Nick Curtis

unread,
Feb 17, 2014, 6:32:26 PM2/17/14
to canter...@googlegroups.com
Hi Andrew,
You can skip the use of sundials using 'use_sundials=n'.  Basically what this does is use a trimmed down, older version of sundials that comes packaged with Cantera instead of your own sundials install.  Ray might correct me here, but I believe the major disadvantage it is not up to date; stability and numerics problems may be an issue depending on what you're trying to simulate.  If you're just using the calculator side of Cantera (e.g. thermo properties, transport properties, production rates, etc.) you should have no issue.  If you're trying to do 0-D or 1-D simulations you may have problems.

The next question I have is, how did you build sundials?
I would assume you went through either autotools (http://sundials.wikidot.com/installation-config) or ccmake (http://sundials.wikidot.com/installation-cmake#toc3)?
Note: although the CMake gui would probably be an easier install path, I don't think it would necessarily work well with Cygwin.

Do you have any output from that process?  Sometimes errors can be really good at hiding in there.


As to cleaning out your old sundials installs (a good idea), you have to do this semi-manually. 
Before we start, a warning: be careful otherwise you might break your Cygwin install (and hopefully nothing else), don't delete anything until you're sure.

Running this command:
locate -r /usr/local/.*sundials.*
Should give you a list of all sundials files in your /usr/local/include and /lib/

You can either navigate to them manually and delete or run:

locate -r/usr/local/.*sundials.* -exec rm -rf {} \;

Ray Speth

unread,
Feb 18, 2014, 11:30:01 AM2/18/14
to canter...@googlegroups.com
Andrew,

Since there seem to be a lot of little oddities about Cygwin, I went ahead and set up a Cygwin build environment on my computer. So far, I've run into all of the same problems you have, so hopefully once I get it building on my machine, it will work for you, too. At least one of the problems is apparently a bug in SCons, which I'm still trying to figure out a good workaround for (see http://scons.tigris.org/issues/show_bug.cgi?id=2911). I'll let you know when I have a patch ready.

Regards,
Ray

Andrew St. George

unread,
Feb 18, 2014, 11:55:49 AM2/18/14
to canter...@googlegroups.com
Nick,

I had originally used the autotools install (i.e. using commands ./configure, make, make install) to install sundials through a Cygwin command prompt.  I cleaned out the files as per your instructions, and reinstalled (config.log from that process is attached).  Unfortunately, this did not correct the errors associated with sundials, so I attempted the process with sundials excluded from the install.  This raised some flags along the way (something about "anonymous namespaces") as listed below.  Interestingly enough, it seemed to build without failing.  However, in the subsequent "scons test," it stopped and experienced errors due to missing a cython file or path.

$ scons build use_sundials=n --tree=all > buildlog.txt
src/thermo/MargulesVPSSTP.cpp: In member function ‘virtual void Cantera::MargulesVPSSTP::getPartialMolarVolumes(doublereal*) const’:
src/thermo/MargulesVPSSTP.cpp:334:20: warning: variable ‘delAK’ set but not used [-Wunused-but-set-variable]
     size_t iA, iB, delAK, delBK;
                    ^
src/thermo/MargulesVPSSTP.cpp:334:27: warning: variable ‘delBK’ set but not used [-Wunused-but-set-variable]
     size_t iA, iB, delAK, delBK;
                           ^
src/thermo/RedlichKwongMFTP.cpp: In member function ‘int Cantera::RedlichKwongMFTP::NicholsSolve(double, double, doublereal, doublereal, doublereal*) const’:
src/thermo/RedlichKwongMFTP.cpp:1374:9: warning: variable ‘nTurningPoints’ set but not used [-Wunused-but-set-variable]
     int nTurningPoints;
         ^
src/thermo/RedlichKwongMFTP.cpp:1375:10: warning: variable ‘lotsOfNumError’ set but not used [-Wunused-but-set-variable]
     bool lotsOfNumError = false;
          ^
src/thermo/RedlichKwongMFTP.cpp:1376:16: warning: variable ‘Vturn’ set but not used [-Wunused-but-set-variable]
     doublereal Vturn[2];
                ^
src/thermo/VPSSMgr.cpp: In member function ‘virtual const vector_fp& Cantera::VPSSMgr::getStandardVolumes() const’:
src/thermo/VPSSMgr.cpp:233:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
src/equil/vcs_solve_TP.cpp: In member function ‘int VCSnonideal::VCS_SOLVE::vcs_solve_TP(int, int, int)’:
src/equil/vcs_solve_TP.cpp:87:12: warning: variable ‘doPhaseDeleteKspec’ set but not used [-Wunused-but-set-variable]
     size_t doPhaseDeleteKspec = npos;
            ^
In file included from src/numerics/CVodeInt.cpp:7:0:
src/numerics/CVodeInt.h:34:7: warning: ‘Cantera::CVodeInt’ has a field ‘Cantera::CVodeInt::m_y’ whose type uses the anonymous namespace [enabled by default]
 class CVodeInt : public Integrator
       ^
src/numerics/CVodeInt.h:34:7: warning: ‘Cantera::CVodeInt’ has a field ‘Cantera::CVodeInt::m_abstol’ whose type uses the anonymous namespace [enabled by default]
In file included from src/numerics/CVodeInt.cpp:13:0:
src/numerics/../../ext/cvode/include/cvode.h:529:16: warning: ‘CVodeMemRec’ has a field ‘CVodeMemRec::cv_f’ whose type uses the anonymous namespace [enabled by default]
 typedef struct CVodeMemRec {
                ^
src/numerics/../../ext/cvode/include/cvode.h:529:16: warning: ‘CVodeMemRec’ has a field ‘CVodeMemRec::cv_zn’ whose type uses the anonymous namespace [enabled by default]
src/numerics/../../ext/cvode/include/cvode.h:529:16: warning: ‘CVodeMemRec’ has a field ‘CVodeMemRec::cv_ewt’ whose type uses the anonymous namespace [enabled by default]
src/numerics/../../ext/cvode/include/cvode.h:529:16: warning: ‘CVodeMemRec’ has a field ‘CVodeMemRec::cv_y’ whose type uses the anonymous namespace [enabled by default]
src/numerics/../../ext/cvode/include/cvode.h:529:16: warning: ‘CVodeMemRec’ has a field ‘CVodeMemRec::cv_acor’ whose type uses the anonymous namespace [enabled by default]
src/numerics/../../ext/cvode/include/cvode.h:529:16: warning: ‘CVodeMemRec’ has a field ‘CVodeMemRec::cv_tempv’ whose type uses the anonymous namespace [enabled by default]
src/numerics/../../ext/cvode/include/cvode.h:529:16: warning: ‘CVodeMemRec’ has a field ‘CVodeMemRec::cv_ftemp’ whose type uses the anonymous namespace [enabled by default]
src/numerics/../../ext/cvode/include/cvode.h:529:16: warning: ‘CVodeMemRec’ has a field ‘CVodeMemRec::cv_lsetup’ whose type uses the anonymous namespace [enabled by default]
src/numerics/../../ext/cvode/include/cvode.h:529:16: warning: ‘CVodeMemRec’ has a field ‘CVodeMemRec::cv_lsolve’ whose type uses the anonymous namespace [enabled by default]
In file included from src/numerics/ODE_integrators.cpp:9:0:
src/numerics/CVodeInt.h:34:7: warning: ‘Cantera::CVodeInt’ has a field ‘Cantera::CVodeInt::m_y’ whose type uses the anonymous namespace [enabled by default]
 class CVodeInt : public Integrator
       ^
src/numerics/CVodeInt.h:34:7: warning: ‘Cantera::CVodeInt’ has a field ‘Cantera::CVodeInt::m_abstol’ whose type uses the anonymous namespace [enabled by default]
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
In file included from /usr/lib/python2.7/site-packages/numpy/core/include/numpy/ufuncobject.h:234:0,
                 from cantera/_cantera.cpp:354:
/usr/lib/python2.7/site-packages/numpy/core/include/numpy/fenv/fenv.c:41:1: warning: narrowing conversion of ‘255’ from ‘int’ to ‘char’ inside { } is ill-formed in C++11 [-Wnarrowing]
 };
 ^
/usr/lib/python2.7/site-packages/numpy/core/include/numpy/fenv/fenv.c:41:1: warning: narrowing conversion of ‘255’ from ‘int’ to ‘char’ inside { } is ill-formed in C++11 [-Wnarrowing]
cantera/_cantera.cpp: In function ‘PyObject* __pyx_pf_7cantera_8_cantera_11ThermoPhase_18element_potentials(__pyx_obj_7cantera_8_cantera_ThermoPhase*)’:
cantera/_cantera.cpp:17635:8: warning: variable ‘__pyx_t_7’ set but not used [-Wunused-but-set-variable]
   bool __pyx_t_7;
        ^
cantera/_cantera.cpp: In function ‘PyObject* __pyx_pf_7cantera_8_cantera_7Mixture_28equilibrate(__pyx_obj_7cantera_8_cantera_Mixture*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*, PyObject*)’:
cantera/_cantera.cpp:29462:7: warning: variable ‘__pyx_t_11’ set but not used [-Wunused-but-set-variable]
   int __pyx_t_11;
       ^
In file included from /usr/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:26:0,
                 from /usr/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:14,
                 from cantera/_cantera.cpp:353:
/usr/lib/python2.7/site-packages/numpy/core/include/numpy/__multiarray_api.h: At global scope:
/usr/lib/python2.7/site-packages/numpy/core/include/numpy/__multiarray_api.h:1532:1: warning: ‘int _import_array()’ defined but not used [-Wunused-function]
 _import_array(void)
 ^
In file included from /usr/lib/python2.7/site-packages/numpy/core/include/numpy/ufuncobject.h:152:0,
                 from cantera/_cantera.cpp:354:
/usr/lib/python2.7/site-packages/numpy/core/include/numpy/__ufunc_api.h:226:1: warning: ‘int _import_umath()’ defined but not used [-Wunused-function]
 _import_umath(void)
 ^



$ scons test
scons: Reading SConscript files ...
Configuration variables read from 'cantera.conf' and command line:
    prefix = '/home/charles/cantera'
    use_sundials = 'n'
    sundials_include = '/usr/local/include'
    sundials_libdir = '/usr/local/lib'
    optimize = False

INFO: Using '/usr/bin/gfortran' to build the Fortran 90 interface
Checking for C++ header file cmath... (cached) yes
Checking for C header file sys/times.h... (cached) yes
Checking for C header file unistd.h... (cached) yes
Checking whether erf is declared... (cached) yes
Checking for C++ header file boost/math/special_functions/erf.hpp... (cached) yes
Checking for CVodeCreate(CV_BDF, CV_NEWTON) in C++ library sundials_cvodes... (cached) yes
Checking for double x; log(x) in C library None... (cached) yes
INFO: Found Cython version 0.20.1 for Python 2.x.
INFO: Building the new Python package using numpy.
WARNING: Couldn't find '3to2'. Python examples will not work correctly.
WARNING: Cython package for Python 3 not found or incompatible version: Found 0.0.0 but 0.17 or newer is required
scons: done reading SConscript files.
scons: Building targets ...
g++ -o build/test/thermo/nasapoly.o -c -ftemplate-depth-128 -pthread -O0 -fno-inline -g -Wall -Iext/gtest/include -Iinclude test/thermo/nasapoly.cpp
g++ -o build/test/thermo/phaseConstructors.o -c -ftemplate-depth-128 -pthread -O0 -fno-inline -g -Wall -Iext/gtest/include -Iinclude test/thermo/phaseConstructors.cpp
ConfigBuilder(["include/cantera/base/config.h"], ["include/cantera/base/config.h.in"])
Generating include/cantera/base/config.h with the following settings:
    CANTERA_VERSION                     "2.1.0"
    FTN_TRAILING_UNDERSCORE             1
    HAS_NUMPY                           1
    LAPACK_FTN_STRING_LEN_AT_END        1
    LAPACK_FTN_TRAILING_UNDERSCORE      1
    LAPACK_NAMES_LOWERCASE              1
    RXNPATH_FONT                        "Helvetica"
    SUNDIALS_VERSION                    0
g++ -o build/test/thermo/thermo.exe -Wl,-no-undefined -pthread build/test/thermo/nasapoly.o build/test/thermo/phaseConstructors.o -Lbuild/lib -Lbuild/lib -lgtest -lcantera
testRunner(["build/test/thermo/thermo.exe.passed"], ["build/test/thermo/thermo.exe"])
Running main() from nasapoly.cpp
[==========] Running 7 tests from 2 test cases.
[----------] Global test environment set-up.
[----------] 2 tests from FixedChemPotSstpConstructorTest
[ RUN      ] FixedChemPotSstpConstructorTest.fromXML
[       OK ] FixedChemPotSstpConstructorTest.fromXML (10 ms)
[ RUN      ] FixedChemPotSstpConstructorTest.SimpleConstructor
[       OK ] FixedChemPotSstpConstructorTest.SimpleConstructor (0 ms)
[----------] 2 tests from FixedChemPotSstpConstructorTest (10 ms total)

[----------] 5 tests from NasaPoly1Test
[ RUN      ] NasaPoly1Test.Initialization
[       OK ] NasaPoly1Test.Initialization (0 ms)
[ RUN      ] NasaPoly1Test.Copy
[       OK ] NasaPoly1Test.Copy (0 ms)
[ RUN      ] NasaPoly1Test.Assignment
[       OK ] NasaPoly1Test.Assignment (0 ms)
[ RUN      ] NasaPoly1Test.updateProperties
[       OK ] NasaPoly1Test.updateProperties (0 ms)
[ RUN      ] NasaPoly1Test.updatePropertiesTemp
[       OK ] NasaPoly1Test.updatePropertiesTemp (0 ms)
[----------] 5 tests from NasaPoly1Test (0 ms total)

[----------] Global test environment tear-down
[==========] 7 tests from 2 test cases ran. (11 ms total)
[  PASSED  ] 7 tests.
g++ -o build/test/kinetics/pdep.o -c -ftemplate-depth-128 -pthread -O0 -fno-inline -g -Wall -Iext/gtest/include -Iinclude test/kinetics/pdep.cpp
g++ -o build/test/kinetics/kinetics.exe -Wl,-no-undefined -pthread build/test/kinetics/pdep.o -Lbuild/lib -Lbuild/lib -lgtest -lcantera
testRunner(["build/test/kinetics/kinetics.exe.passed"], ["build/test/kinetics/kinetics.exe"])
Running main() from pdep.cpp
[==========] Running 12 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 12 tests from PdepTest
[ RUN      ] PdepTest.reactionCounts
[       OK ] PdepTest.reactionCounts (0 ms)
[ RUN      ] PdepTest.PlogLowPressure
[       OK ] PdepTest.PlogLowPressure (0 ms)
[ RUN      ] PdepTest.PlogHighPressure
[       OK ] PdepTest.PlogHighPressure (0 ms)
[ RUN      ] PdepTest.PlogDuplicatePressures
[       OK ] PdepTest.PlogDuplicatePressures (0 ms)
[ RUN      ] PdepTest.PlogCornerCases
[       OK ] PdepTest.PlogCornerCases (0 ms)
[ RUN      ] PdepTest.PlogIntermediatePressure1
[       OK ] PdepTest.PlogIntermediatePressure1 (0 ms)
[ RUN      ] PdepTest.PlogIntermediatePressure2
[       OK ] PdepTest.PlogIntermediatePressure2 (0 ms)
[ RUN      ] PdepTest.PlogIntermediatePressure3
[       OK ] PdepTest.PlogIntermediatePressure3 (0 ms)
[ RUN      ] PdepTest.ChebyshevIntermediate1
[       OK ] PdepTest.ChebyshevIntermediate1 (0 ms)
[ RUN      ] PdepTest.ChebyshevIntermediate2
[       OK ] PdepTest.ChebyshevIntermediate2 (0 ms)
[ RUN      ] PdepTest.ChebyshevIntermediateROP
[       OK ] PdepTest.ChebyshevIntermediateROP (0 ms)
[ RUN      ] PdepTest.ChebyshevEdgeCases
[       OK ] PdepTest.ChebyshevEdgeCases (0 ms)
[----------] 12 tests from PdepTest (0 ms total)

[----------] Global test environment tear-down
[==========] 12 tests from 1 test case ran. (13 ms total)
[  PASSED  ] 12 tests.
scons: *** [build/test/python/cython2.passed] Source `test/python/runCythonTests.py' not found, needed by target `build/test/python/cython2.passed'.
scons: building terminated because of errors.

__________________________

Ray,

Thanks a ton for going through the trouble of working through all these bugs and developing a custom installation for me.  This means a lot,

Andrew
buildlog.txt

Ray Speth

unread,
Feb 19, 2014, 10:22:05 PM2/19/14
to canter...@googlegroups.com
Andrew,

I just pushed a set of commits (r2734-r2739) that should fix compilation on Cygwin. There are currently 3 tests that fail, but two of those are "known failures" and I think the third is just a tolerance that needs to be adjusted. Please let me know if you run into any more problems building Cantera.

Regards,
Ray

Andrew St. George

unread,
Feb 24, 2014, 6:31:10 PM2/24/14
to canter...@googlegroups.com
Ray,

I downloaded and compiled v2.1.1 and everything works!  This is amazing!  Thank you so much for helping me out.  I appreciate all the work you've put in to make things work for Cygwin.  Grateful for your assistance,

-Andrew
Reply all
Reply to author
Forward
0 new messages