geodynamics / aspect

A parallel, extensible finite element code to simulate convection in both 2D and 3D models.
https://aspect.geodynamics.org/
Other
227 stars 237 forks source link

deal.II-v9.5.2 missing bundled directory #5988

Open rbrtmch opened 3 months ago

rbrtmch commented 3 months ago

Followed direction for local install on Ubuntu. Used candi.sh with local.cfg as suggested, all compiled and installed deal.II v9.5.2. Step-32.release ran without error. Now trying to configure and build aspect; cmake results in:

Imported target "dealii::dealii_release" includes non-existent path

"/opt/deal.II-v9.5.2/include/deal.II/bundled"

I checked the path and bundled folder is missing.

naliboff commented 3 months ago

@rbrtmch - That's odd, I don't recall seeing that error before and the deal.II version on my local machine also does not have include/deal.II/bundled(only include/deal.II).

A few questions:

Edit - Also, can you let us know what version of ASPECT you are building?

rbrtmch commented 3 months ago

Ubuntu 22.04, with gcc 11.4 and cmake 3.22.1 Aspect 2.6.0-pre (git clone)

cmake -DASPECT_WITH_FASTSCAPE=ON -DDEAL_II_DIR=/opt/deal.II-v9.5.2 -DFASTSCAPE_DIR=/opt/fastscapelib-fortran ..

The configuration fails when it enters the floating point exceptions test. Regardless of FastScape ON/OFF and/or WorldBuilder ON/OFF

....... all good up to this point ....

-- Determining whether we can use floating point exceptions... -- Performing Test HAVE_FP_EXCEPTIONS CMake Error in ~/Research/aspect/build/CMakeFiles/CMakeTmp/CMakeLists.txt: Imported target "dealii::dealii_debug" includes non-existent path

"/opt/deal.II-v9.5.2/include/deal.II/bundled"

in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:


I also tried with -DASPECT_USE_FP_EXCEPTIONS=OFF

===== Configuring ASPECT build targets ============= -- Writing externally readable configuration information -- Setting up test project, see tests/setup_tests.log for details. Found 1 tests. CMake Error in CMakeLists.txt: Imported target "dealii::dealii_debug" includes non-existent path

"/opt/deal.II-v9.5.2/include/deal.II/bundled"
rbrtmch commented 3 months ago

OK, shooting in the dark, but I noticed in the deal.II build detailed.log the deal.II shared library block has the following:

INTERFACE_INCLUDE_DIRECTORIES: $<INSTALL_INTERFACE:include/deal.II/bundled>

I manually created an empty include/deal.II/bundled directory in my DEAL_II_DIR and Aspect compiled without error and running a cookbook gave no errors.

tjhei commented 3 months ago

Would you mind posting your detailed.log from installing deal.II? You should be able to find this under /opt/deal.II-v9.5.2/ Additionally, do you have the candi_configure.log inside the tmp/build/deal.II/ directory?

rbrtmch commented 3 months ago

I'm using the local.cfg with candi. (Using candi.cfg with correct packages results in same behavior). Attached is the detailed log. In /opt/tmp/build/ I have directories for all components used to build deal.II but no specific deal.II directory. detailed.log

naliboff commented 3 months ago

@rbrtmch - Thanks for the summary and glad that a temporary solution was found.

A correction to my original post above - I checked on two local computers and the deal.II installation folder does contain include/deal.II/bundled.

For deal.II 9.5.2, the contents are:

UFconfig.h          umfpack_global.h        umfpack_report_vector.h
amd.h               umfpack_load_numeric.h      umfpack_save_numeric.h
amd_internal.h          umfpack_load_symbolic.h     umfpack_save_symbolic.h
tbb             umfpack_numeric.h       umfpack_scale.h
umfpack.h           umfpack_qsymbolic.h     umfpack_solve.h
umfpack_col_to_triplet.h    umfpack_report_control.h    umfpack_symbolic.h
umfpack_defaults.h      umfpack_report_info.h       umfpack_tictoc.h
umfpack_free_numeric.h      umfpack_report_matrix.h     umfpack_timer.h
umfpack_free_symbolic.h     umfpack_report_numeric.h    umfpack_transpose.h
umfpack_get_determinant.h   umfpack_report_perm.h       umfpack_triplet_to_col.h
umfpack_get_lunz.h      umfpack_report_status.h     umfpack_wsolve.h
umfpack_get_numeric.h       umfpack_report_symbolic.h
umfpack_get_symbolic.h      umfpack_report_triplet.h

For reference, I've attached my candi_configure.log file. If you can locate yours, that might point us to why that installation step did not happen on your end. candi_configure.log

rbrtmch commented 3 months ago

@naliboff @tjhei I'm not sure why my /tmp/build is empty after the installation, so not sure how to the get the candi_configure.log for deal.ii. But I think the bundled directory is not created because both tbb and umfpack are external, from the detailed log.

#        DEAL_II_WITH_TBB set up with external dependencies
#            TBB_VERSION = 2021.5
#        DEAL_II_WITH_UMFPACK set up with external dependencies
#            UMFPACK_VERSION = 5.7.9

#    Target: interface_tbb
#        TYPE: INTERFACE_LIBRARY
#        INTERFACE_LINK_LIBRARIES: /usr/lib/x86_64-linux-gnu/libtbb.so
#        INTERFACE_INCLUDE_DIRECTORIES: /usr/include
#        INTERFACE_SYSTEM_INCLUDE_DIRECTORIES: /usr/include

On this workstation I have SuiteSparse installed so umfpack is in my /usr/include/suitesparse.

#    Target: interface_umfpack
#        TYPE: INTERFACE_LIBRARY
#        INTERFACE_LINK_LIBRARIES: /usr/lib/x86_64-linux-gnu/libumfpack.so,/usr/lib/x86_64-linux-gnu/libcholmod.so,/usr/lib/x86_64-linux-gnu/libccolamd.so,/usr/lib/x86_64-linux-gnu/libcolamd.so,
/usr/lib/x86_64-linux-gnu/libcamd.so,/usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so,/usr/lib/x86_64-linux-gnu/libamd.so,/usr/lib/x86_64-linux-gnu/liblapack.so,/usr/lib/x86_64-linux-gnu/libbla
s.so,rt
#        INTERFACE_INCLUDE_DIRECTORIES: /usr/include/suitesparse
#        INTERFACE_SYSTEM_INCLUDE_DIRECTORIES: /usr/include/suitesparse

So, not sure why it has the include/deal.ii/bundled in the INTERFACE_INCLUDE_DIRECTORIES for dealii libraries if the directory is not created, again this is all way outside of my wheelhouse.

#    Target: dealii_release
#        TYPE: SHARED_LIBRARY
#        VERSION: 9.5.2
#        SOVERSION: 9.5.2
#        LINK_LIBRARIES: interface_lapack,interface_mpi,interface_tbb,interface_zlib,interface_boost,interface_trilinos,interface_umfpack,interface_kokkos,interface_hdf5,interface_sundials,inter
face_symengine,interface_p4est_release,bundled_muparser_release,object_numerics_release,object_fe_release,object_matrix_free_release,object_dofs_release,object_lac_release,object_base_release,ob
ject_cgal_release,object_gmsh_release,object_grid_release,object_hp_release,object_multigrid_release,object_distributed_release,object_algorithms_release,object_integrators_release,object_meshwo
rker_release,object_opencascade_release,object_particle_release,object_differentiation_ad_release,object_differentiation_sd_release,object_physics_elasticity_release,object_physics_release,objec
t_rol_release,object_non_matching_release,object_sundials_release,object_trilinos_release,object_arborx_release
#        INCLUDE_DIRECTORIES: /opt/tmp/build/deal.II-v9.5.2/include,/opt/tmp/unpack/deal.II-v9.5.2/include,/opt/tmp/unpack/deal.II-v9.5.2/bundled/muparser_v2_3_3//include
#        COMPILE_DEFINITIONS: NDEBUG
#        COMPILE_OPTIONS: -pedantic,-Wall,-Wextra,-Wmissing-braces,-Woverloaded-virtual,-Wpointer-arith,-Wsign-compare,-Wsuggest-override,-Wswitch,-Wsynth,-Wwrite-strings,-Wno-placement-new,-Wno
-deprecated-declarations,-Wno-literal-suffix,-Wno-psabi,-Wno-class-memaccess,-Wno-unused-local-typedefs,-fopenmp-simd,-march=native,-O2,-funroll-loops,-funroll-all-loops,-fstrict-aliasing,-Wno-u
nused-local-typedefs,-O3
#        LINK_OPTIONS: -rdynamic,-fuse-ld=gold
#        INTERFACE_LINK_LIBRARIES: interface_lapack,interface_mpi,interface_tbb,interface_zlib,interface_boost,interface_trilinos,interface_umfpack,interface_kokkos,interface_hdf5,interface_sund
ials,interface_symengine,interface_p4est_release
#        INTERFACE_INCLUDE_DIRECTORIES: $<BUILD_INTERFACE:/opt/tmp/build/deal.II-v9.5.2/include>,$<BUILD_INTERFACE:/opt/tmp/unpack/deal.II-v9.5.2/include>,$<INSTALL_INTERFACE:include>,$<BUILD_IN
TERFACE:/opt/tmp/unpack/deal.II-v9.5.2/bundled/muparser_v2_3_3//include>,$<INSTALL_INTERFACE:include/deal.II/bundled>
tamiko commented 3 months ago

@rbrtmch I am not sure why the installation procedure did not install all required headers.

In the candi log I do see three bundled components. Two of them (tbb and umfpack) do install header files. So the bundled directory should have been created and populated with these files.