I am learning OpenFOAM step by step, and am currently trying to create a very simple mesh with the blockMesh tool, but keep getting a floating point exception. My blockMeshDict is written in almost exact correspondence to the meshing tutorial in the section 4.3.1 of the OF user manual:
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1.0;
vertices
(
(0 0 0) //0
(0 0 1) //1
(0 1 1) //2
(0 1 0) //3
(1 0 0) //4
(1 0 1) //5
(1 1 1) //6
(1 1 0) //7
);
edges
(
);
blocks
(
hex (0 1 2 3 7 6 5 4)
(2 1 1) // 2 blocks in the x direction
simpleGrading (1 1 1) // default expansion ratios
);
boundary
(
inlet
{
type patch;
faces
(
(0 1 2 3)
);
}
outlet
{
type patch;
faces
(
(4 5 6 7)
);
}
walls
{
type wall;
faces
(
(0 4 7 3)
(0 4 5 1)
(1 5 6 2)
(2 6 7 3)
);
}
);
This is just a unit length "air tube" cube with two sections along the x axis, an inlet and outlet on the opposite sides and walls everywhere else:
This config immediately breaks with the following error:
$ blockMesh
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 9
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
Build : 9-c8374a4890ad
Exec : blockMesh
Date : Nov 02 2021
Time : 11:50:35
Host : "artixlinux"
PID : 10555
I/O : uncollated
Case : /home/andrii/foamtest
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Reading "blockMeshDict"
Creating block mesh from
"system/blockMeshDict"
Creating block edges
No non-planar block faces defined
Creating topology blocks
#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::sigFpe::sigHandler(int) at ??:?
#2 ? in "/usr/lib/libc.so.6"
#3 Foam::face::centre(Foam::Field<Foam::Vector<double> > const&) const at ??:?
#4 Foam::blockDescriptor::check(Foam::Istream const&) at ??:?
#5 Foam::blockDescriptor::blockDescriptor(Foam::dictionary const&, int, Foam::Field<Foam::Vector<double> > const&, Foam::PtrList<Foam::blockEdge> const&, Foam::PtrList<Foam::blockFace> const&, Foam::Istream&) at ??:?
#6 Foam::block::block(Foam::dictionary const&, int, Foam::Field<Foam::Vector<double> > const&, Foam::PtrList<Foam::blockEdge> const&, Foam::PtrList<Foam::blockFace> const&, Foam::Istream&) at ??:?
#7 Foam::block::New(Foam::dictionary const&, int, Foam::Field<Foam::Vector<double> > const&, Foam::PtrList<Foam::blockEdge> const&, Foam::PtrList<Foam::blockFace> const&, Foam::Istream&) at ??:?
#8 void Foam::PtrList<Foam::block>::read<Foam::block::iNew>(Foam::Istream&, Foam::block::iNew const&) at ??:?
#9 Foam::blockMesh::createTopology(Foam::IOdictionary const&, Foam::word const&) at ??:?
#10 Foam::blockMesh::blockMesh(Foam::IOdictionary const&, Foam::word const&) at ??:?
#11 ? in "/opt/OpenFOAM/OpenFOAM-9/platforms/linux64GccDPInt32Opt/bin/blockMesh"
#12 __libc_start_main in "/usr/lib/libc.so.6"
#13 ? in "/opt/OpenFOAM/OpenFOAM-9/platforms/linux64GccDPInt32Opt/bin/blockMesh"
zsh: floating point exception blockMesh
I am reasonably sure this is not just a broken OpenFOAM installation (I am specifically using the org version from the Arch AUR) because a different mesh dict copied in place of mine from the archive given in this tutorial works perfectly.
I'm losing my mind over this, I checked the vertices and the face descriptions multiple times and don't see any problems, yet the error persists. Is there some mistake that I'm missing?


#3 Foam::face::centre(...Foam::faceseems like a face of the cube in the diagram. Also if you see the log, it has parsed the input file tillblocks, so it was in process of parsing theboundarybut there was an error.