ORNL/CabanaPD

Compilation error: Elastic Wave

diehlpk opened this issue · 3 comments

Following the build instructions, I get this error:

[ 50%] Building CXX object examples/CMakeFiles/ElasticWave.dir/elastic_wave.cpp.o
In file included from /home/diehlpk/Compile/CabanaPD/src/CabanaPD.hpp:16,
                 from /home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:19:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:193:17: error: ‘Gather’ in namespace ‘Cabana’ does not name a template type
         Cabana::Gather<halo_type, typename ParticleType::aosoa_u_type>;
                 ^~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:193:9: note: suggested alternative: ‘gather’
         Cabana::Gather<halo_type, typename ParticleType::aosoa_u_type>;
         ^~~~~~
         gather
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:194:21: error: ‘gather_u_type’ was not declared in this scope
     std::shared_ptr<gather_u_type> gather_u;
                     ^~~~~~~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:194:34: error: template argument 1 is invalid
     std::shared_ptr<gather_u_type> gather_u;
                                  ^
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp: In constructor ‘CabanaPD::Comm<ParticleType, CabanaPD::PMB>::Comm(ParticleType&, int)’:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:229:37: error: ‘gather_u_type’ was not declared in this scope
         gather_u = std::make_shared<gather_u_type>( *halo, particles._aosoa_u );
                                     ^~~~~~~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:229:37: note: suggested alternative: ‘gather_u’
         gather_u = std::make_shared<gather_u_type>( *halo, particles._aosoa_u );
                                     ^~~~~~~~~~~~~
                                     gather_u
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:230:17: error: base operand of ‘->’ is not a pointer
         gather_u->apply();
                 ^~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp: In member function ‘void CabanaPD::Comm<ParticleType, CabanaPD::PMB>::gatherDisplacement()’:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:247:41: error: base operand of ‘->’ is not a pointer
     void gatherDisplacement() { gather_u->apply(); }
                                         ^~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp: At global scope:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:264:17: error: ‘Gather’ in namespace ‘Cabana’ does not name a template type
         Cabana::Gather<halo_type, typename ParticleType::aosoa_m_type>;
                 ^~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:264:9: note: suggested alternative: ‘gather’
         Cabana::Gather<halo_type, typename ParticleType::aosoa_m_type>;
         ^~~~~~
         gather
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:266:17: error: ‘Gather’ in namespace ‘Cabana’ does not name a template type
         Cabana::Gather<halo_type, typename ParticleType::aosoa_theta_type>;
                 ^~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:266:9: note: suggested alternative: ‘gather’
         Cabana::Gather<halo_type, typename ParticleType::aosoa_theta_type>;
         ^~~~~~
         gather
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:267:21: error: ‘gather_m_type’ was not declared in this scope
     std::shared_ptr<gather_m_type> gather_m;
                     ^~~~~~~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:267:21: note: suggested alternative: ‘gather_u’
     std::shared_ptr<gather_m_type> gather_m;
                     ^~~~~~~~~~~~~
                     gather_u
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:267:34: error: template argument 1 is invalid
     std::shared_ptr<gather_m_type> gather_m;
                                  ^
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:268:21: error: ‘gather_theta_type’ was not declared in this scope
     std::shared_ptr<gather_theta_type> gather_theta;
                     ^~~~~~~~~~~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:268:21: note: suggested alternative: ‘gatherDilatation’
     std::shared_ptr<gather_theta_type> gather_theta;
                     ^~~~~~~~~~~~~~~~~
                     gatherDilatation
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:268:38: error: template argument 1 is invalid
     std::shared_ptr<gather_theta_type> gather_theta;
                                      ^
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp: In constructor ‘CabanaPD::Comm<ParticleType, CabanaPD::LPS>::Comm(ParticleType&, int)’:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:273:37: error: ‘gather_m_type’ was not declared in this scope
         gather_m = std::make_shared<gather_m_type>( *halo, particles._aosoa_m );
                                     ^~~~~~~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:273:37: note: suggested alternative: ‘gather_m’
         gather_m = std::make_shared<gather_m_type>( *halo, particles._aosoa_m );
                                     ^~~~~~~~~~~~~
                                     gather_m
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:274:41: error: ‘gather_theta_type’ was not declared in this scope
         gather_theta = std::make_shared<gather_theta_type>(
                                         ^~~~~~~~~~~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:274:41: note: suggested alternative: ‘gather_theta’
         gather_theta = std::make_shared<gather_theta_type>(
                                         ^~~~~~~~~~~~~~~~~
                                         gather_theta
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp: In member function ‘void CabanaPD::Comm<ParticleType, CabanaPD::LPS>::gatherDilatation()’:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:279:43: error: base operand of ‘->’ is not a pointer
     void gatherDilatation() { gather_theta->apply(); }
                                           ^~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp: In member function ‘void CabanaPD::Comm<ParticleType, CabanaPD::LPS>::gatherWeightedVolume()’:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:280:43: error: base operand of ‘->’ is not a pointer
     void gatherWeightedVolume() { gather_m->apply(); }
                                           ^~
In file included from /home/diehlpk/Compile/CabanaPD/src/CabanaPD_Force.hpp:67,
                 from /home/diehlpk/Compile/CabanaPD/src/CabanaPD.hpp:17,
                 from /home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:19:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp: In member function ‘void CabanaPD::Particles<DeviceType, CabanaPD::PMB, Dimension>::create_particles_from_csv(const ExecSpace&, std::__cxx11::string)’:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:323:9: error: ‘_aosoa_m’ was not declared in this scope
         _aosoa_m.resize( num_particles );
         ^~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:323:9: note: suggested alternative: ‘_aosoa_x’
         _aosoa_m.resize( num_particles );
         ^~~~~~~~
         _aosoa_x
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:324:9: error: ‘_aosoa_theta’ was not declared in this scope
         _aosoa_theta.resize( num_particles );
         ^~~~~~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:324:9: note: suggested alternative: ‘_aosoa_other’
         _aosoa_theta.resize( num_particles );
         ^~~~~~~~~~~~
         _aosoa_other
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:326:14: error: conflicting declaration ‘auto x’
         auto x = slice_x();
              ^
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:289:28: note: previous declaration as ‘std::vector<double> x’
        std::vector<double> x , y  , volume;
                            ^
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:335:22: error: there are no arguments to ‘slice_theta’ that depend on a template parameter, so a declaration of ‘slice_theta’ must be available [-fpermissive]
         auto theta = slice_theta();
                      ^~~~~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:335:22: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:337:18: error: there are no arguments to ‘slice_m’ that depend on a template parameter, so a declaration of ‘slice_m’ must be available [-fpermissive]
         auto m = slice_m();
                  ^~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:360:30: error: no match for call to ‘(std::vector<double>) (size_t&, int)’
                  x( index, 0 ) = x[index];
                              ^
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:361:31: error: no match for call to ‘(std::vector<double>) (size_t&, int)’
                   x( index, 1 ) = y[index];
                               ^
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:362:32: error: no match for call to ‘(std::vector<double>) (size_t&, int)’
                    x( index, 2 ) = 0;
                                ^
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp: In member function ‘void CabanaPD::Particles<DeviceType, CabanaPD::PMB, Dimension>::output(int, double)’:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:428:51: error: ‘writePartialRangeTimeStep’ is not a member of ‘Cajita::Experimental::SiloParticleOutput’
         Cajita::Experimental::SiloParticleOutput::writePartialRangeTimeStep(
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:428:51: note: suggested alternative: ‘writeTimeStep’
         Cajita::Experimental::SiloParticleOutput::writePartialRangeTimeStep(
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
                                                   writeTimeStep
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp: In member function ‘void CabanaPD::Particles<DeviceType, CabanaPD::LPS, Dimension>::output(int, double)’:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:540:51: error: ‘writePartialRangeTimeStep’ is not a member of ‘Cajita::Experimental::SiloParticleOutput’
         Cajita::Experimental::SiloParticleOutput::writePartialRangeTimeStep(
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Particles.hpp:540:51: note: suggested alternative: ‘writeTimeStep’
         Cajita::Experimental::SiloParticleOutput::writePartialRangeTimeStep(
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
                                                   writeTimeStep
In file included from /home/diehlpk/Compile/CabanaPD/src/CabanaPD.hpp:16,
                 from /home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:19:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp: In instantiation of ‘void CabanaPD::HaloIds<LocalGridType, PositionSliceType>::build(const LocalGridType&) [with LocalGridType = Cajita::LocalGrid<Cajita::UniformMesh<double> >; PositionSliceType = Cabana::Slice<double [3], Kokkos::HostSpace, Cabana::DefaultAccessMemory, 1, 3>]’:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:67:9:   required from ‘CabanaPD::HaloIds<LocalGridType, PositionSliceType>::HaloIds(const LocalGridType&, const PositionSliceType&, int, int) [with LocalGridType = Cajita::LocalGrid<Cajita::UniformMesh<double> >; PositionSliceType = Cabana::Slice<double [3], Kokkos::HostSpace, Cabana::DefaultAccessMemory, 1, 3>]’
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:241:16:   required from ‘auto CabanaPD::Comm<ParticleType, CabanaPD::PMB>::createHaloIds(const LocalGridType&, const PositionSliceType&, int, int) [with LocalGridType = Cajita::LocalGrid<Cajita::UniformMesh<double> >; PositionSliceType = Cabana::Slice<double [3], Kokkos::HostSpace, Cabana::DefaultAccessMemory, 1, 3>; ParticleType = CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>]’
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:212:14:   required from ‘CabanaPD::Comm<ParticleType, CabanaPD::PMB>::Comm(ParticleType&, int) [with ParticleType = CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>]’
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:271:50:   required from ‘CabanaPD::Comm<ParticleType, CabanaPD::LPS>::Comm(ParticleType&, int) [with ParticleType = CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>]’
/usr/include/c++/8/ext/new_allocator.h:136:4:   required from ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = CabanaPD::Comm<CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>, CabanaPD::LPS>; _Args = {CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS, 3>&}; _Tp = CabanaPD::Comm<CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>, CabanaPD::LPS>]’
/usr/include/c++/8/bits/alloc_traits.h:475:4:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/8/bits/shared_ptr_base.h:1342:71:   required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<CabanaPD::SolverElastic<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>, CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic> > >; _Args = {CabanaPD::Inputs&, std::shared_ptr<CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS, 3> >&, CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic>&}; _Tp = CabanaPD::SolverElastic<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>, CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic> >; __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2]’
/usr/include/c++/8/bits/shared_ptr.h:359:59:   required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<CabanaPD::SolverElastic<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>, CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic> > >; _Args = {CabanaPD::Inputs&, std::shared_ptr<CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS, 3> >&, CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic>&}; _Tp = CabanaPD::SolverElastic<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>, CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic> >]’
/usr/include/c++/8/bits/shared_ptr.h:705:14:   required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = CabanaPD::SolverElastic<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>, CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic> >; _Alloc = std::allocator<CabanaPD::SolverElastic<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>, CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic> > >; _Args = {CabanaPD::Inputs&, std::shared_ptr<CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS, 3> >&, CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic>&}]’
/usr/include/c++/8/bits/shared_ptr.h:721:39:   required from ‘std::shared_ptr<_Tp> std::make_shared(_Args&& ...) [with _Tp = CabanaPD::SolverElastic<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>, CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic> >; _Args = {CabanaPD::Inputs&, std::shared_ptr<CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS, 3> >&, CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic>&}]’
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Solver.hpp:498:61:   required from ‘auto CabanaPD::createSolverElastic(CabanaPD::Inputs, std::shared_ptr<_Tp>, ForceModel) [with DeviceType = Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>; ParticleType = CabanaPD::Particles<Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>, CabanaPD::LPS>; ForceModel = CabanaPD::ForceModel<CabanaPD::LinearLPS, CabanaPD::Elastic>]’
/home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:96:44:   required from here
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:115:63: error: could not convert ‘(&(& local_grid)->Cajita::LocalGrid<Cajita::UniformMesh<double> >::globalGrid())->Cajita::GlobalGrid<Cajita::UniformMesh<double> >::comm()’ from ‘MPI_Comm’ {aka ‘ompi_communicator_t*’} to ‘std::vector<int>’
         auto unique_topology = Cabana::Impl::getUniqueTopology(
                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
             local_grid.globalGrid().comm(), topology );
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:136:33: error: no matching function for call to ‘Cajita::LocalMesh<Kokkos::HostSpace, Cajita::UniformMesh<double> >::coordinates(Cajita::Node, Kokkos::Array<long int, 3, void>::pointer, Kokkos::Array<double, 3>::pointer) const’
                                 local_mesh.coordinates( Cajita::Node(),
                                 ^~~~~~~~~~
In file included from /home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_Interpolation.hpp:21,
                 from /home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita.hpp:28,
                 from /home/diehlpk/Compile/CabanaPD/src/CabanaPD_Boundary.hpp:18,
                 from /home/diehlpk/Compile/CabanaPD/src/CabanaPD.hpp:15,
                 from /home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:19:
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:176:10: note: candidate: ‘void Cajita::LocalMesh<Device, Cajita::UniformMesh<Scalar, NumSpaceDim> >::coordinates(Cajita::Cell, const int*, Scalar*) const [with Scalar = double; Device = Kokkos::HostSpace; long unsigned int NumSpaceDim = 3]’
     void coordinates( Cell, const int index[num_space_dim],
          ^~~~~~~~~~~
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:176:10: note:   no known conversion for argument 1 from ‘Cajita::Node’ to ‘Cajita::Cell’
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:189:10: note: candidate: ‘void Cajita::LocalMesh<Device, Cajita::UniformMesh<Scalar, NumSpaceDim> >::coordinates(Cajita::Node, const int*, Scalar*) const [with Scalar = double; Device = Kokkos::HostSpace; long unsigned int NumSpaceDim = 3]’
     void coordinates( Node, const int index[num_space_dim],
          ^~~~~~~~~~~
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:189:10: note:   no known conversion for argument 2 from ‘Kokkos::Array<long int, 3, void>::pointer’ {aka ‘long int*’} to ‘const int*’
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:201:33: note: candidate: ‘template<int Dir> void Cajita::LocalMesh<Device, Cajita::UniformMesh<Scalar, NumSpaceDim> >::coordinates(Cajita::Face<Dir>, const int*, Scalar*) const [with int Dir = Dir; Scalar = double; Device = Kokkos::HostSpace; long unsigned int NumSpaceDim = 3]’
     KOKKOS_INLINE_FUNCTION void coordinates( Face<Dir>,
                                 ^~~~~~~~~~~
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:201:33: note:   template argument deduction/substitution failed:
In file included from /home/diehlpk/Compile/CabanaPD/src/CabanaPD.hpp:16,
                 from /home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:19:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:136:33: note:   ‘Cajita::Node’ is not derived from ‘Cajita::Face<Dir>’
                                 local_mesh.coordinates( Cajita::Node(),
                                 ^~~~~~~~~~
In file included from /home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_Interpolation.hpp:21,
                 from /home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita.hpp:28,
                 from /home/diehlpk/Compile/CabanaPD/src/CabanaPD_Boundary.hpp:18,
                 from /home/diehlpk/Compile/CabanaPD/src/CabanaPD.hpp:15,
                 from /home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:19:
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:221:5: note: candidate: ‘template<int Dir, long unsigned int NSD> std::enable_if_t<(3 == NSD), void> Cajita::LocalMesh<Device, Cajita::UniformMesh<Scalar, NumSpaceDim> >::coordinates(Cajita::Edge<Dir>, const int*, Scalar*) const [with int Dir = Dir; long unsigned int NSD = NSD; Scalar = double; Device = Kokkos::HostSpace; long unsigned int NumSpaceDim = 3]’
     coordinates( Edge<Dir>, const int index[3], Scalar x[3] ) const
     ^~~~~~~~~~~
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:221:5: note:   template argument deduction/substitution failed:
In file included from /home/diehlpk/Compile/CabanaPD/src/CabanaPD.hpp:16,
                 from /home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:19:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:136:33: note:   ‘Cajita::Node’ is not derived from ‘Cajita::Edge<Dir>’
                                 local_mesh.coordinates( Cajita::Node(),
                                 ^~~~~~~~~~
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:139:33: error: no matching function for call to ‘Cajita::LocalMesh<Kokkos::HostSpace, Cajita::UniformMesh<double> >::coordinates(Cajita::Node, Kokkos::Array<long int, 3, void>::pointer, Kokkos::Array<double, 3>::pointer) const’
                                 local_mesh.coordinates( Cajita::Node(),
                                 ^~~~~~~~~~
In file included from /home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_Interpolation.hpp:21,
                 from /home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita.hpp:28,
                 from /home/diehlpk/Compile/CabanaPD/src/CabanaPD_Boundary.hpp:18,
                 from /home/diehlpk/Compile/CabanaPD/src/CabanaPD.hpp:15,
                 from /home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:19:
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:176:10: note: candidate: ‘void Cajita::LocalMesh<Device, Cajita::UniformMesh<Scalar, NumSpaceDim> >::coordinates(Cajita::Cell, const int*, Scalar*) const [with Scalar = double; Device = Kokkos::HostSpace; long unsigned int NumSpaceDim = 3]’
     void coordinates( Cell, const int index[num_space_dim],
          ^~~~~~~~~~~
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:176:10: note:   no known conversion for argument 1 from ‘Cajita::Node’ to ‘Cajita::Cell’
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:189:10: note: candidate: ‘void Cajita::LocalMesh<Device, Cajita::UniformMesh<Scalar, NumSpaceDim> >::coordinates(Cajita::Node, const int*, Scalar*) const [with Scalar = double; Device = Kokkos::HostSpace; long unsigned int NumSpaceDim = 3]’
     void coordinates( Node, const int index[num_space_dim],
          ^~~~~~~~~~~
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:189:10: note:   no known conversion for argument 2 from ‘Kokkos::Array<long int, 3, void>::pointer’ {aka ‘long int*’} to ‘const int*’
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:201:33: note: candidate: ‘template<int Dir> void Cajita::LocalMesh<Device, Cajita::UniformMesh<Scalar, NumSpaceDim> >::coordinates(Cajita::Face<Dir>, const int*, Scalar*) const [with int Dir = Dir; Scalar = double; Device = Kokkos::HostSpace; long unsigned int NumSpaceDim = 3]’
     KOKKOS_INLINE_FUNCTION void coordinates( Face<Dir>,
                                 ^~~~~~~~~~~
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:201:33: note:   template argument deduction/substitution failed:
In file included from /home/diehlpk/Compile/CabanaPD/src/CabanaPD.hpp:16,
                 from /home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:19:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:139:33: note:   ‘Cajita::Node’ is not derived from ‘Cajita::Face<Dir>’
                                 local_mesh.coordinates( Cajita::Node(),
                                 ^~~~~~~~~~
In file included from /home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_Interpolation.hpp:21,
                 from /home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita.hpp:28,
                 from /home/diehlpk/Compile/CabanaPD/src/CabanaPD_Boundary.hpp:18,
                 from /home/diehlpk/Compile/CabanaPD/src/CabanaPD.hpp:15,
                 from /home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:19:
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:221:5: note: candidate: ‘template<int Dir, long unsigned int NSD> std::enable_if_t<(3 == NSD), void> Cajita::LocalMesh<Device, Cajita::UniformMesh<Scalar, NumSpaceDim> >::coordinates(Cajita::Edge<Dir>, const int*, Scalar*) const [with int Dir = Dir; long unsigned int NSD = NSD; Scalar = double; Device = Kokkos::HostSpace; long unsigned int NumSpaceDim = 3]’
     coordinates( Edge<Dir>, const int index[3], Scalar x[3] ) const
     ^~~~~~~~~~~
/home/diehlpk/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/cabana-0.5.0-rv7wgupwy2xe4xbnirgrpgldn5xeod7c/include/Cajita_LocalMesh.hpp:221:5: note:   template argument deduction/substitution failed:
In file included from /home/diehlpk/Compile/CabanaPD/src/CabanaPD.hpp:16,
                 from /home/diehlpk/Compile/CabanaPD/examples/elastic_wave.cpp:19:
/home/diehlpk/Compile/CabanaPD/src/CabanaPD_Comm.hpp:139:33: note:   ‘Cajita::Node’ is not derived from ‘Cajita::Edge<Dir>’
                                 local_mesh.coordinates( Cajita::Node(),
                                 ^~~~~~~~~~
make[2]: *** [examples/CMakeFiles/ElasticWave.dir/build.make:76: examples/CMakeFiles/ElasticWave.dir/elastic_wave.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:171: examples/CMakeFiles/ElasticWave.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

That's an older version of Cabana before Cabana::Gather was introduced. I just opened a PR specifying the absolute minimum hash that will work with CabanaPD, but pulling Cabana master is probably easiest

Ok, good to know.

spack install cabana@master+cajita+silo
spack load cabana@master+cajita+silo

That worked for me.

Thanks for reminding that we can't rely on the default spack package until the next release - I'll update the install details again