From: Dafang W. <daf...@jh...> - 2017-11-10 23:05:41
|
Hi John, Please see my replies below. On 11/10/2017 11:31 AM, John Peterson wrote: > On Thu, Nov 9, 2017 at 8:32 PM, Dafang Wang <daf...@jh... > <mailto:daf...@jh...>> wrote: > > Hi, > > I got the following error when installing Libmesh v1.0.0 with > PETSC v3.6.4/3.5.4 (neither Petsc worked). > > > What does this mean? What were the error messages? 1.0.0 was tagged in > June 2016, PETSc 3.6 was tagged in summer 2015 and should definitely > work with that version of libmesh. > > I am installing an older version of Libmesh because only that > version is compatible with my user code. > > > I'm curious how extensive the incompatibilities are. It may be > something that can be remedied fairly easily with some mailing list > support. The last time my code was successfully built, it was with Libmesh 1.0.0 and Petsc 3.5.4; it was built in Aug 2016. However, I couldn't even reproduce the same installation on another linux desktop yesterday. My code got different errors when compiling with various recent versions of Libmesh (see below). It seems Libmesh removed some data structures such as "mesh_data.h", so I am not sure how much work it will take to adapt my user code to the latest version of Libmesh. _*When compiling my code with Libmesh 1.2.0 and the latest Petsc (both were successfully built), I got the following error:*_ /home/dwang/research/libmesh_mech/latest/CardiacSystemMaker.hpp:7:10: fatal error: petsc.h: No such file or directory #include <petsc.h> ^~~~~~~~~ compilation terminated. make[2]: *** [CMakeFiles/cardiacMech.dir/build.make:92: CMakeFiles/cardiacMech.dir/CardiacSystemMaker.cpp.o] Error 1 [ 33%] Building CXX object CMakeFiles/cardiacMech.dir/CarpMeshIO.cpp.o /home/dwang/research/libmesh_mech/latest/CarpMeshIO.cpp:24:10: fatal error: libmesh/mesh_data.h: No such file or directory #include <libmesh/mesh_data.h> ^~~~~~~~~~~~~~~~~~~~~ compilation terminated. ------------------------------------------------------------------------ *_When compiling my code with Libmesh 1.1.0 and Petsc 3.7.7, I got the folliwng error:_* /home/dwang/research/libmesh_mech/LibmeshMechanic_2017_0701/parallel.cpp:8:15: error: template-id ‘send<unsigned int>’ for ‘void libMesh::Parallel::Communicator::send(unsigned int, unsigned int&, const libMesh::Parallel::MessageTag&) const’ does not match any template declaration template void libMesh::Parallel::Communicator::send<unsigned int>(unsigned int, unsigned int&, libMesh::Parallel::MessageTag const&) const; ^~~~~~~ In file included from /home/dwang/program/libmesh-1.1.0/RelWithDebInfo/include/libmesh/parallel.h:1302:0, from /home/dwang/research/libmesh_mech/LibmeshMechanic_2017_0701/utility.hpp:14, from /home/dwang/research/libmesh_mech/LibmeshMechanic_2017_0701/parallel.cpp:4: /home/dwang/program/libmesh-1.1.0/RelWithDebInfo/include/libmesh/parallel_communicator_specializations:114:10: note: candidates are: template<class T> void libMesh::Parallel::Communicator::send(unsigned int, const std::vector<T>&, const libMesh::Parallel::DataType&, libMesh::Parallel::Request&, const libMesh::Parallel::MessageTag&) const void send (const unsigned int dest_processor_id, ^~~~ /home/dwang/program/libmesh-1.1.0/RelWithDebInfo/include/libmesh/parallel_communicator_specializations:108:10: note: template<class T> void libMesh::Parallel::Communicator::send(unsigned int, const std::vector<T>&, const libMesh::Parallel::DataType&, const libMesh::Parallel::MessageTag&) const void send (const unsigned int dest_processor_id, ^~~~ /home/dwang/program/libmesh-1.1.0/RelWithDebInfo/include/libmesh/parallel_communicator_specializations:102:10: note: template<class T> void libMesh::Parallel::Communicator::send(unsigned int, const std::vector<T>&, libMesh::Parallel::Request&, const libMesh::Parallel::MessageTag&) const void send (const unsigned int dest_processor_id, > Any advice would be appreciated. I only found 3 threads on Google > regarding this error. > > > nc4internal.c:393:1: error: conflicting types for > ‘nc4_rec_find_nc_type’ > nc4_rec_find_nc_type(NC_GRP_INFO_T *start_grp, nc_type > target_nc_typeid) > ^~~~~~~~~~~~~~~~~~~~ > In file included from nc4internal.c:16:0: > ../include/nc4internal.h:319:17: note: previous declaration of > ‘nc4_rec_find_nc_type’ was here > NC_TYPE_INFO_T *nc4_rec_find_nc_type(NC_GRP_INFO_T *start_grp, > hid_t target_nc_typeid); > ^~~~~~~~~~~~~~~~~~~~ > make[3]: *** [Makefile:493: libnetcdf4_la-nc4internal.lo] Error 1 > make[3]: *** Waiting for unfinished jobs.... > make[3]: Leaving directory > '/home/dwang/program/libmesh-1.0.0/contrib/netcdf/v4/libsrc4' > make[2]: *** [Makefile:610: install-recursive] Error 1 > make[2]: Leaving directory > '/home/dwang/program/libmesh-1.0.0/contrib/netcdf/v4' > make[1]: *** [Makefile:978: install-recursive] Error 1 > make[1]: Leaving directory '/home/dwang/program/libmesh-1.0.0/contrib' > make: *** [Makefile:28784: install-recursive] Error 1 > > > I believe this bug was fixed by Martin Luethi in libmesh > commit 896268d7, however the first version of libmesh that contains > that fix is 1.1.0. You could try cherry-picking that commit and seeing > if it fixes the problem, but your best long term bet is to just update > your user code if possible. John, you are correct. The above error didn't arise when I was building with Libmesh 1.1.0. However, I got another error (see my replies above). In summary, my last working code was using Libmesh 1.0.0 and Petsc 3.5.4, and it was built over 1 year ago. My goal now is to make my code work again with minimum effort. Which version of Libmesh/Petsc would you suggest me try? Thanks very much for your advice! Best, Dafang |