Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue with metaphysicl tests when running "make check" #3889

Open
CBqk3762 opened this issue Jun 26, 2024 · 5 comments
Open

Issue with metaphysicl tests when running "make check" #3889

CBqk3762 opened this issue Jun 26, 2024 · 5 comments

Comments

@CBqk3762
Copy link

Hi,

I've been having problems with code dependent on libmesh (moose) which seem to trace back to libmesh itself. I have just reconfigured and run "make" successfully and attempted to run "make check", this fails when it gets to using the file "metaphysicl/test/nd_derivs_unit.C"

The errors are all similar:

In file included from ../../../../contrib/metaphysicl/test/nd_derivs_unit.C(5):
../../../../contrib/metaphysicl/test/math_structs.h(433): error: template argument list must match the parameter list
  metaphysicl_const_return_def(operator(), VectorValue<double>)
  ^

Though the specific error varies, sometimes
error: a type qualifier is not allowed on a nonmember function metaphysicl_const_return_def(operator(), VectorValue<double>)
, sometimes,
error: "this" may only be used inside a nonstatic member function metaphysicl_const_return_def(operator(), VectorValue<double>)
Which seems like errors within the file/test rather than my libmesh build? I am unsure.

Before I began building I sourced the profile I use for Moose to set compilers etc:

module purge
module load rhel8/default-icl python/3.11.0-icl gcc
export CC=mpicc
export CXX=mpicxx
export F90=mpif90
export F77=mpif77
export FC=mpif90
export MOOSE_DIR=/home/ir-byer1/rds/rds-ukaea-ap002-mOlK9qn0PlQ/ir-byer1/moose-dev-gcc-thm/moose
unset I_MPI_PMI_LIBRARY

And I ran configure with flags for VTK as follows

../configure --with-vtk-include=/home/ir-byer1/rds/rds-ukaea-ap002-mOlK9qn0PlQ/ir-byer1/moose-dev-gcc-thm/vtk/include --with-vtk-lib=/home/ir-byer1/rds/rds-ukaea-ap002-mOlK9qn0PlQ/ir-byer1/moose-dev-gcc-thm/vtk/lib64

Do you have any thoughts on what might be happening?
I've attached a file showing all the errors

libmesh_check_errs.txt

@roystgnr
Copy link
Member

What's your underlying compiler version?

Pinging @lindsayad since he wrote the macros triggering the failures, but it looks to me as if your compiler is complaining about seeing this inside decltype in a trailing return type? But that would make no sense - the whole point of a trailing return type is to allow function arguments (including the implicit this for non-static member functions) to be in scope. If that's the problem then we might be able to work around it by switching to an auto return type, but I wouldn't want to trust a compiler that required the workaround.

@lindsayad
Copy link
Member

lindsayad commented Jun 26, 2024

What is icl? I sense Intel compiler. The MOOSE team has had horrible luck with Intel compilers over the years to the point that we (MOOSE team) stopped trying to support them about five years ago

@CBqk3762
Copy link
Author

I'm using intel oneAPI compilers from 2021 and Make v4.2.1 on a rhel8 cluster, these are just the defaults. I'll try changing these thanks!

Could I also check what the latest version of VTK that libmesh compiles with is?

@lindsayad
Copy link
Member

I've compiled libmesh with vtk 9.3. That's my only data point. Maybe @roystgnr can say more

@roystgnr
Copy link
Member

You're ahead of me - at a quick glance I've been testing against 9.2.6 and 9.3.0rc1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants