prisms-center / phaseField

PRISMS-PF: An Open-Source Phase-Field Modeling Framework
https://prisms-center.github.io/phaseField/
Other
229 stars 120 forks source link

phaseField v2.1.2 build fails #153

Closed ohcfe closed 2 months ago

ohcfe commented 5 years ago

I am trying to build PRISMS-PF on my workstation, the build fails I have pasted the build output here

my build environment is an up-to-date arch linux workstation, whith the latest version of deal.ii from AUR 9.1.1-2

The most pertinent error from build.log seems to be this:

/home/mgesing/src/phaseField/src/matrixfree/checkpoint.cc:66:13: error: no matching function for call to ‘dealii::parallel::distributed::Triangulation<2, 2>::save(const char [13])’
   66 |             triangulation.save ("restart.mesh");
      |             ^~~~~~~~~~~~~
In file included from /usr/include/deal.II/fe/mapping.h:26,
                 from /usr/include/deal.II/fe/fe.h:26,
                 from /usr/include/deal.II/fe/fe_system.h:27,
                 from /home/mgesing/src/phaseField/src/matrixfree/../../include/matrixFreePDE.h:15,
                 from /home/mgesing/src/phaseField/src/matrixfree/checkpoint.cc:1:
/usr/include/deal.II/grid/tria.h:3436:3: note: candidate: ‘template<class Archive> void dealii::Triangulation<dim, spacedim>::save(Archive&, unsigned int) const [with Archive = Archive; int dim = 2; int spacedim = 2]’
 3436 |   save(Archive &ar, const unsigned int version) const;
      |   ^~~~
/usr/include/deal.II/grid/tria.h:3436:3: note:   template argument deduction/substitution failed:
/home/mgesing/src/phaseField/src/matrixfree/checkpoint.cc:66:13: note:   candidate expects 2 arguments, 1 provided
   66 |             triangulation.save ("restart.mesh");
      |             ^~~~~~~~~~~~~

Has the API for deal.ii changed? Should I be building against a different version of deal.ii?

david-montiel-t commented 5 years ago

Hello,

Let me look into this and I will get back to you later.

David

On Fri, Nov 15, 2019 at 10:21 AM ohcfe notifications@github.com wrote:

I am trying to build PRISMS-PF on my workstation, the build fails I have pasted the build output here https://gist.github.com/ohcfe/c4ce0f1a9704999d23caa79fb27c41a8

my build environment is an up-to-date arch linux workstation, whith the latest version of deal.ii from AUR 9.1.1-2

The most pertinent error from build.log seems to be this:

/home/mgesing/src/phaseField/src/matrixfree/checkpoint.cc:66:13: error: no matching function for call to ‘dealii::parallel::distributed::Triangulation<2, 2>::save(const char [13])’

66 | triangulation.save ("restart.mesh");

  |             ^~~~~~~~~~~~~

In file included from /usr/include/deal.II/fe/mapping.h:26,

             from /usr/include/deal.II/fe/fe.h:26,

             from /usr/include/deal.II/fe/fe_system.h:27,

             from /home/mgesing/src/phaseField/src/matrixfree/../../include/matrixFreePDE.h:15,

             from /home/mgesing/src/phaseField/src/matrixfree/checkpoint.cc:1:

/usr/include/deal.II/grid/tria.h:3436:3: note: candidate: ‘template void dealii::Triangulation<dim, spacedim>::save(Archive&, unsigned int) const [with Archive = Archive; int dim = 2; int spacedim = 2]’

3436 | save(Archive &ar, const unsigned int version) const;

  |   ^~~~

/usr/include/deal.II/grid/tria.h:3436:3: note: template argument deduction/substitution failed:

/home/mgesing/src/phaseField/src/matrixfree/checkpoint.cc:66:13: note: candidate expects 2 arguments, 1 provided

66 | triangulation.save ("restart.mesh");

  |             ^~~~~~~~~~~~~

Has the API for deal.ii changed? Should I be building against a different version of deal.ii?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/prisms-center/phaseField/issues/153?email_source=notifications&email_token=AD3FA4ZGMY6A4GT2UXCTE73QT247RA5CNFSM4JN4HWIKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HZUN6MQ, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD3FA43G32NIA52EFKZVYXDQT247RANCNFSM4JN4HWIA .

david-montiel-t commented 5 years ago

Have you tried building with a previous version of deal.ii?

On Fri, Nov 15, 2019, 10:28 AM David Montiel Taboada dmontiel@umich.edu wrote:

Hello,

Let me look into this and I will get back to you later.

David

On Fri, Nov 15, 2019 at 10:21 AM ohcfe notifications@github.com wrote:

I am trying to build PRISMS-PF on my workstation, the build fails I have pasted the build output here https://gist.github.com/ohcfe/c4ce0f1a9704999d23caa79fb27c41a8

my build environment is an up-to-date arch linux workstation, whith the latest version of deal.ii from AUR 9.1.1-2

The most pertinent error from build.log seems to be this:

/home/mgesing/src/phaseField/src/matrixfree/checkpoint.cc:66:13: error: no matching function for call to ‘dealii::parallel::distributed::Triangulation<2, 2>::save(const char [13])’

66 | triangulation.save ("restart.mesh");

  |             ^~~~~~~~~~~~~

In file included from /usr/include/deal.II/fe/mapping.h:26,

             from /usr/include/deal.II/fe/fe.h:26,

             from /usr/include/deal.II/fe/fe_system.h:27,

             from /home/mgesing/src/phaseField/src/matrixfree/../../include/matrixFreePDE.h:15,

             from /home/mgesing/src/phaseField/src/matrixfree/checkpoint.cc:1:

/usr/include/deal.II/grid/tria.h:3436:3: note: candidate: ‘template void dealii::Triangulation<dim, spacedim>::save(Archive&, unsigned int) const [with Archive = Archive; int dim = 2; int spacedim = 2]’

3436 | save(Archive &ar, const unsigned int version) const;

  |   ^~~~

/usr/include/deal.II/grid/tria.h:3436:3: note: template argument deduction/substitution failed:

/home/mgesing/src/phaseField/src/matrixfree/checkpoint.cc:66:13: note: candidate expects 2 arguments, 1 provided

66 | triangulation.save ("restart.mesh");

  |             ^~~~~~~~~~~~~

Has the API for deal.ii changed? Should I be building against a different version of deal.ii?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/prisms-center/phaseField/issues/153?email_source=notifications&email_token=AD3FA4ZGMY6A4GT2UXCTE73QT247RA5CNFSM4JN4HWIKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HZUN6MQ, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD3FA43G32NIA52EFKZVYXDQT247RANCNFSM4JN4HWIA .

ohcfe commented 5 years ago

Have you tried building with a previous version of deal.ii?

I am currently building deal.ii 9.0.0 to try and build against that. . . I'll update this issue when I try building against that.

david-montiel-t commented 5 years ago

Thank you!

On Fri, Nov 15, 2019, 1:32 PM ohcfe notifications@github.com wrote:

Have you tried building with a previous version of deal.ii?

I am currently building deal.ii 9.0.0 to try and build against that. . . I'll update this issue when I try building against that.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/prisms-center/phaseField/issues/153?email_source=notifications&email_token=AD3FA47WE32QAMOQL4HSRPDQT3TMXA5CNFSM4JN4HWIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEGKKAA#issuecomment-554476800, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD3FA44DFWJYZUZSPV2IPZ3QT3TMXANCNFSM4JN4HWIA .

ohcfe commented 5 years ago

I'm having difficulties compiling deal.ii 9.0.0 to run this test, it turns out my version of BOOST is too new and I'm running into this issue. . . I may give it one more try by trying to get an old version of BOOST installed in order to compile the old version of deal.ii in order to compile phaseField. . . Or I may just switch to a machine using a less-frequently-updated linux distro for this work.

david-montiel-t commented 5 years ago

Thank you for the update.

I hope either of those options work.

We will look into this.

David

On Tue, Nov 19, 2019, 11:08 AM ohcfe notifications@github.com wrote:

I'm having difficulties compiling deal.ii 9.0.0 to run this test, it turns out my version of BOOST is too new and I'm running into this issue https://github.com/dealii/dealii/issues/7934. . . I may give it one more try by trying to get an old version of BOOST installed in order to compile the old version of deal.ii in order to compile phaseField. . . Or I may just switch to a machine using a less-frequently-updated linux distro for this work.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/prisms-center/phaseField/issues/153?email_source=notifications&email_token=AD3FA46CW3NXW7E6O46UBHLQUQFQXA5CNFSM4JN4HWIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEOXILI#issuecomment-555578413, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD3FA4YYF5XBSVTPZWTHSQLQUQFQXANCNFSM4JN4HWIA .

ohcfe commented 5 years ago

I managed to build deal.ii 9.0.0 on a system running CentOS 7. I was able to reproduce the same way of failing to build phaseField 2.1.2, see the build log here

ohcfe commented 5 years ago

Looking at the commands used to make the docker image I can see the versions of all the deal.II dependancies that are being used (lines 44-58) and the cmake command used to start the deal.II build (line 62). I think I need to chase down these specific package versions for all the dependencies, build them, and then use that command to build deal.II in the way phaseField expects. It'll take some time, but I'll give it a try.

david-montiel-t commented 5 years ago

Thank you for the update.

Let me know if you run into any particular issues I can help with.

Best,

David

On Fri, Nov 22, 2019 at 2:18 PM ohcfe notifications@github.com wrote:

Looking at the commands used to make the docker image https://hub.docker.com/layers/stvdwtt/prismspf/prismspf/images/sha256-81af92dd9c8493627067c47fd156c9238aabb8264fb8315f615d189cb3d376f5 I can see the versions of all the deal.II dependancies that are being used (lines 44-58) and the cmake command used to start the deal.II build (line 62). I think I need to chase down these specific package versions for all the dependencies, build them, and then use that command to build deal.II in the way phaseField expects. It'll take some time, but I'll give it a try.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/prisms-center/phaseField/issues/153?email_source=notifications&email_token=AD3FA44ZUNAWV6NR4YOPGXDQVAWAHA5CNFSM4JN4HWIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEE6THDY#issuecomment-557659023, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD3FA465BEWGVRCQUY6LEJTQVAWAHANCNFSM4JN4HWIA .

ohcfe commented 5 years ago

I could use some help navigating which features are required on some of the larger dependancies for deal.ii: opencascade, hdf5, and trilionos are large packages on their own, which have many configuration options themselves. It would be helpful if you could share which are the important features from these for prisms-phaseField

ohcfe commented 5 years ago

Also, it would be useful to know which dependencies in the dependency tree are only required at compile time, and which are shared libraries which need to be accessible to run phaseField

david-montiel-t commented 5 years ago

Hello, ohcfe. I will check on that and will get back to you tomorrow.

David

On Mon, Nov 25, 2019, 5:36 PM ohcfe notifications@github.com wrote:

Also, it would be useful to know which dependencies in the dependency tree are only required at compile time, and which are shared libraries which need to be accessible to run phaseField

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/prisms-center/phaseField/issues/153?email_source=notifications&email_token=AD3FA4YMMKEVJQH7TJ735NDQVRHNHA5CNFSM4JN4HWIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFEBIAQ#issuecomment-558371842, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD3FA47QUMKPRGGYZFKUIW3QVRHNHANCNFSM4JN4HWIA .

stvdwtt commented 5 years ago

I believe the only dependencies are boost, mpi, p4est, and blas. You definitely don’t need to build petsc, slepsc, opencascade, trilinos, or hdf5.

Off the top of my head I can’t remember what you only need at compile time. I think at the very least you need dealii and p4est in your path at run time.

ohcfe commented 5 years ago

@stvdwtt I'm getting my information about dependencies from the following command: docker history stvdwtt/prismspf:prismspf --no-trunc

ENV DEAL_II_DIR=/home/dealii/dealii-v9.0.0
ENV SCALAPACK_DIR=/home/dealii/libs/petsc-3.7.6
ENV TRILINOS_DIR=/home/dealii/libs/trilinos-release-12-10-1
ENV SUPERLU_DIR=/home/dealii/libs/superlu_dist_5.1.2
ENV SUNDIALS_DIR=/home/dealii/libs/sundials-3.1.0
ENV SLEPC_DIR=/home/dealii/libs/slepc-3.7.3
ENV PETSC_DIR=/home/dealii/libs/petsc-3.7.6
ENV PARMETIS_DIR=/home/dealii/libs/parmetis-4.0.3
ENV P4EST_DIR=/home/dealii/libs/p4est-2.0
ENV OPENCASCADE_DIR=/home/dealii/libs/oce-OCE-0.18.2
ENV NANOFLANN_DIR=/home/dealii/libs/nanoflann-v1.2.3
ENV METIS_DIR=/home/dealii/libs/parmetis-4.0.3
ENV HDF5_DIR=/home/dealii/libs/hdf5-1.10.1
ENV ASSIMP_DIR=/home/dealii/libs/assimp-3.3.1
ENV ARPACK_DIR=/home/dealii/libs/arpack-ng-3.6.2
ENV ADOLC_DIR=/home/dealii/libs/adolc-2.6.4-rc1
ENV HOME=/home/dealii
ENV FF=mpif77
ENV FC=mpif90
ENV CXX=mpicxx
ENV CC=mpicc
ENV USER=dealii
ENV HOME=/home/dealii
ENV LC_ALL=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LANG=en_US.UTF-8
BUILD_TYPE=DebugRelease VER=v9.0.0 /bin/sh -c git clone \
    https://github.com/dealii/dealii.git dealii-$VER-src && \
    cd dealii-$VER-src &&  \
    git checkout $VER &&  \
    mkdir build && cd build &&  \
    cmake -DDEAL_II_WITH_MPI=ON \
    -DDEAL_II_COMPONENT_EXAMPLES=OFF \
        -DCMAKE_INSTALL_PREFIX=~/dealii-$VER \
        -DCMAKE_BUILD_TYPE=$BUILD_TYPE  \
        -GNinja   \
        ../ &&  \
    ninja install &&  \
    ninja test &&  \
    cp summary.log ~/dealii-$VER/summary.log && \
    cd .. && rm -rf build .git

you say:

I believe the only dependencies are boost, mpi, p4est, and blas. You definitely don’t need to build petsc, slepsc, opencascade, trilinos, or hdf5.

If the others are not necessary, why are they included with the docker image?

stvdwtt commented 5 years ago

@ohcfe The docker image builds off of the standard deal.ii docker image. They add pretty much every possible package that deal.ii interfaces with so that the image is useful to the broadest audience. We only use a small subset of the libraries that deal.ii can interface with so you don't have to install all of them.

stvdwtt commented 5 years ago

@ohcfe Also, I checked the deal.ii API and it doesn't seem to have changed for the save method of parallel::distributed::triangulation. I'm really unclear on why you'd get this error.

Your error log shows that save is being called for the non-distributed triangulation (with one argument instead of two). I'm not clear why that is being called at all. The triangulation is distributed, which has its own save method.

ohcfe commented 5 years ago

@ohcfe Also, I checked the deal.ii API and it doesn't seem to have changed for the save method of parallel::distributed::triangulation. I'm really unclear on why you'd get this error.

Your error log shows that save is being called for the non-distributed triangulation (with one argument instead of two). I'm not clear why that is being called at all. The triangulation is distributed, which has its own save method.

Steps to reproduce my error, in case you want to debug the mysterious calls to non-distributed triangulation:

cd ~/src
git clone https://github.com/dealii/dealii.git
cd dealii
git checkout v9.0.0
mkdir build
cd build
sudo mkdir /opt/dealii
sudo chown myUser:myUser /opt/dealii
cmake -DCMAKE_INSTALL_PREFIX=/opt/dealii/9.0.0 ../
make -j18 install
cd ~/src
git clone https://github.com/prisms-center/phaseField.git
cd phaseField
git checkout v2.1.2
mkdir build
cd build
cmake3 -Ddeal.II_DIR=/opt/dealii/9.0.0/lib/cmake/deal.II ../
make -j18
wangtianle576 commented 3 years ago

I have the same problem as you. Could you tell me how to solve this problem about PRISMS-PF installing, thank you.

david-montiel-t commented 3 years ago

Hello wangtianle576,

Can you please provide the following information:

1) What is the platform and operating system (including version) you are using?

2) What the deal.II installation you are using, and how did you install it?

3) What PRISMS-PF installation are you using (traditional or Docker-based)?

4) What error message are you getting and in what step of the compilation?

Thank you,

David

On Thu, Mar 25, 2021 at 11:11 PM wangtianle576 @.***> wrote:

I have the same problem as you. Could you tell me how to solve this problem about PRISMS-PF installing, thank you.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/prisms-center/phaseField/issues/153#issuecomment-807904100, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD3FA45L5AO6VGVXKBS24SLTFP3NZANCNFSM4JN4HWIA .