I am running into some confusions about the CGNS lib.
The CGNS 3.3.0 is too much newer than my CentOS 6. So I have to compile it with hdf5 (and szip, I am not sure if it is necessary). However, after that, when I tried to import CGNS grid.
wget http://cgns.sourceforge.net/CGNSFiles/Chris/bump.cgns.gz
gunzip bump.cgns.gz
pyfr import -t cgns bump.cgns bump.pyfrm
I got this error:
Traceback (most recent call last):
File "/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/ctypesutil.py", line 22, in load_library
File "/op/anaconda3/lib/python3.5/ctypes/__init__.py", line 347, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /usr/local/lib/libcgns.so: undefined symbol: H5T_NATIVE_SCHAR_g
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/op/anaconda3/bin/pyfr", line 11, in <module>
load_entry_point('pyfr==1.5.0', 'console_scripts', 'pyfr')()
File "/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/__main__.py", line 110, in main
File "/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/__main__.py", line 118, in process_import
File "/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/readers/__init__.py", line 11, in get_reader_by_name
File "/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/readers/cgns.py", line 374, in __init__
File "/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/readers/cgns.py", line 34, in __init__
File "/op/anaconda3/lib/python3.5/site-packages/pyfr-1.5.0-py3.5.egg/pyfr/ctypesutil.py", line 31, in load_library
OSError: Unable to load cgns
I googled “H5T_NATIVE_SCHAR_g”, and I found the description at H5T: Datatype Interface. It seems a fundamental part of hdf5.
My compilation of CGNS is as follows:
#szip
wget https://support.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz
tar xf szip-2.1.tar.gz
cd szip-2.1
./configure --prefix=/usr/local
make
make install
cd
#hdf5
wget -b https://support.hdfgroup.org/ftp/HDF5/current18/src/hdf5-1.8.18.tar
tar xf hdf5-1.8.18.tar
cd hdf5-1.8.18
./configure --prefix=/usr/local --enable-parallel --with-szlib
make
make install
cd
#CGNS
wget https://github.com/CGNS/CGNS/archive/v3.3.0.tar.gz
tar xf v3.3.0.tar.gz
cd CGNS-3.3.0/src
export FC=gfortran
export FCFLAGS=-fPIC
#"--with-hdf5=/usr/local" in order to avoid "-I" flag.
./configure --prefix=/usr/local --with-mpi --with-szip --with-hdf5=/usr/local --enable-64bit --enable-shared=all --enable-parallel
make
make install
cd
I am using GCC 4.9.2 and CentOS 6 with OpenMPI
[root@localhost cgns_file]# mpicc --version
gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[root@localhost cgns_file]# uname -a
Linux localhost.localdomain 2.6.32-042stab120.11 #1 SMP Wed Nov 16 12:05:45 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost cgns_file]# mpiexec --version
mpiexec (OpenRTE) 2.0.1
Report bugs to http://www.open-mpi.org/community/help/
Additionally, I want to know how important the threadsafety is to pyfr when I need to use OpenMP? I found there is an threadsafety configure option in HDF5 but I did not select it.