aspect icon indicating copy to clipboard operation
aspect copied to clipboard

Incompatible ASPECT dev with deal.II dev from before #14167

Open anne-glerum opened this issue 2 years ago • 5 comments

At the moment, trying to compile the current ASPECT main against deal.ii dev from 24 June fails in two places:

/home/bbpanneg/software/aspect/test_aspect_dev_07102022/aspect/source/postprocess/visualization.cc:620:20: error: ‘class dealii::DataOutFaces<3, 3>’ has no member named ‘write_deal_II_intermediate_in_parallel’; did you mean ‘write_deal_II_intermediate’?
  620 |           data_out.write_deal_II_intermediate_in_parallel(filename,
      |           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |           write_deal_II_intermediate
/home/bbpanneg/software/aspect/test_aspect_dev_07102022/aspect/source/simulator/stokes_matrix_free.cc:2524:36: error: ‘compute_no_normal_flux_constraints_on_level’ is not a member of ‘dealii::VectorTools’; did you mean ‘compute_no_normal_flux_constraints’?
 2524 |               dealii::VectorTools::compute_no_normal_flux_constraints_on_level(
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                    compute_no_normal_flux_constraints

This last place is related to https://github.com/dealii/dealii/pull/14167/ and https://github.com/geodynamics/aspect/pull/4962.

I can fix it by setting #if DEAL_II_VERSION_GTE(9,5,0) to #if DEAL_II_VERSION_GTE(9,5,1) in compat.h and source/postprocess/visualization.cc. Compiling against 9.3.3 also works.

Version details:

#  ASPECT configuration:
#        ASPECT_VERSION:            2.5.0-pre
#        GIT REVISION:              3eef13142 (main)
#        CMAKE_BUILD_TYPE:          Release
#
#        DEAL_II_DIR:               /home/projects/bbp00039/fastscape_build_files/misc/deal.IIdev-master-24th-june-22/deal.IIdev-master/lib/cmake/deal.II
#        DEAL_II VERSION:           9.5.0-pre

anne-glerum avatar Oct 07 '22 10:10 anne-glerum

ASPECT dev is only guaranteed to work with a newer deal.II master. I know this is annoying sometimes but there is no good way to detect exactly when the necessary change inside deal II happened. Of course you can comment out stuff to often make things compile. Does that make sense?

tjhei avatar Oct 07 '22 13:10 tjhei

Yes that makes sense.

I'm confused though about this:

  • the function compute_no_normal_flux_constraints_on_level in compat.h is now in deal.II
  • for an older deal.II that doesn't include that function, the function in compat.h is not found (e.g. for deal.II 9.4.0 or deal.II 9.5.0-pre)
  • even though compat.h has #if DEAL_II_VERSION_GTE(9,5,0) for the compute_no_normal_flux_constraints_on_level function

anne-glerum avatar Oct 07 '22 14:10 anne-glerum

This is how it looks like in compat.h: https://github.com/geodynamics/aspect/blob/3eef1314235db317da36e76bff00921a404d93d1/include/aspect/compat.h#L84

This mean the implementation is in there if you are not using 9.5 (so, 9.3 or 9.4). Starting with deal.II master that is newer than the ASPECT development version, the function is inside deal.II, so ASPECT does not define it.

tjhei avatar Oct 07 '22 16:10 tjhei

Ah sorry, I see I forgot the ! in my messages above for compat.h.

But from what you're saying, it should work with 9.4 (which according to my colleague it didn't, but I didn't try that myself). I also expected it to work with 9.5.0-pre, as that seems smaller than 9.5.0, but that's probably not the case then. (It doesn't seem to be taken into account https://www.dealii.org/developer/doxygen/deal.II/config_8h_source.html#l00274).

anne-glerum avatar Oct 14 '22 11:10 anne-glerum

9.5.0-pre counts as 9.5.0 and it has to in this case.

9.4 should work because we compile ASPECT with the 9.4 image on each pull request. Let me know if it doesn't.

tjhei avatar Oct 14 '22 15:10 tjhei