mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
STYLE: use data() instead of begin() when passing metisDecomp raw data
This commit is contained in:
committed by
Andrew Heather
parent
f7f08fce4b
commit
f1394e9ce3
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2016-2018 OpenCFD Ltd.
|
\\ / A nd | Copyright (C) 2016-2019 OpenCFD Ltd.
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
| Copyright (C) 2011-2016 OpenFOAM Foundation
|
| Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
@ -36,15 +36,16 @@ License
|
|||||||
|
|
||||||
#include "metis.h"
|
#include "metis.h"
|
||||||
|
|
||||||
// Provide a clear error message if we have a size mismatch
|
// Provide a clear error message if we have a severe size mismatch
|
||||||
|
// Allow widening, but not narrowing
|
||||||
//
|
//
|
||||||
// Metis has an 'idx_t' type, but the IDXTYPEWIDTH define is perhaps
|
// Metis has an 'idx_t' type, but the IDXTYPEWIDTH define is perhaps
|
||||||
// more future-proof?
|
// more future-proof?
|
||||||
//#ifdef IDXTYPEWIDTH
|
//#ifdef IDXTYPEWIDTH
|
||||||
//static_assert
|
//static_assert
|
||||||
//(
|
//(
|
||||||
// sizeof(Foam::label) == (IDXTYPEWIDTH/8),
|
// sizeof(Foam::label) > (IDXTYPEWIDTH/8),
|
||||||
// "sizeof(Foam::label) == (IDXTYPEWIDTH/8), check your metis headers"
|
// "sizeof(Foam::label) > (IDXTYPEWIDTH/8), check your metis headers"
|
||||||
//);
|
//);
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
@ -91,7 +92,7 @@ Foam::label Foam::metisDecomp::decomposeSerial
|
|||||||
|
|
||||||
// Decomposition options
|
// Decomposition options
|
||||||
List<idx_t> options(METIS_NOPTIONS);
|
List<idx_t> options(METIS_NOPTIONS);
|
||||||
METIS_SetDefaultOptions(options.begin());
|
METIS_SetDefaultOptions(options.data());
|
||||||
|
|
||||||
// Processor weights initialised with no size, only used if specified in
|
// Processor weights initialised with no size, only used if specified in
|
||||||
// a file
|
// a file
|
||||||
@ -128,7 +129,7 @@ Foam::label Foam::metisDecomp::decomposeSerial
|
|||||||
cellWeights.setSize(cWeights.size());
|
cellWeights.setSize(cWeights.size());
|
||||||
forAll(cellWeights, i)
|
forAll(cellWeights, i)
|
||||||
{
|
{
|
||||||
cellWeights[i] = int(cWeights[i]/minWeights);
|
cellWeights[i] = idx_t(cWeights[i]/minWeights);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -205,17 +206,17 @@ Foam::label Foam::metisDecomp::decomposeSerial
|
|||||||
(
|
(
|
||||||
&numCells, // num vertices in graph
|
&numCells, // num vertices in graph
|
||||||
&ncon, // num balancing constraints
|
&ncon, // num balancing constraints
|
||||||
xadj_metis.ref().begin(), // indexing into adjncy
|
xadj_metis.ref().data(), // indexing into adjncy
|
||||||
adjncy_metis.ref().begin(), // neighbour info
|
adjncy_metis.ref().data(), // neighbour info
|
||||||
cellWeights.begin(), // vertex wts
|
cellWeights.data(), // vertex wts
|
||||||
nullptr, // vsize: total communication vol
|
nullptr, // vsize: total communication vol
|
||||||
faceWeights.begin(), // edge wts
|
faceWeights.data(), // edge wts
|
||||||
&nProcs, // nParts
|
&nProcs, // nParts
|
||||||
processorWeights.begin(), // tpwgts
|
processorWeights.data(), // tpwgts
|
||||||
nullptr, // ubvec: processor imbalance (default)
|
nullptr, // ubvec: processor imbalance (default)
|
||||||
options.begin(),
|
options.data(),
|
||||||
&edgeCut,
|
&edgeCut,
|
||||||
decomp_metis.ref().begin()
|
decomp_metis.ref().data()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -224,17 +225,17 @@ Foam::label Foam::metisDecomp::decomposeSerial
|
|||||||
(
|
(
|
||||||
&numCells, // num vertices in graph
|
&numCells, // num vertices in graph
|
||||||
&ncon, // num balancing constraints
|
&ncon, // num balancing constraints
|
||||||
xadj_metis.ref().begin(), // indexing into adjncy
|
xadj_metis.ref().data(), // indexing into adjncy
|
||||||
adjncy_metis.ref().begin(), // neighbour info
|
adjncy_metis.ref().data(), // neighbour info
|
||||||
cellWeights.begin(), // vertex wts
|
cellWeights.data(), // vertex wts
|
||||||
nullptr, // vsize: total communication vol
|
nullptr, // vsize: total communication vol
|
||||||
faceWeights.begin(), // edge wts
|
faceWeights.data(), // edge wts
|
||||||
&nProcs, // nParts
|
&nProcs, // nParts
|
||||||
processorWeights.begin(), // tpwgts
|
processorWeights.data(), // tpwgts
|
||||||
nullptr, // ubvec: processor imbalance (default)
|
nullptr, // ubvec: processor imbalance (default)
|
||||||
options.begin(),
|
options.data(),
|
||||||
&edgeCut,
|
&edgeCut,
|
||||||
decomp_metis.ref().begin()
|
decomp_metis.ref().data()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user