Subject: Re: [bug#28045] [PATCH] gnu: Add openfoam

From: Paul Garlick <[email-masked]>
Date: Thu, 17 Aug 2017 10:42:58 +0100

Hi Eric,

> For metis this might mean a build phase that patches metis.h's
> IDXTYPEWIDTH macro appropriately for the target system. 

I think this would work, in the sense of allowing OpenFOAM to build.
 There has been a recent FreeBSD bug report on this issue:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219749

The REALTYPEWIDTH would also need to be set to 64-bit for OpenFOAM to
avoid a related build problem.

However, there could be an argument not to do it this way.  That is,
with this approach the choice between 32bit and 64bit integers is made
according to the system architecture.  For OpenFOAM, and perhaps other
Guix packages too, there is also a consideration of memory usage and
speed.  

The current default in OpenFOAM is to use 32bit integers, even on 64bit
systems.  The reasoning is that the need for indexing beyond the 2^32
limit is restricted to the corner-case of dealing with very large
graphs on single processors.  The computations become very time
consuming and an attractive alternative in many cases is to parallelise
the problem, thereby avoiding the limit.

To stick with the OpenFOAM default a 32bit version of scotch/pt-scotch
would be needed.  This would mean either reverting commit 26599d6, or
introducing a new scotch32 package, the same as the previous
definition, guaranteed to use 32bit integers.

WDYT?

Paul.