conservation-laws / ryujin

High-performance high-order finite element solver for hyperbolic conservation equations
https://conservation-laws.org
Other
103 stars 25 forks source link

Can't compile with 64-bit deal.II. #113

Closed bangerth closed 2 months ago

bangerth commented 3 months ago

The issue is that riemann_solver.compute takes as fourth argument the address to an unsigned int, but we have

const auto &[i, col_idx, j] = coupling_boundary_pairs[k];

where i ends up as types::global_dof_index.

This patch is not elegant but will help: https://github.com/jerett-cc/ryujin/pull/32

@jerett-cc FYI

tamiko commented 2 months ago

@bangerth ugh That's a good point.

The bug is actually that OfflineData should not use types::global_dof_index at all because the boundary_map and coupling_boundary_pairs is in local (MPI rank) indexing. And we use unsigned int for such local indices everywhere; see https://www.dealii.org/current/doxygen/deal.II/classUtilities_1_1MPI_1_1Partitioner.html#a11316c010d3d51912cdfe1939651ad72

I really need to add a 64 bit indices test for ryujin. Or, better, we should switch deal.II to always use 64bit (signed) ordinals...