BUGFIX: Compile WM_LABEL_SIZE=64

This commit is contained in:
Henrik Rusche 2019-01-05 02:14:17 +01:00
parent 67e2f83134
commit 923fee738e
105 changed files with 549 additions and 391 deletions

View file

@ -27,14 +27,15 @@ diff -ruN scotch_6.0.4_orig/src/Make.inc/Makefile.inc.i686_mac_darwin10.shlib sc
diff -ruN scotch_6.0.4_orig/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib scotch_6.0.4/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib diff -ruN scotch_6.0.4_orig/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib scotch_6.0.4/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib
--- scotch_6.0.4_orig/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib 2014-08-05 08:56:17.000000000 -0400 --- scotch_6.0.4_orig/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib 2014-08-05 08:56:17.000000000 -0400
+++ scotch_6.0.4/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib 2015-06-21 00:26:43.072992194 -0400 +++ scotch_6.0.4/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib 2015-06-21 00:26:43.072992194 -0400
@@ -8,10 +8,10 @@ @@ -8,10 +8,11 @@
CAT = cat CAT = cat
CCS = gcc CCS = gcc
CCP = mpicc CCP = mpicc
-CCD = gcc -CCD = gcc
-CFLAGS = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict -CFLAGS = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict
+CCD = mpicc -I$(MPI_HOME)/include +CCD = mpicc -I$(MPI_HOME)/include
+CFLAGS = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict -Xlinker --no-as-needed +INTSIZE =
+CFLAGS = -O3 $(INTSIZE) -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict -Xlinker --no-as-needed
CLIBFLAGS = -shared -fPIC CLIBFLAGS = -shared -fPIC
-LDFLAGS = -lz -lm -pthread -LDFLAGS = -lz -lm -pthread
+LDFLAGS = -lz -lm -pthread -lrt +LDFLAGS = -lz -lm -pthread -lrt

View file

@ -78,6 +78,7 @@ Prefix: %{_prefix}
Group: Development/Tools Group: Development/Tools
Patch0: ParMGridGen-1.0.patch_darwin Patch0: ParMGridGen-1.0.patch_darwin
Patch1: ParMGridGen-1.0.patch Patch1: ParMGridGen-1.0.patch
Patch2: ParMGridGen-1.0.patch_64Bit
%define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS} %define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS}
@ -93,6 +94,10 @@ Patch1: ParMGridGen-1.0.patch
%patch1 -p1 %patch1 -p1
%endif %endif
if [ "$WM_LABEL_SIZE" = "64" ]; then
%patch2 -p1
fi
%build %build
[ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX" [ -n "$WM_CXX" ] && export CXX="$WM_CXX"

View file

@ -77,6 +77,7 @@ Source: %url/%{name}-%{version}.tar.gz
Prefix: %{_prefix} Prefix: %{_prefix}
Group: Development/Tools Group: Development/Tools
Patch0: metis-5.1.0_patch_gcc Patch0: metis-5.1.0_patch_gcc
Patch1: metis-5.1.0_patch_64Bit
%define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS} %define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS}
@ -90,6 +91,10 @@ Patch0: metis-5.1.0_patch_gcc
%patch0 -p1 %patch0 -p1
%endif %endif
if [ "$WM_LABEL_SIZE" = "64" ]; then
%patch1 -p1
fi
%build %build
[ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX" [ -n "$WM_CXX" ] && export CXX="$WM_CXX"

View file

@ -78,6 +78,7 @@ Prefix: %{_prefix}
Group: Development/Tools Group: Development/Tools
Patch0: ParMetis-3.1.1.patch_darwin Patch0: ParMetis-3.1.1.patch_darwin
Patch1: ParMetis-3.1.1.patch Patch1: ParMetis-3.1.1.patch
Patch2: ParMetis-3.1.1.patch_64Bit
%define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS} %define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS}
@ -93,6 +94,10 @@ Patch1: ParMetis-3.1.1.patch
#patch1 -p1 #patch1 -p1
%endif %endif
if [ "$WM_LABEL_SIZE" = "64" ]; then
%patch2 -p1
fi
%build %build
[ -n "$WM_CC" ] && export CC="$WM_CC" [ -n "$WM_CC" ] && export CC="$WM_CC"
[ -n "$WM_CXX" ] && export CXX="$WM_CXX" [ -n "$WM_CXX" ] && export CXX="$WM_CXX"

View file

@ -77,6 +77,7 @@ Prefix: %{_prefix}
Group: Development/Tools Group: Development/Tools
Patch0: scotch-6.0.4_patch_0 Patch0: scotch-6.0.4_patch_0
Patch1: scotch-6.0.4_patch_darwin Patch1: scotch-6.0.4_patch_darwin
Patch2: scotch-6.0.4_patch_64Bit
%define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS} %define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS}
@ -92,6 +93,10 @@ Patch1: scotch-6.0.4_patch_darwin
%patch0 -p1 %patch0 -p1
%endif %endif
if [ "$WM_LABEL_SIZE" = "64" ]; then
%patch2 -p1
fi
%build %build
# export WM settings in a form that GNU configure recognizes # export WM settings in a form that GNU configure recognizes
# [ -n "$WM_CC" ] && export CC="$WM_CC" # [ -n "$WM_CC" ] && export CC="$WM_CC"

View file

@ -212,7 +212,7 @@ int main(int argc, char *argv[])
{ {
label curMeshEdge = meshEdges[edgeI]; label curMeshEdge = meshEdges[edgeI];
labelList curEdgePatchIDs(2, -1); labelList curEdgePatchIDs(2, label(-1));
label patchI = -1; label patchI = -1;

View file

@ -99,7 +99,11 @@ int main(int argc, char *argv[])
const labelList faceOwner = mesh.faceOwner(); const labelList faceOwner = mesh.faceOwner();
const vectorField faceNormals = mesh.Sf()/mesh.magSf(); const vectorField faceNormals = mesh.Sf()/mesh.magSf();
labelListList abaqusCellPoints(cellPoints.size(), List<label>(8, 1)); labelListList abaqusCellPoints
(
cellPoints.size(),
labelList(8, label(1))
);
forAll(cells, celli) forAll(cells, celli)
{ {
@ -338,7 +342,11 @@ int main(int argc, char *argv[])
} }
} }
labelListList materialsOrdered(numberOfMaterials, List<label>(0,0)); labelListList materialsOrdered
(
numberOfMaterials,
labelList(0, label(0))
);
forAll(materialsOrdered, matOrderi) forAll(materialsOrdered, matOrderi)
{ {
materialsOrdered[matOrderi].setSize(cellsOfEachMaterial[matOrderi], 0); materialsOrdered[matOrderi].setSize(cellsOfEachMaterial[matOrderi], 0);
@ -401,7 +409,7 @@ int main(int argc, char *argv[])
//- face 5 is nodes 3 7 8 4 //- face 5 is nodes 3 7 8 4
//- face 6 is nodes 4 8 5 1 //- face 6 is nodes 4 8 5 1
//- So i will compare points on the face and //- So i will compare points on the face and
labelListList abaqusFaceConvention(6, List<label>(4,-1)); labelListList abaqusFaceConvention(6, labelList(4, label(-1)));
abaqusFaceConvention[0][0] = 1; abaqusFaceConvention[0][0] = 1;
abaqusFaceConvention[0][1] = 2; abaqusFaceConvention[0][1] = 2;
abaqusFaceConvention[0][2] = 3; abaqusFaceConvention[0][2] = 3;
@ -438,7 +446,7 @@ int main(int argc, char *argv[])
//- face it is //- face it is
const labelList& facePoints = mesh.boundaryMesh()[patchi][facei]; const labelList& facePoints = mesh.boundaryMesh()[patchi][facei];
const labelList& thisCellAbaqusPoints = abaqusCellPoints[globalCelli]; const labelList& thisCellAbaqusPoints = abaqusCellPoints[globalCelli];
labelList thisFaceAbaqusPoints(4,-1); labelList thisFaceAbaqusPoints(4, label(-1));
label pointsFound = 0; label pointsFound = 0;
forAll(thisCellAbaqusPoints, pointi) forAll(thisCellAbaqusPoints, pointi)
{ {

View file

@ -47,7 +47,7 @@ void sammMesh::readBoundary()
labelList pointLabels(4); labelList pointLabels(4);
labelList pointLabelsTri(3); labelList pointLabelsTri(3);
labelList patchLabels(1000, -1); labelList patchLabels(1000, label(-1));
word patchType; word patchType;
patchTypes_.setSize(1000); patchTypes_.setSize(1000);

View file

@ -230,7 +230,7 @@ void sammMesh::readCells()
{ {
IFstream cellsFile(cellsFileName); IFstream cellsFile(cellsFileName);
labelList labels(24, -1); labelList labels(24, label(-1));
label lineLabel, sammLabel, regionLabel, typeFlag; label lineLabel, sammLabel, regionLabel, typeFlag;
for (label cellI = 0; cellI < nCells; cellI++) for (label cellI = 0; cellI < nCells; cellI++)

View file

@ -47,7 +47,7 @@ void starMesh::readBoundary()
labelList pointLabels(4); labelList pointLabels(4);
labelList pointLabelsTri(3); labelList pointLabelsTri(3);
labelList patchLabels(1000, -1); labelList patchLabels(1000, label(-1));
word patchType; word patchType;
patchTypes_.setSize(1000); patchTypes_.setSize(1000);

View file

@ -275,7 +275,7 @@ void starMesh::readCells()
{ {
IFstream cellsFile(cellsFileName); IFstream cellsFile(cellsFileName);
labelList labels(24, -1); labelList labels(24, label(-1));
label lineLabel, starLabel, regionLabel, typeFlag; label lineLabel, starLabel, regionLabel, typeFlag;
for (label cellI = 0; cellI < nCells; cellI++) for (label cellI = 0; cellI < nCells; cellI++)

View file

@ -30,6 +30,15 @@ License
#include <sys/endian.h> #include <sys/endian.h>
#endif #endif
// MacOSX
#ifdef __DARWIN_BYTE_ORDER
#if __DARWIN_BYTE_ORDER==__DARWIN_BIG_ENDIAN
#undef LITTLE_ENDIAN
#else
#undef BIG_ENDIAN
#endif
#endif
#if defined(LITTLE_ENDIAN) \ #if defined(LITTLE_ENDIAN) \
|| defined(_LITTLE_ENDIAN) \ || defined(_LITTLE_ENDIAN) \
|| defined(__LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN)
@ -43,7 +52,7 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
void Foam::writeFuns::swapWord(label& word32) void Foam::writeFuns::swapWord(int32_t& word32)
{ {
char* mem = reinterpret_cast<char*>(&word32); char* mem = reinterpret_cast<char*>(&word32);
@ -57,7 +66,7 @@ void Foam::writeFuns::swapWord(label& word32)
} }
void Foam::writeFuns::swapWords(const label nWords, label* words32) void Foam::writeFuns::swapWords(const label nWords, int32_t* words32)
{ {
for (label i = 0; i < nWords; i++) for (label i = 0; i < nWords; i++)
{ {
@ -75,9 +84,9 @@ void Foam::writeFuns::write
{ {
if (binary) if (binary)
{ {
# ifdef LITTLEENDIAN #ifdef LITTLEENDIAN
swapWords(fField.size(), reinterpret_cast<label*>(fField.begin())); swapWords(fField.size(), reinterpret_cast<int32_t*>(fField.begin()));
# endif #endif
os.write os.write
( (
@ -125,9 +134,13 @@ void Foam::writeFuns::write
{ {
if (binary) if (binary)
{ {
# ifdef LITTLEENDIAN #ifdef LITTLEENDIAN
swapWords(elems.size(), reinterpret_cast<label*>(elems.begin())); swapWords
# endif (
(sizeof(label)/4)*elems.size(),
reinterpret_cast<int32_t*>(elems.begin())
);
#endif
os.write os.write
( (
reinterpret_cast<char*>(elems.begin()), reinterpret_cast<char*>(elems.begin()),

View file

@ -55,9 +55,14 @@ namespace Foam
class writeFuns class writeFuns
{ {
//- Swap halves of word. // Private member functions
static void swapWord(label& word32);
static void swapWords(const label nWords, label* words32); //- Swap halves of word
static void swapWord(int32_t& word32);
//- Swap halves of word
static void swapWords(const label nWords, int32_t* words32);
public: public:

View file

@ -151,7 +151,7 @@ Foam::fieldviewTopology::fieldviewTopology
const cellModel& hex = *(cellModeller::lookup("hex")); const cellModel& hex = *(cellModeller::lookup("hex"));
// Pre calculate headers for cells not on walls // Pre calculate headers for cells not on walls
labelList notWallFlags(6, NOT_A_WALL); List<int> notWallFlags(6, NOT_A_WALL);
label tetNotWall = fv_encode_elem_header label tetNotWall = fv_encode_elem_header
( (
FV_TET_ELEM_ID, notWallFlags.begin() FV_TET_ELEM_ID, notWallFlags.begin()
@ -181,7 +181,7 @@ Foam::fieldviewTopology::fieldviewTopology
const faceList& allFaces = mesh.faces(); const faceList& allFaces = mesh.faces();
labelList wallFlags(6); List<int> wallFlags(6);
forAll(cellShapes, celli) forAll(cellShapes, celli)
{ {
const cellShape& cellShape = cellShapes[celli]; const cellShape& cellShape = cellShapes[celli];

View file

@ -395,7 +395,8 @@ void Foam::tecplotWriter::writeConnectivity
INTEGER4 NumFaceNodes = 2*pp.nEdges(); INTEGER4 NumFaceNodes = 2*pp.nEdges();
// All faces (=edges) have 2 nodes // All faces (=edges) have 2 nodes
List<INTEGER4> FaceNodeCounts(NumFaces, 2); List<INTEGER4> FaceNodeCounts(NumFaces);
FaceNodeCounts = 2;
List<INTEGER4> FaceNodes(NumFaceNodes); List<INTEGER4> FaceNodes(NumFaceNodes);
label nodeI = 0; label nodeI = 0;

View file

@ -53,7 +53,7 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
void Foam::writeFuns::swapWord(label& word32) void Foam::writeFuns::swapWord(int32_t& word32)
{ {
char* mem = reinterpret_cast<char*>(&word32); char* mem = reinterpret_cast<char*>(&word32);
@ -67,7 +67,7 @@ void Foam::writeFuns::swapWord(label& word32)
} }
void Foam::writeFuns::swapWords(const label nWords, label* words32) void Foam::writeFuns::swapWords(const label nWords, int32_t* words32)
{ {
for (label i = 0; i < nWords; i++) for (label i = 0; i < nWords; i++)
{ {
@ -85,9 +85,10 @@ void Foam::writeFuns::write
{ {
if (binary) if (binary)
{ {
# ifdef LITTLEENDIAN #ifdef LITTLEENDIAN
swapWords(fField.size(), reinterpret_cast<label*>(fField.begin())); swapWords(fField.size(), reinterpret_cast<int32_t*>(fField.begin()));
# endif #endif
os.write os.write
( (
reinterpret_cast<char*>(fField.begin()), reinterpret_cast<char*>(fField.begin()),
@ -134,9 +135,13 @@ void Foam::writeFuns::write
{ {
if (binary) if (binary)
{ {
# ifdef LITTLEENDIAN #ifdef LITTLEENDIAN
swapWords(elems.size(), reinterpret_cast<label*>(elems.begin())); swapWords
# endif (
(sizeof(label)/4)*elems.size(),
reinterpret_cast<int32_t*>(elems.begin())
);
#endif
os.write os.write
( (
reinterpret_cast<char*>(elems.begin()), reinterpret_cast<char*>(elems.begin()),

View file

@ -55,10 +55,11 @@ class writeFuns
{ {
// Private member functions // Private member functions
// Swap halves of word. //- Swap halves of word
static void swapWord(int32_t& word32);
static void swapWord(label& word32); //- Swap halves of word
static void swapWords(const label nWords, label* words32); static void swapWords(const label nWords, int32_t* words32);
public: public:

View file

@ -640,9 +640,9 @@ void Foam::meshReaders::STARCD::readBoundary(const fileName& inputName)
label lineLabel, starCellId, cellFaceId, starRegion, configNumber; label lineLabel, starCellId, cellFaceId, starRegion, configNumber;
word patchType; word patchType;
labelList mapToFoamPatchId(1000, -1); labelList mapToFoamPatchId(1000, label(-1));
labelList nPatchFaces(1000, 0); labelList nPatchFaces(1000, label(0));
labelList origRegion(1000, 0); labelList origRegion(1000, label(0));
patchTypes_.setSize(1000); patchTypes_.setSize(1000);
// this is what we seem to need // this is what we seem to need

View file

@ -154,7 +154,7 @@ void Foam::mgMeshLevel::makeChild() const
); );
// MGridGen agglomeration options. // MGridGen agglomeration options.
List<int> options(4, 0); List<int> options(4);
options[0] = 4; // globular agglom options[0] = 4; // globular agglom
options[1] = 6; // objective F3 and F2 options[1] = 6; // objective F3 and F2
options[2] = 128; // debugging output level options[2] = 128; // debugging output level

View file

@ -46,8 +46,8 @@ namespace Foam
void Foam::decompositionMethod::calcCSR void Foam::decompositionMethod::calcCSR
( (
const labelListList& cellCells, const labelListList& cellCells,
List<int>& adjncy, List<label>& adjncy,
List<int>& xadj List<label>& xadj
) )
{ {
// Count number of internal faces // Count number of internal faces
@ -88,8 +88,8 @@ void Foam::decompositionMethod::calcCSR
void Foam::decompositionMethod::calcCSR void Foam::decompositionMethod::calcCSR
( (
const polyMesh& mesh, const polyMesh& mesh,
List<int>& adjncy, List<label>& adjncy,
List<int>& xadj List<label>& xadj
) )
{ {
// Make Metis CSR (Compressed Storage Format) storage // Make Metis CSR (Compressed Storage Format) storage
@ -185,8 +185,8 @@ void Foam::decompositionMethod::calcCSR
void Foam::decompositionMethod::calcDistributedCSR void Foam::decompositionMethod::calcDistributedCSR
( (
const polyMesh& mesh, const polyMesh& mesh,
List<int>& adjncy, List<label>& adjncy,
List<int>& xadj List<label>& xadj
) )
{ {
// Create global cell numbers // Create global cell numbers
@ -210,7 +210,7 @@ void Foam::decompositionMethod::calcDistributedCSR
// Get renumbered owner on other side of coupled faces // Get renumbered owner on other side of coupled faces
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
List<int> globalNeighbour(mesh.nFaces()-mesh.nInternalFaces()); labelList globalNeighbour(mesh.nFaces()-mesh.nInternalFaces());
forAll(patches, patchI) forAll(patches, patchI)
{ {
@ -239,7 +239,7 @@ void Foam::decompositionMethod::calcDistributedCSR
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Number of faces per cell // Number of faces per cell
List<int> nFacesPerCell(mesh.nCells(), 0); List<label> nFacesPerCell(mesh.nCells(), 0);
// Number of coupled faces // Number of coupled faces
label nCoupledFaces = 0; label nCoupledFaces = 0;
@ -272,7 +272,7 @@ void Foam::decompositionMethod::calcDistributedCSR
xadj.setSize(mesh.nCells() + 1); xadj.setSize(mesh.nCells() + 1);
int freeAdj = 0; label freeAdj = 0;
for (label cellI = 0; cellI < mesh.nCells(); cellI++) for (label cellI = 0; cellI < mesh.nCells(); cellI++)
{ {

View file

@ -63,8 +63,8 @@ protected:
static void calcCSR static void calcCSR
( (
const labelListList& globalCellCells, const labelListList& globalCellCells,
List<int>& adjncy, List<label>& adjncy,
List<int>& xadj List<label>& xadj
); );
//- Helper: convert local connectivity from the mesh //- Helper: convert local connectivity from the mesh
@ -73,8 +73,8 @@ protected:
static void calcCSR static void calcCSR
( (
const polyMesh& mesh, const polyMesh& mesh,
List<int>& adjncy, List<label>& adjncy,
List<int>& xadj List<label>& xadj
); );
//- Helper: convert mesh connectivity into distributed CSR //- Helper: convert mesh connectivity into distributed CSR
@ -82,8 +82,8 @@ protected:
static void calcDistributedCSR static void calcDistributedCSR
( (
const polyMesh&, const polyMesh&,
List<int>& adjncy, List<label>& adjncy,
List<int>& xadj List<label>& xadj
); );
//- Helper: determine (non-parallel) cellCells from mesh //- Helper: determine (non-parallel) cellCells from mesh

View file

@ -54,10 +54,10 @@ namespace Foam
Foam::label Foam::metisDecomp::decompose Foam::label Foam::metisDecomp::decompose
( (
const List<int>& adjncy, const List<label>& adjncy,
const List<int>& xadj, const List<label>& xadj,
const scalarField& cWeights, const scalarField& cWeights,
List<int>& finalDecomp List<label>& finalDecomp
) )
{ {
// Method of decomposition // Method of decomposition
@ -65,7 +65,7 @@ Foam::label Foam::metisDecomp::decompose
// k-way: multi-level k-way // k-way: multi-level k-way
word method("k-way"); word method("k-way");
int numCells = xadj.size()-1; label numCells = xadj.size()-1;
// decomposition options. 0 = use defaults // decomposition options. 0 = use defaults
idx_t options[METIS_NOPTIONS]; idx_t options[METIS_NOPTIONS];
@ -76,10 +76,10 @@ Foam::label Foam::metisDecomp::decompose
Field<real_t> processorWeights; Field<real_t> processorWeights;
// cell weights (so on the vertices of the dual) // cell weights (so on the vertices of the dual)
List<int> cellWeights; List<label> cellWeights;
// face weights (so on the edges of the dual) // face weights (so on the edges of the dual)
List<int> faceWeights; List<label> faceWeights;
// Check for externally provided cellweights and if so initialise weights // Check for externally provided cellweights and if so initialise weights
@ -177,7 +177,7 @@ Foam::label Foam::metisDecomp::decompose
{ {
Info<< "metisDecomp : Using cell-based weights." << endl; Info<< "metisDecomp : Using cell-based weights." << endl;
IOList<int> cellIOWeights IOList<label> cellIOWeights
( (
IOobject IOobject
( (
@ -200,17 +200,17 @@ Foam::label Foam::metisDecomp::decompose
} }
} }
int nProcs = nProcessors_; label nProcs = nProcessors_;
// output: cell -> processor addressing // output: cell -> processor addressing
finalDecomp.setSize(numCells); finalDecomp.setSize(numCells);
// output: number of cut edges // output: number of cut edges
int edgeCut = 0; label edgeCut = 0;
// Vertex weight info // Vertex weight info
int* vwgtPtr = nullptr; label* vwgtPtr = nullptr;
int* adjwgtPtr = nullptr; label* adjwgtPtr = nullptr;
if (cellWeights.size()) if (cellWeights.size())
{ {
@ -221,7 +221,7 @@ Foam::label Foam::metisDecomp::decompose
adjwgtPtr = faceWeights.begin(); adjwgtPtr = faceWeights.begin();
} }
int one = 1; label one = 1;
if (method == "recursive") if (method == "recursive")
{ {
@ -229,8 +229,8 @@ Foam::label Foam::metisDecomp::decompose
( (
&numCells, // num vertices in graph &numCells, // num vertices in graph
&one, &one,
const_cast<List<int>&>(xadj).begin(), // indexing into adjncy const_cast<List<label>&>(xadj).begin(), // indexing into adjncy
const_cast<List<int>&>(adjncy).begin(), // neighbour info const_cast<List<label>&>(adjncy).begin(), // neighbour info
vwgtPtr, // vertexweights vwgtPtr, // vertexweights
nullptr, nullptr,
adjwgtPtr, // no edgeweights adjwgtPtr, // no edgeweights
@ -248,8 +248,8 @@ Foam::label Foam::metisDecomp::decompose
( (
&numCells, // num vertices in graph &numCells, // num vertices in graph
&one, &one,
const_cast<List<int>&>(xadj).begin(), // indexing into adjncy const_cast<List<label>&>(xadj).begin(), // indexing into adjncy
const_cast<List<int>&>(adjncy).begin(), // neighbour info const_cast<List<label>&>(adjncy).begin(), // neighbour info
vwgtPtr, // vertexweights vwgtPtr, // vertexweights
nullptr, nullptr,
adjwgtPtr, // no edgeweights adjwgtPtr, // no edgeweights
@ -300,8 +300,8 @@ Foam::labelList Foam::metisDecomp::decompose
<< exit(FatalError); << exit(FatalError);
} }
List<int> adjncy; List<label> adjncy;
List<int> xadj; List<label> xadj;
calcCSR calcCSR
( (
mesh_, mesh_,
@ -310,7 +310,7 @@ Foam::labelList Foam::metisDecomp::decompose
); );
// Decompose using default weights // Decompose using default weights
List<int> finalDecomp; List<label> finalDecomp;
decompose(adjncy, xadj, pointWeights, finalDecomp); decompose(adjncy, xadj, pointWeights, finalDecomp);
// Copy back to labelList // Copy back to labelList
@ -348,8 +348,8 @@ Foam::labelList Foam::metisDecomp::decompose
// Make Metis CSR (Compressed Storage Format) storage // Make Metis CSR (Compressed Storage Format) storage
// adjncy : contains neighbours (= edges in graph) // adjncy : contains neighbours (= edges in graph)
// xadj(celli) : start of information in adjncy for celli // xadj(celli) : start of information in adjncy for celli
List<int> adjncy; List<label> adjncy;
List<int> xadj; List<label> xadj;
{ {
// Get cellCells on coarse mesh. // Get cellCells on coarse mesh.
labelListList cellCells; labelListList cellCells;
@ -365,7 +365,7 @@ Foam::labelList Foam::metisDecomp::decompose
} }
// Decompose using default weights // Decompose using default weights
List<int> finalDecomp; List<label> finalDecomp;
decompose(adjncy, xadj, coarseWeights, finalDecomp); decompose(adjncy, xadj, coarseWeights, finalDecomp);
@ -406,12 +406,12 @@ Foam::labelList Foam::metisDecomp::decompose
// adjncy : contains neighbours (= edges in graph) // adjncy : contains neighbours (= edges in graph)
// xadj(celli) : start of information in adjncy for celli // xadj(celli) : start of information in adjncy for celli
List<int> adjncy; List<label> adjncy;
List<int> xadj; List<label> xadj;
calcCSR(globalCellCells, adjncy, xadj); calcCSR(globalCellCells, adjncy, xadj);
// Decompose using default weights // Decompose using default weights
List<int> finalDecomp; List<label> finalDecomp;
decompose(adjncy, xadj, cWeights, finalDecomp); decompose(adjncy, xadj, cWeights, finalDecomp);
// Copy back to labelList // Copy back to labelList

View file

@ -63,10 +63,10 @@ class metisDecomp
label decompose label decompose
( (
const List<int>& adjncy, const List<label>& adjncy,
const List<int>& xadj, const List<label>& xadj,
const scalarField& cellWeights, const scalarField& cellWeights,
List<int>& finalDecomp List<label>& finalDecomp
); );

View file

@ -59,20 +59,20 @@ namespace Foam
//- Does prevention of 0 cell domains and calls parmetis. //- Does prevention of 0 cell domains and calls parmetis.
Foam::label Foam::parMetisDecomp::decompose Foam::label Foam::parMetisDecomp::decompose
( (
Field<int>& xadj, Field<label>& xadj,
Field<int>& adjncy, Field<label>& adjncy,
const pointField& cellCentres, const pointField& cellCentres,
Field<int>& cellWeights, Field<label>& cellWeights,
Field<int>& faceWeights, Field<label>& faceWeights,
const List<int>& options, const List<label>& options,
List<int>& finalDecomp List<label>& finalDecomp
) )
{ {
// C style numbering // C style numbering
int numFlag = 0; label numFlag = 0;
// Number of dimensions // Number of dimensions
int nDims = 3; label nDims = 3;
if (cellCentres.size() != xadj.size()-1) if (cellCentres.size() != xadj.size()-1)
@ -85,14 +85,14 @@ Foam::label Foam::parMetisDecomp::decompose
// Get number of cells on all processors // Get number of cells on all processors
List<int> nLocalCells(Pstream::nProcs()); List<label> nLocalCells(Pstream::nProcs());
nLocalCells[Pstream::myProcNo()] = xadj.size()-1; nLocalCells[Pstream::myProcNo()] = xadj.size()-1;
Pstream::gatherList(nLocalCells); Pstream::gatherList(nLocalCells);
Pstream::scatterList(nLocalCells); Pstream::scatterList(nLocalCells);
// Get cell offsets. // Get cell offsets.
List<int> cellOffsets(Pstream::nProcs()+1); List<label> cellOffsets(Pstream::nProcs()+1);
int nGlobalCells = 0; label nGlobalCells = 0;
forAll(nLocalCells, procI) forAll(nLocalCells, procI)
{ {
cellOffsets[procI] = nGlobalCells; cellOffsets[procI] = nGlobalCells;
@ -102,7 +102,7 @@ Foam::label Foam::parMetisDecomp::decompose
// Convert pointField into the data type parMetis expects (float or double) // Convert pointField into the data type parMetis expects (float or double)
Field<real_t> xyz(3*cellCentres.size()); Field<real_t> xyz(3*cellCentres.size());
int compI = 0; label compI = 0;
forAll(cellCentres, cellI) forAll(cellCentres, cellI)
{ {
const point& cc = cellCentres[cellI]; const point& cc = cellCentres[cellI];
@ -120,7 +120,7 @@ Foam::label Foam::parMetisDecomp::decompose
// Number of cells to send to the next processor // Number of cells to send to the next processor
// (is same as number of cells next processor has to receive) // (is same as number of cells next processor has to receive)
List<int> nSendCells(Pstream::nProcs(), 0); List<label> nSendCells(Pstream::nProcs(), 0);
for (label procI = nLocalCells.size()-1; procI >=1; procI--) for (label procI = nLocalCells.size()-1; procI >=1; procI--)
{ {
@ -137,11 +137,11 @@ Foam::label Foam::parMetisDecomp::decompose
// Receive cells from previous processor // Receive cells from previous processor
IPstream fromPrevProc(Pstream::blocking, Pstream::myProcNo()-1); IPstream fromPrevProc(Pstream::blocking, Pstream::myProcNo()-1);
Field<int> prevXadj(fromPrevProc); Field<label> prevXadj(fromPrevProc);
Field<int> prevAdjncy(fromPrevProc); Field<label> prevAdjncy(fromPrevProc);
Field<real_t> prevXyz(fromPrevProc); Field<real_t> prevXyz(fromPrevProc);
Field<int> prevCellWeights(fromPrevProc); Field<label> prevCellWeights(fromPrevProc);
Field<int> prevFaceWeights(fromPrevProc); Field<label> prevFaceWeights(fromPrevProc);
if (prevXadj.size() != nSendCells[Pstream::myProcNo()-1]) if (prevXadj.size() != nSendCells[Pstream::myProcNo()-1])
{ {
@ -172,34 +172,34 @@ Foam::label Foam::parMetisDecomp::decompose
// Send cells to next processor // Send cells to next processor
OPstream toNextProc(Pstream::blocking, Pstream::myProcNo()+1); OPstream toNextProc(Pstream::blocking, Pstream::myProcNo()+1);
int nCells = nSendCells[Pstream::myProcNo()]; label nCells = nSendCells[Pstream::myProcNo()];
int startCell = xadj.size()-1 - nCells; label startCell = xadj.size()-1 - nCells;
int startFace = xadj[startCell]; label startFace = xadj[startCell];
int nFaces = adjncy.size()-startFace; label nFaces = adjncy.size()-startFace;
// Send for all cell data: last nCells elements // Send for all cell data: last nCells elements
// Send for all face data: last nFaces elements // Send for all face data: last nFaces elements
toNextProc toNextProc
<< Field<int>::subField(xadj, nCells, startCell)-startFace << Field<label>::subField(xadj, nCells, startCell)-startFace
<< Field<int>::subField(adjncy, nFaces, startFace) << Field<label>::subField(adjncy, nFaces, startFace)
<< SubField<real_t>(xyz, nDims*nCells, nDims*startCell) << SubField<real_t>(xyz, nDims*nCells, nDims*startCell)
<< <<
( (
cellWeights.size() cellWeights.size()
? static_cast<const Field<int>&> ? static_cast<const Field<label>&>
( (
Field<int>::subField(cellWeights, nCells, startCell) Field<label>::subField(cellWeights, nCells, startCell)
) )
: Field<int>(0) : Field<label>(0)
) )
<< <<
( (
faceWeights.size() faceWeights.size()
? static_cast<const Field<int>&> ? static_cast<const Field<label>&>
( (
Field<int>::subField(faceWeights, nFaces, startFace) Field<label>::subField(faceWeights, nFaces, startFace)
) )
: Field<int>(0) : Field<label>(0)
); );
// Remove data that has been sent // Remove data that has been sent
@ -248,9 +248,9 @@ Foam::label Foam::parMetisDecomp::decompose
} }
// Weight info // Weight info
int wgtFlag = 0; label wgtFlag = 0;
int* vwgtPtr = nullptr; label* vwgtPtr = nullptr;
int* adjwgtPtr = nullptr; label* adjwgtPtr = nullptr;
if (cellWeights.size()) if (cellWeights.size())
{ {
@ -265,7 +265,7 @@ Foam::label Foam::parMetisDecomp::decompose
// Number of weights or balance constraints // Number of weights or balance constraints
int nCon = 1; label nCon = 1;
// Per processor, per constraint the weight // Per processor, per constraint the weight
Field<real_t> tpwgts(nCon*nProcessors_, 1./nProcessors_); Field<real_t> tpwgts(nCon*nProcessors_, 1./nProcessors_);
// Imbalance tolerance // Imbalance tolerance
@ -282,8 +282,10 @@ Foam::label Foam::parMetisDecomp::decompose
finalDecomp.setSize(nLocalCells[Pstream::myProcNo()]); finalDecomp.setSize(nLocalCells[Pstream::myProcNo()]);
// output: number of cut edges // output: number of cut edges
int edgeCut = 0; label edgeCut = 0;
// Number of parts
label nProcs = nProcessors_;
ParMETIS_V3_PartGeomKway ParMETIS_V3_PartGeomKway
( (
@ -297,10 +299,10 @@ Foam::label Foam::parMetisDecomp::decompose
&nDims, &nDims,
xyz.begin(), xyz.begin(),
&nCon, &nCon,
&nProcessors_, // nParts &nProcs, // nParts
tpwgts.begin(), tpwgts.begin(),
ubvec.begin(), ubvec.begin(),
const_cast<List<int>&>(options).begin(), const_cast<List<label>&>(options).begin(),
&edgeCut, &edgeCut,
finalDecomp.begin(), finalDecomp.begin(),
&comm &comm
@ -315,7 +317,7 @@ Foam::label Foam::parMetisDecomp::decompose
{ {
IPstream fromNextProc(Pstream::blocking, Pstream::myProcNo()+1); IPstream fromNextProc(Pstream::blocking, Pstream::myProcNo()+1);
List<int> nextFinalDecomp(fromNextProc); List<label> nextFinalDecomp(fromNextProc);
if (nextFinalDecomp.size() != nSendCells[Pstream::myProcNo()]) if (nextFinalDecomp.size() != nSendCells[Pstream::myProcNo()])
{ {
@ -334,10 +336,10 @@ Foam::label Foam::parMetisDecomp::decompose
{ {
OPstream toPrevProc(Pstream::blocking, Pstream::myProcNo()-1); OPstream toPrevProc(Pstream::blocking, Pstream::myProcNo()-1);
int nToPrevious = nSendCells[Pstream::myProcNo()-1]; label nToPrevious = nSendCells[Pstream::myProcNo()-1];
toPrevProc << toPrevProc <<
SubList<int> SubList<label>
( (
finalDecomp, finalDecomp,
nToPrevious, nToPrevious,
@ -399,9 +401,9 @@ Foam::labelList Foam::parMetisDecomp::decompose
// Connections // Connections
Field<int> adjncy; Field<label> adjncy;
// Offsets into adjncy // Offsets into adjncy
Field<int> xadj; Field<label> xadj;
calcDistributedCSR calcDistributedCSR
( (
mesh_, mesh_,
@ -411,16 +413,16 @@ Foam::labelList Foam::parMetisDecomp::decompose
// decomposition options. 0 = use defaults // decomposition options. 0 = use defaults
List<int> options(3, 0); List<label> options(3, label(0));
//options[0] = 1; // don't use defaults but use values below //options[0] = 1; // don't use defaults but use values below
//options[1] = -1; // full debug info //options[1] = -1; // full debug info
//options[2] = 15; // random number seed //options[2] = 15; // random number seed
// cell weights (so on the vertices of the dual) // cell weights (so on the vertices of the dual)
Field<int> cellWeights; Field<label> cellWeights;
// face weights (so on the edges of the dual) // face weights (so on the edges of the dual)
Field<int> faceWeights; Field<label> faceWeights;
// Check for externally provided cellweights and if so initialise weights // Check for externally provided cellweights and if so initialise weights
@ -527,7 +529,7 @@ Foam::labelList Foam::parMetisDecomp::decompose
faceWeights.setSize(adjncy.size()); faceWeights.setSize(adjncy.size());
// Assume symmetric weights. Keep same ordering as adjncy. // Assume symmetric weights. Keep same ordering as adjncy.
List<int> nFacesPerCell(mesh_.nCells(), 0); List<label> nFacesPerCell(mesh_.nCells(), 0);
// Handle internal faces // Handle internal faces
for (label faceI = 0; faceI < mesh_.nInternalFaces(); faceI++) for (label faceI = 0; faceI < mesh_.nInternalFaces(); faceI++)
@ -581,7 +583,7 @@ Foam::labelList Foam::parMetisDecomp::decompose
// Do actual decomposition // Do actual decomposition
List<int> finalDecomp; List<label> finalDecomp;
decompose decompose
( (
xadj, xadj,
@ -636,7 +638,7 @@ Foam::labelList Foam::parMetisDecomp::decompose
// Get renumbered owner region on other side of coupled faces // Get renumbered owner region on other side of coupled faces
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
List<int> globalNeighbour(mesh_.nFaces()-mesh_.nInternalFaces()); List<label> globalNeighbour(mesh_.nFaces()-mesh_.nInternalFaces());
forAll(patches, patchI) forAll(patches, patchI)
{ {
@ -781,24 +783,24 @@ Foam::labelList Foam::parMetisDecomp::decompose
// Make Metis Distributed CSR (Compressed Storage Format) storage // Make Metis Distributed CSR (Compressed Storage Format) storage
// Connections // Connections
Field<int> adjncy; Field<label> adjncy;
// Offsets into adjncy // Offsets into adjncy
Field<int> xadj; Field<label> xadj;
calcCSR(globalCellCells, adjncy, xadj); calcCSR(globalCellCells, adjncy, xadj);
// decomposition options. 0 = use defaults // decomposition options. 0 = use defaults
List<int> options(3, 0); List<label> options(3, label(0));
//options[0] = 1; // don't use defaults but use values below //options[0] = 1; // don't use defaults but use values below
//options[1] = -1; // full debug info //options[1] = -1; // full debug info
//options[2] = 15; // random number seed //options[2] = 15; // random number seed
// cell weights (so on the vertices of the dual) // cell weights (so on the vertices of the dual)
Field<int> cellWeights; Field<label> cellWeights;
// face weights (so on the edges of the dual) // face weights (so on the edges of the dual)
Field<int> faceWeights; Field<label> faceWeights;
// Check for externally provided cellweights and if so initialise weights // Check for externally provided cellweights and if so initialise weights
@ -860,7 +862,7 @@ Foam::labelList Foam::parMetisDecomp::decompose
// Do actual decomposition // Do actual decomposition
List<int> finalDecomp; List<label> finalDecomp;
decompose decompose
( (
xadj, xadj,

View file

@ -72,14 +72,14 @@ class parMetisDecomp
label decompose label decompose
( (
Field<int>& xadj, Field<label>& xadj,
Field<int>& adjncy, Field<label>& adjncy,
const pointField& cellCentres, const pointField& cellCentres,
Field<int>& cellWeights, Field<label>& cellWeights,
Field<int>& faceWeights, Field<label>& faceWeights,
const List<int>& options, const List<label>& options,
List<int>& finalDecomp List<label>& finalDecomp
); );

View file

@ -164,11 +164,11 @@ void Foam::scotchDecomp::check(const int retVal, const char* str)
// Call scotch with options from dictionary. // Call scotch with options from dictionary.
Foam::label Foam::scotchDecomp::decompose Foam::label Foam::scotchDecomp::decompose
( (
const List<int>& adjncy, const List<label>& adjncy,
const List<int>& xadj, const List<label>& xadj,
const scalarField& cWeights, const scalarField& cWeights,
List<int>& finalDecomp List<label>& finalDecomp
) )
{ {
// Dump graph // Dump graph
@ -247,7 +247,7 @@ Foam::label Foam::scotchDecomp::decompose
// Graph // Graph
// ~~~~~ // ~~~~~
List<int> velotab; List<label> velotab;
// Check for externally provided cellweights and if so initialise weights // Check for externally provided cellweights and if so initialise weights
@ -443,12 +443,12 @@ Foam::labelList Foam::scotchDecomp::decompose
// Make Metis CSR (Compressed Storage Format) storage // Make Metis CSR (Compressed Storage Format) storage
// adjncy : contains neighbours (= edges in graph) // adjncy : contains neighbours (= edges in graph)
// xadj(celli) : start of information in adjncy for celli // xadj(celli) : start of information in adjncy for celli
List<int> adjncy; List<label> adjncy;
List<int> xadj; List<label> xadj;
calcCSR(mesh_, adjncy, xadj); calcCSR(mesh_, adjncy, xadj);
// Decompose using default weights // Decompose using default weights
List<int> finalDecomp; List<label> finalDecomp;
decompose(adjncy, xadj, pointWeights, finalDecomp); decompose(adjncy, xadj, pointWeights, finalDecomp);
// Copy back to labelList // Copy back to labelList
@ -485,8 +485,8 @@ Foam::labelList Foam::scotchDecomp::decompose
// Make Metis CSR (Compressed Storage Format) storage // Make Metis CSR (Compressed Storage Format) storage
// adjncy : contains neighbours (= edges in graph) // adjncy : contains neighbours (= edges in graph)
// xadj(celli) : start of information in adjncy for celli // xadj(celli) : start of information in adjncy for celli
List<int> adjncy; List<label> adjncy;
List<int> xadj; List<label> xadj;
{ {
// Get cellCells on coarse mesh. // Get cellCells on coarse mesh.
labelListList cellCells; labelListList cellCells;
@ -503,7 +503,7 @@ Foam::labelList Foam::scotchDecomp::decompose
} }
// Decompose using weights // Decompose using weights
List<int> finalDecomp; List<label> finalDecomp;
decompose(adjncy, xadj, coarseWeights, finalDecomp); decompose(adjncy, xadj, coarseWeights, finalDecomp);
// Rework back into decomposition for original mesh_ // Rework back into decomposition for original mesh_
@ -543,12 +543,12 @@ Foam::labelList Foam::scotchDecomp::decompose
// adjncy : contains neighbours (= edges in graph) // adjncy : contains neighbours (= edges in graph)
// xadj(celli) : start of information in adjncy for celli // xadj(celli) : start of information in adjncy for celli
List<int> adjncy; List<label> adjncy;
List<int> xadj; List<label> xadj;
calcCSR(globalCellCells, adjncy, xadj); calcCSR(globalCellCells, adjncy, xadj);
// Decompose using weights // Decompose using weights
List<int> finalDecomp; List<label> finalDecomp;
decompose(adjncy, xadj, cWeights, finalDecomp); decompose(adjncy, xadj, cWeights, finalDecomp);
// Copy back to labelList // Copy back to labelList

View file

@ -68,10 +68,10 @@ class scotchDecomp
label decompose label decompose
( (
const List<int>& adjncy, const List<label>& adjncy,
const List<int>& xadj, const List<label>& xadj,
const scalarField& cWeights, const scalarField& cWeights,
List<int>& finalDecomp List<label>& finalDecomp
); );

View file

@ -630,7 +630,14 @@ void Foam::addPatchCellLayer::setRefinement
{ {
labelList n(mesh_.nPoints(), 0); labelList n(mesh_.nPoints(), 0);
IndirectList<label>(n, meshPoints) = nPointLayers; IndirectList<label>(n, meshPoints) = nPointLayers;
syncTools::syncPointList(mesh_, n, maxEqOp<label>(), 0, false); syncTools::syncPointList
(
mesh_,
n,
maxEqOp<label>(),
label(0),
false
);
// Non-synced // Non-synced
forAll(meshPoints, i) forAll(meshPoints, i)
@ -674,7 +681,7 @@ void Foam::addPatchCellLayer::setRefinement
mesh_, mesh_,
nFromFace, nFromFace,
maxEqOp<label>(), maxEqOp<label>(),
0, label(0),
false false
); );
@ -1116,7 +1123,7 @@ void Foam::addPatchCellLayer::setRefinement
mesh_, mesh_,
meshEdgeLayers, meshEdgeLayers,
maxEqOp<label>(), maxEqOp<label>(),
0, // initial value label(0), // initial value
false // no separation false // no separation
); );

View file

@ -707,7 +707,7 @@ void Foam::combineFaces::setRefinement
mesh_, mesh_,
nPointFaces, nPointFaces,
plusEqOp<label>(), plusEqOp<label>(),
0, // null value label(0), // null value
false // no separation false // no separation
); );

View file

@ -1379,7 +1379,7 @@ void Foam::directTopoChange::calcCellInflationMaps
{ {
label nCellsFromFaces = 0; label nCellsFromFaces = 0;
labelList cellsAroundFace(2, -1); labelList cellsAroundFace(2, label(-1));
// Collect all still existing faces connected to this point. // Collect all still existing faces connected to this point.
forAllConstIter(Map<label>, cellFromFace_, iter) forAllConstIter(Map<label>, cellFromFace_, iter)

View file

@ -1453,7 +1453,7 @@ void Foam::refinement::setRefinement(polyTopoChange& ref) const
mesh_, mesh_,
pointLevel_, pointLevel_,
maxEqOp<label>(), maxEqOp<label>(),
0, // Null value label(0), // Null value
true // Apply separation for parallel cyclics true // Apply separation for parallel cyclics
); );

View file

@ -1671,7 +1671,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::polyTopoChanger::changeMesh
} }
} }
labelList cellsAroundFace(2, -1); labelList cellsAroundFace(2, label(-1));
cellsAroundFace[0] = mesh.faceOwner()[ac[acI].masterFaceID()]; cellsAroundFace[0] = mesh.faceOwner()[ac[acI].masterFaceID()];

View file

@ -2406,7 +2406,7 @@ const changeMap dynamicTopoFvMesh::insertCells(const label mIndex)
( (
pointJ, pointJ,
meshJ.oldPoints_[pItJ.key()], meshJ.oldPoints_[pItJ.key()],
labelList(1, -1) labelList(1, label(-1))
) )
); );
@ -2500,7 +2500,7 @@ const changeMap dynamicTopoFvMesh::insertCells(const label mIndex)
( (
pointI, pointI,
meshI.oldPoints_[pItI.key()], meshI.oldPoints_[pItI.key()],
labelList(1, -1) labelList(1, label(-1))
) )
); );
@ -3053,7 +3053,7 @@ const changeMap dynamicTopoFvMesh::insertCells(const label mIndex)
// - Set an invalid number so that // - Set an invalid number so that
// an entry is made in facesFromFaces, // an entry is made in facesFromFaces,
// while faceParents is empty. // while faceParents is empty.
setFaceMapping(fI(), labelList(1, -1)); setFaceMapping(fI(), labelList(1, label(-1)));
} }
else else
{ {

View file

@ -91,7 +91,7 @@ void dynamicTopoFvMesh::computeMapping
if (skipMapping) if (skipMapping)
{ {
// Dummy map from cell[0] // Dummy map from cell[0]
masterObjects = labelList(1, 0); masterObjects = labelList(1, label(0));
cellWeights_[cellI].setSize(1, 1.0); cellWeights_[cellI].setSize(1, 1.0);
cellCentres_[cellI].setSize(1, vector::zero); cellCentres_[cellI].setSize(1, vector::zero);
} }
@ -248,7 +248,7 @@ void dynamicTopoFvMesh::computeMapping
{ {
// Set dummy masters, so that the conventional // Set dummy masters, so that the conventional
// faceMapper doesn't crash-and-burn // faceMapper doesn't crash-and-burn
masterObjects = labelList(1, 0); masterObjects = labelList(1, label(0));
continue; continue;
} }
@ -256,7 +256,7 @@ void dynamicTopoFvMesh::computeMapping
if (skipMapping) if (skipMapping)
{ {
// Dummy map from patch[0] // Dummy map from patch[0]
masterObjects = labelList(1, 0); masterObjects = labelList(1, label(0));
faceWeights_[faceI].setSize(1, 1.0); faceWeights_[faceI].setSize(1, 1.0);
faceCentres_[faceI].setSize(1, vector::zero); faceCentres_[faceI].setSize(1, vector::zero);
} }

View file

@ -1901,7 +1901,7 @@ void dynamicTopoFvMesh::threadedMeshReOrdering
reOrderPtr[3].set(0, &cellZoneMap); reOrderPtr[3].set(0, &cellZoneMap);
// Set the thread scheduling sequence // Set the thread scheduling sequence
labelList reOrderSeq(4, -1); labelList reOrderSeq(4, label(-1));
// Points, cells, faces and edges (in that order) // Points, cells, faces and edges (in that order)
reOrderSeq[0] = 0; reOrderSeq[0] = 0;

View file

@ -110,7 +110,7 @@ const changeMap dynamicTopoFvMesh::bisectQuadFace
bool found; bool found;
label replaceFace = -1, retainFace = -1; label replaceFace = -1, retainFace = -1;
face tmpQuadFace(4), tmpTriFace(3); face tmpQuadFace(4), tmpTriFace(3);
labelList tmpQFEdges(4, -1), tmpTFEdges(3, -1); labelList tmpQFEdges(4, label(-1)), tmpTFEdges(3, label(-1));
FixedList<label,7> newFaceIndex(-1), newEdgeIndex(-1); FixedList<label,7> newFaceIndex(-1), newEdgeIndex(-1);
FixedList<edge,4> commonEdges(edge(-1, -1)); FixedList<edge,4> commonEdges(edge(-1, -1));
FixedList<label,4> cornerEdgeIndex(-1), commonEdgeIndex(-1); FixedList<label,4> cornerEdgeIndex(-1), commonEdgeIndex(-1);
@ -455,7 +455,7 @@ const changeMap dynamicTopoFvMesh::bisectQuadFace
// Fill the masterMap with points that // Fill the masterMap with points that
// we seek maps for... // we seek maps for...
FixedList<labelList, 2> slaveEdges(labelList(2, -1)); FixedList<labelList, 2> slaveEdges(labelList(2, label(-1)));
forAll(slaveEdges, edgeI) forAll(slaveEdges, edgeI)
{ {
@ -597,7 +597,7 @@ const changeMap dynamicTopoFvMesh::bisectQuadFace
// Write out VTK files prior to change // Write out VTK files prior to change
if (debug > 3) if (debug > 3)
{ {
labelList cellHull(2, -1); labelList cellHull(2, label(-1));
cellHull[0] = owner_[fIndex]; cellHull[0] = owner_[fIndex];
cellHull[1] = neighbour_[fIndex]; cellHull[1] = neighbour_[fIndex];
@ -632,7 +632,7 @@ const changeMap dynamicTopoFvMesh::bisectQuadFace
otherEdgePoint[0] = commonEdges[0].otherVertex(nextToOtherPoint[0]); otherEdgePoint[0] = commonEdges[0].otherVertex(nextToOtherPoint[0]);
otherEdgePoint[1] = commonEdges[1].otherVertex(nextToOtherPoint[1]); otherEdgePoint[1] = commonEdges[1].otherVertex(nextToOtherPoint[1]);
labelList mP(2, -1); labelList mP(2, label(-1));
// Set mapping for this point // Set mapping for this point
mP[0] = commonEdges[0][0]; mP[0] = commonEdges[0][0];
@ -1000,7 +1000,7 @@ const changeMap dynamicTopoFvMesh::bisectQuadFace
); );
// Create / modify edges... // Create / modify edges...
labelList tmpTriEdgeFaces(3, -1); labelList tmpTriEdgeFaces(3, label(-1));
// The edge bisecting the zeroth boundary triangular face // The edge bisecting the zeroth boundary triangular face
tmpTriEdgeFaces[0] = c0BdyIndex[0]; tmpTriEdgeFaces[0] = c0BdyIndex[0];
@ -1125,7 +1125,7 @@ const changeMap dynamicTopoFvMesh::bisectQuadFace
newCells[0] newCells[0]
); );
labelList tmpBiEdgeFaces(2, -1); labelList tmpBiEdgeFaces(2, label(-1));
// The edge bisecting the face // The edge bisecting the face
tmpTriEdgeFaces[0] = newFaceIndex[3]; tmpTriEdgeFaces[0] = newFaceIndex[3];
@ -1636,7 +1636,7 @@ const changeMap dynamicTopoFvMesh::bisectQuadFace
); );
// Create / modify edges... // Create / modify edges...
labelList tmpQuadEdgeFaces(4, -1); labelList tmpQuadEdgeFaces(4, label(-1));
// The internal edge bisecting the face // The internal edge bisecting the face
tmpQuadEdgeFaces[0] = fIndex; tmpQuadEdgeFaces[0] = fIndex;
@ -2197,7 +2197,7 @@ const changeMap dynamicTopoFvMesh::bisectQuadFace
// Write out VTK files after change // Write out VTK files after change
if (debug > 3) if (debug > 3)
{ {
labelList cellHull(4, -1); labelList cellHull(4, label(-1));
cellHull[0] = owner_[fIndex]; cellHull[0] = owner_[fIndex];
cellHull[1] = neighbour_[fIndex]; cellHull[1] = neighbour_[fIndex];
@ -2838,9 +2838,9 @@ const changeMap dynamicTopoFvMesh::bisectEdge
// Hull variables // Hull variables
face tmpTriFace(3); face tmpTriFace(3);
edge origEdge(edges_[eIndex]); edge origEdge(edges_[eIndex]);
labelList tmpEdgeFaces(3,-1); labelList tmpEdgeFaces(3, label(-1));
labelList tmpIntEdgeFaces(4,-1); labelList tmpIntEdgeFaces(4, label(-1));
labelList tmpFaceEdges(3,-1); labelList tmpFaceEdges(3, label(-1));
// Build vertexHull for this edge // Build vertexHull for this edge
labelList vertexHull; labelList vertexHull;
@ -2848,9 +2848,9 @@ const changeMap dynamicTopoFvMesh::bisectEdge
// Size up the hull lists // Size up the hull lists
label m = vertexHull.size(); label m = vertexHull.size();
labelList cellHull(m, -1); labelList cellHull(m, label(-1));
labelList faceHull(m, -1); labelList faceHull(m, label(-1));
labelList edgeHull(m, -1); labelList edgeHull(m, label(-1));
labelListList ringEntities(4, labelList(m, -1)); labelListList ringEntities(4, labelList(m, -1));
// Construct a hull around this edge // Construct a hull around this edge
@ -2917,7 +2917,7 @@ const changeMap dynamicTopoFvMesh::bisectEdge
} }
} }
labelList mP(2, -1); labelList mP(2, label(-1));
// Set mapping for this point // Set mapping for this point
mP[0] = edges_[eIndex][0]; mP[0] = edges_[eIndex][0];
@ -3108,7 +3108,7 @@ const changeMap dynamicTopoFvMesh::bisectEdge
tmpTriFace, tmpTriFace,
addedCellIndices[indexI], addedCellIndices[indexI],
-1, -1,
labelList(3, -1) labelList(3, label(-1))
) )
); );
@ -3188,7 +3188,7 @@ const changeMap dynamicTopoFvMesh::bisectEdge
tmpTriFace, tmpTriFace,
addedCellIndices[prevI], addedCellIndices[prevI],
addedCellIndices[indexI], addedCellIndices[indexI],
labelList(3, -1) labelList(3, label(-1))
) )
); );
@ -3278,7 +3278,7 @@ const changeMap dynamicTopoFvMesh::bisectEdge
tmpTriFace, tmpTriFace,
addedCellIndices[0], addedCellIndices[0],
addedCellIndices[indexI], addedCellIndices[indexI],
labelList(3, -1) labelList(3, label(-1))
) )
); );
@ -3370,7 +3370,7 @@ const changeMap dynamicTopoFvMesh::bisectEdge
tmpTriFace, tmpTriFace,
addedCellIndices[prevI], addedCellIndices[prevI],
-1, -1,
labelList(3, -1) labelList(3, label(-1))
) )
); );
@ -4941,7 +4941,7 @@ const changeMap dynamicTopoFvMesh::addCellLayer
addedCells.insert(cIndex, labelPair(newCellIndex, 0)); addedCells.insert(cIndex, labelPair(newCellIndex, 0));
} }
labelList mP(2, -1); labelList mP(2, label(-1));
forAll(patchFaces, indexI) forAll(patchFaces, indexI)
{ {
@ -5211,7 +5211,7 @@ const changeMap dynamicTopoFvMesh::addCellLayer
} }
// Configure faceEdges for the new vertical face // Configure faceEdges for the new vertical face
labelList newVFaceEdges(4, -1); labelList newVFaceEdges(4, label(-1));
newVFaceEdges[0] = beIndex; newVFaceEdges[0] = beIndex;
newVFaceEdges[1] = newHEdgeIndex; newVFaceEdges[1] = newHEdgeIndex;

View file

@ -2471,7 +2471,7 @@ const changeMap dynamicTopoFvMesh::collapseQuadFace
} }
// Ensure proper orientation for the two retained faces // Ensure proper orientation for the two retained faces
FixedList<label,2> cellCheck(0); FixedList<label,2> cellCheck(label(0));
if (owner_[faceToThrow[0]] == c0) if (owner_[faceToThrow[0]] == c0)
{ {
@ -3142,7 +3142,7 @@ const changeMap dynamicTopoFvMesh::collapseQuadFace
} }
// Fill-in candidate mapping information // Fill-in candidate mapping information
labelList mC(2, -1); labelList mC(2, label(-1));
mC[0] = c0, mC[1] = c1; mC[0] = c0, mC[1] = c1;
// Now that all old / new cells possess correct connectivity, // Now that all old / new cells possess correct connectivity,
@ -4781,7 +4781,10 @@ const changeMap dynamicTopoFvMesh::collapseEdge
// Check whether points of the edge lies on a boundary // Check whether points of the edge lies on a boundary
const FixedList<bool,2> edgeBoundary = checkEdgeBoundary(eIndex); const FixedList<bool,2> edgeBoundary = checkEdgeBoundary(eIndex);
FixedList<label, 2> nBoundCurves(0), nProcCurves(0), checkPoints(-1); FixedList<label, 2>
nBoundCurves(label(0)),
nProcCurves(label(0)),
checkPoints(label(-1));
// Decide on collapseCase // Decide on collapseCase
label collapseCase = -1; label collapseCase = -1;

View file

@ -717,7 +717,7 @@ const changeMap dynamicTopoFvMesh::swapQuadFace
// Write out VTK files before change // Write out VTK files before change
if (debug > 3) if (debug > 3)
{ {
labelList cellHull(2, -1); labelList cellHull(2, label(-1));
cellHull[0] = c0; cellHull[0] = c0;
cellHull[1] = c1; cellHull[1] = c1;
@ -1041,7 +1041,7 @@ const changeMap dynamicTopoFvMesh::swapQuadFace
edges_[commonEdgeIndex[1]] = newEdges[1]; edges_[commonEdgeIndex[1]] = newEdges[1];
// Fill-in mapping information // Fill-in mapping information
labelList mC(2, -1); labelList mC(2, label(-1));
mC[0] = c0; mC[1] = c1; mC[0] = c0; mC[1] = c1;
forAll(mC, cellI) forAll(mC, cellI)
@ -1056,7 +1056,7 @@ const changeMap dynamicTopoFvMesh::swapQuadFace
// Write out VTK files after change // Write out VTK files after change
if (debug > 3) if (debug > 3)
{ {
labelList cellHull(2, -1); labelList cellHull(2, label(-1));
cellHull[0] = c0; cellHull[0] = c0;
cellHull[1] = c1; cellHull[1] = c1;
@ -3080,7 +3080,7 @@ const changeMap dynamicTopoFvMesh::swap32
newTriFace, newTriFace,
newCellIndex[0], newCellIndex[0],
newCellIndex[1], newCellIndex[1],
labelList(3, -1) labelList(3, label(-1))
) )
); );
@ -3099,8 +3099,8 @@ const changeMap dynamicTopoFvMesh::swap32
// For 2-2 swaps, two faces are introduced // For 2-2 swaps, two faces are introduced
label nE = 0, nBf = 0; label nE = 0, nBf = 0;
FixedList<label,2> nBE(0); FixedList<label,2> nBE(label(0));
FixedList<labelList,2> bdyFaceEdges(labelList(3, -1)); FixedList<labelList,2> bdyFaceEdges(labelList(3, label(-1)));
// Fill-in information for the two new cells, // Fill-in information for the two new cells,
// and correct info on existing neighbouring cells // and correct info on existing neighbouring cells
@ -3111,14 +3111,14 @@ const changeMap dynamicTopoFvMesh::swap32
// For a 2-2 swap on a boundary edge, // For a 2-2 swap on a boundary edge,
// add two boundary faces and an edge // add two boundary faces and an edge
label newEdgeIndex = -1; label newEdgeIndex = -1;
labelList oldBdyFaceIndex(2, -1), newBdyFaceIndex(2, -1); labelList oldBdyFaceIndex(2, label(-1)), newBdyFaceIndex(2, label(-1));
if (edgePatch > -1) if (edgePatch > -1)
{ {
// Temporary local variables // Temporary local variables
label facePatch = -1; label facePatch = -1;
edge newEdge(-1, -1); edge newEdge(-1, -1);
FixedList<label,2> nBEdge(0); FixedList<label,2> nBEdge(label(0));
FixedList<FixedList<label,2>,2> bdyEdges; FixedList<FixedList<label,2>,2> bdyEdges;
FixedList<face,2> newBdyTriFace(face(3)); FixedList<face,2> newBdyTriFace(face(3));
@ -3204,7 +3204,7 @@ const changeMap dynamicTopoFvMesh::swap32
newBdyTriFace[0], newBdyTriFace[0],
newCellIndex[1], newCellIndex[1],
-1, -1,
labelList(3, -1) labelList(3, label(-1))
) )
); );
@ -3220,7 +3220,7 @@ const changeMap dynamicTopoFvMesh::swap32
newBdyTriFace[1], newBdyTriFace[1],
newCellIndex[0], newCellIndex[0],
-1, -1,
labelList(3, -1) labelList(3, label(-1))
) )
); );
@ -3232,7 +3232,7 @@ const changeMap dynamicTopoFvMesh::swap32
newTetCell[1][nF1++] = newBdyFaceIndex[0]; newTetCell[1][nF1++] = newBdyFaceIndex[0];
// Add an edgeFaces entry // Add an edgeFaces entry
labelList newBdyEdgeFaces(3, -1); labelList newBdyEdgeFaces(3, label(-1));
newBdyEdgeFaces[0] = newBdyFaceIndex[0]; newBdyEdgeFaces[0] = newBdyFaceIndex[0];
newBdyEdgeFaces[1] = newFaceIndex; newBdyEdgeFaces[1] = newFaceIndex;
newBdyEdgeFaces[2] = newBdyFaceIndex[1]; newBdyEdgeFaces[2] = newBdyFaceIndex[1];

View file

@ -362,7 +362,7 @@ void topoPatchMapper::calcAddressing() const
if (isA<processorPolyPatch>(patch_.patch())) if (isA<processorPolyPatch>(patch_.patch()))
{ {
// Artificially map from face[0] of this patch. // Artificially map from face[0] of this patch.
addr[faceI] = labelList(1, 0); addr[faceI] = labelList(1, label(0));
continue; continue;
} }

View file

@ -1248,7 +1248,7 @@ void mesquiteMotionSolver::initArrays()
label nCellPoints = 0, nFacePoints = 0; label nCellPoints = 0, nFacePoints = 0;
// Construct shape recognizers // Construct shape recognizers
FixedList<label, 4> nTypes(0); FixedList<label, 4> nTypes(label(0));
FixedList<autoPtr<cellMatcher>, 4> matcher; FixedList<autoPtr<cellMatcher>, 4> matcher;
FixedList<Mesquite::EntityTopology, 4> cellType; FixedList<Mesquite::EntityTopology, 4> cellType;
@ -2513,7 +2513,7 @@ void mesquiteMotionSolver::initMesquiteParallelArrays()
nSharedPoints[pI] = nProcPoints; nSharedPoints[pI] = nProcPoints;
// Initialize type sizes // Initialize type sizes
FixedList<label, 4> nTypes(0); FixedList<label, 4> nTypes(label(0));
// Set an initial capacity for cell types // Set an initial capacity for cell types
myTypes[pI].setCapacity(50); myTypes[pI].setCapacity(50);

View file

@ -521,7 +521,7 @@ Foam::faMesh::faMesh
{ {
label curMeshEdge = meshEdges[edgeI]; label curMeshEdge = meshEdges[edgeI];
labelList curEdgePatchIDs(2, -1); labelList curEdgePatchIDs(2, label(-1));
label patchI = -1; label patchI = -1;
@ -1054,13 +1054,13 @@ void Foam::faMesh::addFaPatches(const List<faPatch*>& p)
} }
Foam::label Foam::faMesh::comm() const int Foam::faMesh::comm() const
{ {
return comm_; return comm_;
} }
Foam::label& Foam::faMesh::comm() int& Foam::faMesh::comm()
{ {
return comm_; return comm_;
} }

View file

@ -116,7 +116,7 @@ class faMesh
// Communication support // Communication support
//- Communicator used for parallel communication //- Communicator used for parallel communication
label comm_; int comm_;
// Demand-driven data // Demand-driven data
@ -380,10 +380,10 @@ public:
// Communication support // Communication support
//- Return communicator used for parallel communication //- Return communicator used for parallel communication
label comm() const; int comm() const;
//- Return communicator used for parallel communication //- Return communicator used for parallel communication
label& comm(); int& comm();
// Access // Access

View file

@ -56,7 +56,7 @@ processorFaPatch::~processorFaPatch()
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
Foam::label Foam::processorFaPatch::comm() const int Foam::processorFaPatch::comm() const
{ {
return boundaryMesh().mesh().comm(); return boundaryMesh().mesh().comm();
} }

View file

@ -211,7 +211,7 @@ public:
// Communications support // Communications support
//- Return communicator used for communication //- Return communicator used for communication
virtual label comm() const; virtual int comm() const;
//- Return message tag to use for communication //- Return message tag to use for communication
virtual int tag() const; virtual int tag() const;

View file

@ -94,7 +94,7 @@ void Foam::fvSurfaceMapper::calcAddressing() const
{ {
if (max(addr[faceI]) >= oldNInternal) if (max(addr[faceI]) >= oldNInternal)
{ {
addr[faceI] = labelList(1, 0); addr[faceI] = labelList(1, label(0));
w[faceI] = scalarList(1, 1.0); w[faceI] = scalarList(1, 1.0);
} }
} }

View file

@ -1279,7 +1279,7 @@ template <class Type>
void Foam::treeNode<Type>::writeOBJ void Foam::treeNode<Type>::writeOBJ
( (
Ostream& os, Ostream& os,
const label level, const int level,
label& vertNo label& vertNo
) const ) const
{ {

View file

@ -278,7 +278,7 @@ public:
// Updates: start // Updates: start
const treeLeaf<Type>* findLeafLine const treeLeaf<Type>* findLeafLine
( (
const label level, const int level,
const Type& shapes, const Type& shapes,
point& start, point& start,
const point& end const point& end
@ -314,7 +314,7 @@ public:
void writeOBJ void writeOBJ
( (
Ostream& os, Ostream& os,
const label level, const int level,
label& vertNo label& vertNo
) const; ) const;

View file

@ -157,7 +157,7 @@ Foam::label Foam::IPstream::read
// Check size of message read // Check size of message read
label messageSize; int messageSize;
MPI_Get_count(&status, MPI_BYTE, &messageSize); MPI_Get_count(&status, MPI_BYTE, &messageSize);
if (messageSize > bufSize) if (messageSize > bufSize)

View file

@ -65,7 +65,7 @@ class IPstream
const label comm_; const label comm_;
//- Message size //- Message size
label messageSize_; int messageSize_;
// Private member functions // Private member functions

View file

@ -311,7 +311,12 @@ void Foam::Pstream::allocatePstreamCommunicator
// Set the number of processes to the actual number // Set the number of processes to the actual number
int numProcs; int numProcs;
MPI_Comm_size(PstreamGlobals::MPICommunicators_[index], &numProcs); MPI_Comm_size(PstreamGlobals::MPICommunicators_[index], &numProcs);
procIDs_[index] = identity(numProcs); //procIDs_[index] = identity(numProcs);
procIDs_[index].setSize(numProcs);
forAll(procIDs_[index], i)
{
procIDs_[index][i] = i;
}
} }
else else
{ {
@ -905,7 +910,7 @@ Foam::Pstream::treeCommunication_(10);
// Allocate a serial communicator. This gets overwritten in parallel mode // Allocate a serial communicator. This gets overwritten in parallel mode
// (by Pstream::setParRun()) // (by Pstream::setParRun())
Foam::Pstream::communicator serialComm(-1, Foam::labelList(1, 0), false); Foam::Pstream::communicator serialComm(-1, Foam::labelList(1, Foam::label(0)), false);
// Number of processors at which the reduce algorithm changes from linear to // Number of processors at which the reduce algorithm changes from linear to
// tree // tree

View file

@ -46,11 +46,17 @@ Foam::List<T> Foam::transform
template <class T> template <class T>
void Foam::transformList void Foam::transformList(const tensor& rotTensor, UList<T>& field)
( {
const tensorField& rotTensor, forAll(field, i)
UList<T>& field {
) field[i] = transform(rotTensor, field[i]);
}
}
template <class T>
void Foam::transformList(const tensorField& rotTensor, UList<T>& field)
{ {
if (rotTensor.size() == 1) if (rotTensor.size() == 1)
{ {
@ -79,11 +85,17 @@ void Foam::transformList
template <class T> template <class T>
void Foam::transformList void Foam::transformList(const tensor& rotTensor, Map<T>& field)
( {
const tensorField& rotTensor, forAllIter(typename Map<T>, field, iter)
Map<T>& field {
) iter() = transform(rotTensor[0], iter());
}
}
template <class T>
void Foam::transformList(const tensorField& rotTensor, Map<T>& field)
{ {
if (rotTensor.size() == 1) if (rotTensor.size() == 1)
{ {
@ -105,11 +117,17 @@ void Foam::transformList
template <class T> template <class T>
void Foam::transformList void Foam::transformList(const tensor& rotTensor, EdgeMap<T>& field)
( {
const tensorField& rotTensor, forAllIter(typename EdgeMap<T>, field, iter)
EdgeMap<T>& field {
) iter() = transform(rotTensor[0], iter());
}
}
template <class T>
void Foam::transformList(const tensorField& rotTensor, EdgeMap<T>& field)
{ {
if (rotTensor.size() == 1) if (rotTensor.size() == 1)
{ {

View file

@ -60,33 +60,80 @@ List<T> transform
//- Apply transformation to list. Either single transformation tensor //- Apply transformation to list. Either single transformation tensor
// or one tensor per element. // or one tensor per element.
template<class T> template<class T>
void transformList(const tensor&, UList<T>&);
template<class T>
void transformList(const tensorField&, UList<T>&); void transformList(const tensorField&, UList<T>&);
template<class T>
void transformList(const tensor&, Map<T>&);
template<class T> template<class T>
void transformList(const tensorField&, Map<T>&); void transformList(const tensorField&, Map<T>&);
template<class T>
void transformList(const tensor&, EdgeMap<T>&);
template<class T> template<class T>
void transformList(const tensorField&, EdgeMap<T>&); void transformList(const tensorField&, EdgeMap<T>&);
// Specialisations for bool
template<> template<>
inline void transformList(const tensorField&, UList<label>&) inline void transformList(const tensor&, UList<bool>&)
{}
template<>
inline void transformList(const tensorField&, UList<bool>&)
{}
template<>
inline void transformList(const tensor&, Map<bool>&)
{}
template<>
inline void transformList(const tensorField&, Map<bool>&)
{}
template<>
inline void transformList(const tensor&, EdgeMap<bool>&)
{}
template<>
inline void transformList(const tensorField&, EdgeMap<bool>&)
{}
// Specialisations for label
template<>
inline void transformList(const tensor&, labelUList&)
{}
template<>
inline void transformList(const tensorField&, labelUList&)
{}
template<>
inline void transformList(const tensor&, Map<label>&)
{} {}
template<> template<>
inline void transformList(const tensorField&, Map<label>&) inline void transformList(const tensorField&, Map<label>&)
{} {}
template<> template<>
inline void transformList(const tensor&, EdgeMap<label>&)
{}
template<>
inline void transformList(const tensorField&, EdgeMap<label>&) inline void transformList(const tensorField&, EdgeMap<label>&)
{} {}
// Specialisations for scalar
template<>
inline void transformList(const tensor&, UList<scalar>&)
{}
template<> template<>
inline void transformList(const tensorField&, UList<scalar>&) inline void transformList(const tensorField&, UList<scalar>&)
{} {}
template<> template<>
inline void transformList(const tensor&, Map<scalar>&)
{}
template<>
inline void transformList(const tensorField&, Map<scalar>&) inline void transformList(const tensorField&, Map<scalar>&)
{} {}
template<> template<>
inline void transformList(const tensor&, EdgeMap<scalar>&)
{}
template<>
inline void transformList(const tensorField&, EdgeMap<scalar>&) inline void transformList(const tensorField&, EdgeMap<scalar>&)
{} {}

View file

@ -81,18 +81,18 @@ inline bool operator==
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T>& rhs
); );
template<class T> template<class T1, class T2>
inline bool operator== inline bool operator==
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
); );
template<class T> template<class T1, class T2>
inline bool operator== inline bool operator==
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const T& rhs const T2& rhs
); );
template<class T> template<class T>
@ -102,18 +102,18 @@ inline bool operator!=
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T>& rhs
); );
template<class T> template<class T1, class T2>
inline bool operator!= inline bool operator!=
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
); );
template<class T> template<class T1, class T2>
inline bool operator!= inline bool operator!=
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const T& rhs const T2& rhs
); );
template<class T> template<class T>
@ -123,18 +123,18 @@ inline bool operator>=
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T>& rhs
); );
template<class T> template<class T1, class T2>
inline bool operator>= inline bool operator>=
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
); );
template<class T> template<class T1, class T2>
inline bool operator>= inline bool operator>=
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const T& rhs const T2& rhs
); );
template<class T> template<class T>
@ -144,18 +144,18 @@ inline bool operator>
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T>& rhs
); );
template<class T> template<class T1, class T2>
inline bool operator> inline bool operator>
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
); );
template<class T> template<class T1, class T2>
inline bool operator> inline bool operator>
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const T& rhs const T2& rhs
); );
template<class T> template<class T>
@ -165,18 +165,18 @@ inline bool operator<=
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T>& rhs
); );
template<class T> template<class T1, class T2>
inline bool operator<= inline bool operator<=
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
); );
template<class T> template<class T1, class T2>
inline bool operator<= inline bool operator<=
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const T& rhs const T2& rhs
); );
template<class T> template<class T>
@ -186,11 +186,11 @@ inline bool operator<
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T>& rhs
); );
template<class T> template<class T1, class T2>
inline bool operator< inline bool operator<
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
); );
template<class T> template<class T>

View file

@ -41,33 +41,33 @@ inline const T Foam::debug::controlSwitches<T>::operator&(const T& rhs)
// * * * * * * * * * * * * * * * Global Operators * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Global Operators * * * * * * * * * * * * * //
template<class T> template<class T1, class T2>
inline bool Foam::operator== inline bool Foam::operator==
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
) )
{ {
return lhs() == rhs(); return lhs() == rhs();
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator== inline bool Foam::operator==
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
) )
{ {
return lhs == rhs(); return lhs == rhs();
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator== inline bool Foam::operator==
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const T& rhs const T2& rhs
) )
{ {
return lhs() == rhs; return lhs() == rhs;
@ -85,22 +85,22 @@ inline bool Foam::operator!=
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator!= inline bool Foam::operator!=
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
) )
{ {
return lhs != rhs(); return lhs != rhs();
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator!= inline bool Foam::operator!=
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const T& rhs const T2& rhs
) )
{ {
return lhs() != rhs; return lhs() != rhs;
@ -118,22 +118,22 @@ inline bool Foam::operator>=
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator>= inline bool Foam::operator>=
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
) )
{ {
return lhs >= rhs(); return lhs >= rhs();
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator>= inline bool Foam::operator>=
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const T& rhs const T2& rhs
) )
{ {
return lhs() >= rhs; return lhs() >= rhs;
@ -151,22 +151,22 @@ inline bool Foam::operator>
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator> inline bool Foam::operator>
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
) )
{ {
return lhs > rhs(); return lhs > rhs();
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator> inline bool Foam::operator>
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const T& rhs const T2& rhs
) )
{ {
return lhs() > rhs; return lhs() > rhs;
@ -184,22 +184,22 @@ inline bool Foam::operator<=
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator<= inline bool Foam::operator<=
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
) )
{ {
return lhs <= rhs(); return lhs <= rhs();
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator<= inline bool Foam::operator<=
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const T& rhs const T2& rhs
) )
{ {
return lhs() <= rhs; return lhs() <= rhs;
@ -217,22 +217,22 @@ inline bool Foam::operator<
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator< inline bool Foam::operator<
( (
const T& lhs, const T1& lhs,
const debug::controlSwitches<T>& rhs const debug::controlSwitches<T2>& rhs
) )
{ {
return lhs < rhs(); return lhs < rhs();
} }
template<class T> template<class T1, class T2>
inline bool Foam::operator< inline bool Foam::operator<
( (
const debug::controlSwitches<T>& lhs, const debug::controlSwitches<T1>& lhs,
const T& rhs const T2& rhs
) )
{ {
return lhs() < rhs; return lhs() < rhs;

View file

@ -130,7 +130,7 @@ void Foam::BlockLduMatrix<Type>::updateInterfaces
// Try and consume interfaces as they become available // Try and consume interfaces as they become available
bool allUpdated = false; bool allUpdated = false;
for (label i = 0; i < Pstream::nPollProcInterfaces; i++) for (int i = 0; i < Pstream::nPollProcInterfaces; i++)
{ {
allUpdated = true; allUpdated = true;

View file

@ -59,7 +59,7 @@ Foam::autoPtr<Foam::crMatrix> Foam::lduInterface::prolongationTransfer
); );
// Dummy return to make the compiler happy // Dummy return to make the compiler happy
return autoPtr<crMatrix>(new crMatrix(1, 1, labelList(1, 0))); return autoPtr<crMatrix>(NULL);
} }

View file

@ -70,7 +70,7 @@ class lduPrimitiveMesh
lduSchedule patchSchedule_; lduSchedule patchSchedule_;
//- Communicator to use for parallel communication //- Communicator to use for parallel communication
const label comm_; const int comm_;
// Private Member Functions // Private Member Functions
@ -93,7 +93,7 @@ public:
const label nCells, const label nCells,
const unallocLabelList& l, const unallocLabelList& l,
const unallocLabelList& u, const unallocLabelList& u,
const label comm const int comm
) )
: :
lduAddressing(nCells), lduAddressing(nCells),
@ -109,7 +109,7 @@ public:
const label nCells, const label nCells,
labelList& l, labelList& l,
labelList& u, labelList& u,
const label comm, const int comm,
bool reUse bool reUse
) )
: :
@ -203,7 +203,7 @@ public:
} }
//- Return communicator used for parallel communication //- Return communicator used for parallel communication
virtual label comm() const virtual int comm() const
{ {
return comm_; return comm_;
} }

View file

@ -88,7 +88,7 @@ void Foam::pointPatchMapper::calcAddressing() const
else else
{ {
// Inserted point. Map from point0 (arbitrary choice) // Inserted point. Map from point0 (arbitrary choice)
addr[i] = labelList(1, 0); addr[i] = labelList(1, label(0));
w[i] = scalarList(1, 1.0); w[i] = scalarList(1, 1.0);
} }
} }

View file

@ -202,7 +202,7 @@ void Foam::cellMapper::calcAddressing() const
if (addr[cellI].empty()) if (addr[cellI].empty())
{ {
// Mapped from a dummy cell // Mapped from a dummy cell
addr[cellI] = labelList(1, 0); addr[cellI] = labelList(1, label(0));
w[cellI] = scalarList(1, 1.0); w[cellI] = scalarList(1, 1.0);
insertedCells[nInsertedCells] = cellI; insertedCells[nInsertedCells] = cellI;

View file

@ -177,7 +177,7 @@ void Foam::faceMapper::calcAddressing() const
if (addr[faceI].empty()) if (addr[faceI].empty())
{ {
// Mapped from a dummy face // Mapped from a dummy face
addr[faceI] = labelList(1, 0); addr[faceI] = labelList(1, label(0));
w[faceI] = scalarList(1, 1.0); w[faceI] = scalarList(1, 1.0);
insertedFaces[nInsertedFaces] = faceI; insertedFaces[nInsertedFaces] = faceI;

View file

@ -138,7 +138,7 @@ void Foam::pointMapper::calcAddressing() const
if (addr[pointI].size() == 0) if (addr[pointI].size() == 0)
{ {
// Mapped from a dummy point. Take point 0 with weight 1. // Mapped from a dummy point. Take point 0 with weight 1.
addr[pointI] = labelList(1, 0); addr[pointI] = labelList(1, label(0));
w[pointI] = scalarList(1, 1.0); w[pointI] = scalarList(1, 1.0);
insertedPoints[nInsertedPoints] = pointI; insertedPoints[nInsertedPoints] = pointI;

View file

@ -823,7 +823,7 @@ inline Cmpt det(const TensorN<Cmpt, length>& t)
} }
// Handle +/- sign switch // Handle +/- sign switch
result += pow(-1, i)*t(i, 0)*det(subMatrix); result += pow(label(-1), i)*t(i, 0)*det(subMatrix);
} }
return result; return result;

View file

@ -70,6 +70,12 @@ inline tmp<tensorField> rotationTensor
} }
inline label transform(const tensor&, const bool i)
{
return i;
}
inline label transform(const tensor&, const label i) inline label transform(const tensor&, const label i)
{ {
return i; return i;

View file

@ -106,7 +106,7 @@ makeCompactCellFaceAddressingAndFaceWeights
Foam::tmp<Foam::labelField> Foam::MGridGenGAMGAgglomeration::agglomerate Foam::tmp<Foam::labelField> Foam::MGridGenGAMGAgglomeration::agglomerate
( (
label& nCoarseCells, int& nCoarseCells,
const label minSize, const label minSize,
const label maxSize, const label maxSize,
const lduAddressing& fineAddressing, const lduAddressing& fineAddressing,
@ -135,7 +135,7 @@ Foam::tmp<Foam::labelField> Foam::MGridGenGAMGAgglomeration::agglomerate
); );
// MGridGen agglomeration options. // MGridGen agglomeration options.
labelList options(4, 0); List<int> options(4);
options[0] = 4; // globular agglom options[0] = 4; // globular agglom
options[1] = 6; // objective F3 and F2 options[1] = 6; // objective F3 and F2
options[2] = 128; // debugging output level options[2] = 128; // debugging output level
@ -143,7 +143,7 @@ Foam::tmp<Foam::labelField> Foam::MGridGenGAMGAgglomeration::agglomerate
// output: cell -> processor addressing // output: cell -> processor addressing
List<int> finalAgglom(nFineCells); List<label> finalAgglom(nFineCells);
int nMoves = -1; int nMoves = -1;
# ifdef WM_DP # ifdef WM_DP

View file

@ -95,7 +95,7 @@ Foam::MGridGenGAMGAgglomeration::MGridGenGAMGAgglomeration
while (nCreatedLevels < maxLevels_ - 1) while (nCreatedLevels < maxLevels_ - 1)
{ {
label nCoarseCells = -1; int nCoarseCells = -1;
tmp<labelField> finalAgglomPtr = agglomerate tmp<labelField> finalAgglomPtr = agglomerate
( (

View file

@ -74,7 +74,7 @@ class MGridGenGAMGAgglomeration
//- Calculate and return agglomeration //- Calculate and return agglomeration
tmp<labelField> agglomerate tmp<labelField> agglomerate
( (
label& nCoarseCells, int& nCoarseCells,
const label minSize, const label minSize,
const label maxSize, const label maxSize,
const lduAddressing& fineAddressing, const lduAddressing& fineAddressing,

View file

@ -128,7 +128,7 @@ void Foam::DsmcCloud<ParcelType>::initialise
// record the vertex labels of each. // record the vertex labels of each.
scalarList cTetVFracs(nTets, 0.0); scalarList cTetVFracs(nTets, 0.0);
List<labelList> tetPtIs(nTets, labelList(3,-1)); List<labelList> tetPtIs(nTets, labelList(3, label(-1)));
// Keep track of which tet this is. // Keep track of which tet this is.
label tet = 0; label tet = 0;

View file

@ -1799,7 +1799,7 @@ void Foam::autoLayerDriver::getPatchDisplacement
meshPoints, meshPoints,
nPointFaces, nPointFaces,
plusEqOp<label>(), plusEqOp<label>(),
0, // null value label(0), // null value
false // no separation false // no separation
); );
@ -2292,7 +2292,7 @@ void Foam::autoLayerDriver::setupLayerInfoTruncation
pp.meshPoints(), pp.meshPoints(),
nPatchPointLayers, nPatchPointLayers,
maxEqOp<label>(), maxEqOp<label>(),
0, // null value label(0), // null value
false // no separation false // no separation
); );
} }

View file

@ -589,7 +589,7 @@ void Foam::autoLayerDriver::findIsolatedRegions
pp.meshPoints(), pp.meshPoints(),
isolatedPoint, isolatedPoint,
plusEqOp<label>(), plusEqOp<label>(),
0, // null value label(0), // null value
false // no separation false // no separation
); );
@ -734,7 +734,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
meshPoints, meshPoints,
nPointFaces, nPointFaces,
plusEqOp<label>(), plusEqOp<label>(),
0, // null value label(0), // null value
false // no separation false // no separation
); );

View file

@ -290,7 +290,7 @@ Foam::pointField Foam::autoSnapDriver::smoothPatchDisplacement
pp.meshPoints(), pp.meshPoints(),
nBoundary, nBoundary,
plusEqOp<label>(), // combine op plusEqOp<label>(), // combine op
0, // null value label(0), // null value
false // no separation false // no separation
); );
@ -385,7 +385,7 @@ Foam::pointField Foam::autoSnapDriver::smoothPatchDisplacement
mesh, mesh,
globalNum, globalNum,
plusEqOp<label>(), // combine op plusEqOp<label>(), // combine op
0, // null value label(0), // null value
false // no separation false // no separation
); );

View file

@ -1959,7 +1959,7 @@ void Foam::meshRefinement::updateMesh
); );
// Update surfaceIndex // Update surfaceIndex
updateList(map.faceMap(), -1, surfaceIndex_); updateList(map.faceMap(), label(-1), surfaceIndex_);
// Update cached intersection information // Update cached intersection information
updateIntersections(changedFaces); updateIntersections(changedFaces);
@ -1972,7 +1972,7 @@ void Foam::meshRefinement::updateMesh
if (userFaceData_[i].first() == KEEPALL) if (userFaceData_[i].first() == KEEPALL)
{ {
// extend list with face-from-face data // extend list with face-from-face data
updateList(map.faceMap(), -1, data); updateList(map.faceMap(), label(-1), data);
} }
else if (userFaceData_[i].first() == MASTERONLY) else if (userFaceData_[i].first() == MASTERONLY)
{ {

View file

@ -687,7 +687,7 @@ Foam::List<Foam::labelPair> Foam::meshRefinement::filterDuplicateFaces
mesh_, mesh_,
nBafflesPerEdge, nBafflesPerEdge,
plusEqOp<label>(), // in-place add plusEqOp<label>(), // in-place add
0, // initial value label(0), // initial value
false // no separation false // no separation
); );
@ -1830,7 +1830,7 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::splitMesh
mesh_, mesh_,
pointBaffle, pointBaffle,
maxEqOp<label>(), maxEqOp<label>(),
-1, // null value label(-1), // null value
false // no separation false // no separation
); );

View file

@ -498,7 +498,7 @@ void extrudeLayer::createNewVertices()
DynList<label> edgeGroup; DynList<label> edgeGroup;
edgeGroup.setSize(dEdges.size()); edgeGroup.setSize(dEdges.size());
edgeGroup = -1; edgeGroup = label(-1);
//- check edge connections and store all edges which can be reached //- check edge connections and store all edges which can be reached
//- over other edges into the same group //- over other edges into the same group
@ -538,7 +538,7 @@ void extrudeLayer::createNewVertices()
//- find face groups from the groups assigned to dual edges //- find face groups from the groups assigned to dual edges
DynList<label> faceGroups; DynList<label> faceGroups;
faceGroups.setSize(pointFaces.sizeOfRow(pointI)); faceGroups.setSize(pointFaces.sizeOfRow(pointI));
faceGroups = -1; faceGroups = label(-1);
forAllRow(pointFaces, pointI, pfI) forAllRow(pointFaces, pointI, pfI)
{ {
@ -618,7 +618,7 @@ void extrudeLayer::createNewVertices()
//- assign groups to faces and cells //- assign groups to faces and cells
DynList<label> faceGroup; DynList<label> faceGroup;
faceGroup.setSize(pointFaces.sizeOfRow(pointI)); faceGroup.setSize(pointFaces.sizeOfRow(pointI));
faceGroup = -1; faceGroup = label(-1);
label group(0); label group(0);
@ -1114,7 +1114,7 @@ void extrudeLayer::createLayerCells()
//- find labels of points //- find labels of points
DynList<label> origFacePoints; DynList<label> origFacePoints;
origFacePoints.setSize(pointFaces.sizeOfRow(pointI)); origFacePoints.setSize(pointFaces.sizeOfRow(pointI));
origFacePoints = -1; origFacePoints = label(-1);
forAllRow(pointFaces, pointI, pfI) forAllRow(pointFaces, pointI, pfI)
{ {

View file

@ -885,7 +885,7 @@ void refineBoundaryLayers::refineCornerHexCell::generateNewPoints()
forAll(cellPoints_[i], j) forAll(cellPoints_[i], j)
{ {
cellPoints_[i][j].setSize(nLayersK_+1); cellPoints_[i][j].setSize(nLayersK_+1);
cellPoints_[i][j] = -1; cellPoints_[i][j] = label(-1);
} }
} }

View file

@ -250,7 +250,7 @@ void refineBoundaryLayers::refineFace
forAll(facePoints, i) forAll(facePoints, i)
{ {
facePoints[i].setSize(nLayersDir1+1); facePoints[i].setSize(nLayersDir1+1);
facePoints[i] = -1; facePoints[i] = label(-1);
} }
//- add points in the matrix //- add points in the matrix

View file

@ -269,7 +269,7 @@ bool refineBoundaryLayers::analyseLayers()
{ {
if( allZMin[patchI] ^ allZMax[patchI] ) if( allZMin[patchI] ^ allZMax[patchI] )
{ {
nLayersAtPatch[patchI] = -1; nLayersAtPatch[patchI] = label(-1);
layerAtPatch_[patchI].clear(); layerAtPatch_[patchI].clear();
} }
} }
@ -599,7 +599,7 @@ void refineBoundaryLayers::generateNewVertices()
//- on edges of the mesh //- on edges of the mesh
DynList<label> numPointsAtThread; DynList<label> numPointsAtThread;
numPointsAtThread.setSize(nThreads); numPointsAtThread.setSize(nThreads);
numPointsAtThread = 0; numPointsAtThread = label(0);
# ifdef USE_OMP # ifdef USE_OMP
# pragma omp parallel for num_threads(nThreads) schedule(static, 1) # pragma omp parallel for num_threads(nThreads) schedule(static, 1)

View file

@ -100,6 +100,11 @@ public:
//- Construct given size //- Construct given size
explicit inline DynList(const label); explicit inline DynList(const label);
#if WM_LABEL_SIZE == 64
//- Construct given size
explicit inline DynList(const int);
#endif
//- Construct from given size and defualt value //- Construct from given size and defualt value
explicit inline DynList(const label, const T&); explicit inline DynList(const label, const T&);

View file

@ -102,6 +102,17 @@ inline Foam::DynList<T, staticSize>::DynList(const label s)
setSize(s); setSize(s);
} }
#if WM_LABEL_SIZE == 64
template<class T, Foam::label staticSize>
inline Foam::DynList<T, staticSize>::DynList(const int s)
:
UList<T>(staticData_, staticSize),
nextFree_(0)
{
setSize(s);
}
#endif
template<class T, Foam::label staticSize> template<class T, Foam::label staticSize>
inline Foam::DynList<T, staticSize>::DynList(const label s, const T& val) inline Foam::DynList<T, staticSize>::DynList(const label s, const T& val)
: :

View file

@ -23,7 +23,7 @@ License
Description Description
\*----------------------p-----------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "decomposeCells.H" #include "decomposeCells.H"
#include "helperFunctions.H" #include "helperFunctions.H"
@ -56,7 +56,7 @@ void decomposeCells::findAddressingForCell
forAll(faceEdges, feI) forAll(faceEdges, feI)
{ {
faceEdges[feI].setSize(faces[c[feI]].size()); faceEdges[feI].setSize(faces[c[feI]].size());
faceEdges[feI] = -1; faceEdges[feI] = label(-1);
} }
forAll(c, fI) forAll(c, fI)

View file

@ -316,7 +316,7 @@ label groupMarking
//- ones into a new group //- ones into a new group
DynList<label> globalGroupLabel; DynList<label> globalGroupLabel;
globalGroupLabel.setSize(nGroups); globalGroupLabel.setSize(nGroups);
globalGroupLabel = -1; globalGroupLabel = label(-1);
//- reduce the information about the groups //- reduce the information about the groups
label counter(0); label counter(0);

View file

@ -1056,7 +1056,7 @@ inline bool doTrianglesOverlap
x /= (mag(x) + VSMALL); x /= (mag(x) + VSMALL);
vector y = vec ^ x; vector y = vec ^ x;
DynList<point2D, 6> poly2D(3); DynList<point2D, 6> poly2D(label(3));
poly2D[0] = point2D((tri0.a() - origin) & x, (tri0.a() - origin) & y); poly2D[0] = point2D((tri0.a() - origin) & x, (tri0.a() - origin) & y);
poly2D[1] = point2D((tri0.b() - origin) & x, (tri0.b() - origin) & y); poly2D[1] = point2D((tri0.b() - origin) & x, (tri0.b() - origin) & y);
poly2D[2] = point2D((tri0.c() - origin) & x, (tri0.c() - origin) & y); poly2D[2] = point2D((tri0.c() - origin) & x, (tri0.c() - origin) & y);

View file

@ -488,7 +488,7 @@ inline void zipOpenChain(DynList<edge>& bEdges)
} }
bool closed(true); bool closed(true);
DynList<label> openVertices(2); DynList<label> openVertices(label(2));
forAll(chainVertices, pI) forAll(chainVertices, pI)
if( nAppearances[pI] == 1 ) if( nAppearances[pI] == 1 )
{ {

View file

@ -351,7 +351,7 @@ void partTriMesh::createBufferLayers()
{ {
const parTriFace& tri = receivedTrias[i]; const parTriFace& tri = receivedTrias[i];
DynList<label, 3> triPointLabels(3); DynList<label, 3> triPointLabels(label(3));
for(label j=0;j<3;++j) for(label j=0;j<3;++j)
{ {
const label gpI = tri.globalLabelOfPoint(j); const label gpI = tri.globalLabelOfPoint(j);

View file

@ -133,7 +133,7 @@ void meshOctree::setOctantVectorsAndPositions()
//- set vrtLeavesPos_ //- set vrtLeavesPos_
for(label vrtI=0;vrtI<8;++vrtI) for(label vrtI=0;vrtI<8;++vrtI)
{ {
FixedList<label, 3> vc(0); FixedList<label, 3> vc(label(0));
if( vrtI & 1 ) if( vrtI & 1 )
vc[0] += 1; vc[0] += 1;

View file

@ -135,7 +135,7 @@ void meshOctreeAutomaticRefinement::setMaxRefLevel()
{ {
finished = false; finished = false;
const scalar lSize = size / pow(2, label(maxRefLevel_)); const scalar lSize = size / pow(2.0, label(maxRefLevel_));
if( lSize < cs ) if( lSize < cs )
{ {

View file

@ -84,12 +84,12 @@ void meshOctreeCreator::setRootCubeSizeAndRefParameters()
{ {
finished = false; finished = false;
const scalar lSize = size / Foam::pow(2, label(globalRefLevel_)); const scalar lSize = size / pow(label(2), label(globalRefLevel_));
if( lSize < (maxSize * (1.0-SMALL)) ) if( lSize < (maxSize * (1.0-SMALL)) )
{ {
const scalar bbSize = const scalar bbSize =
0.5 * maxSize * Foam::pow(2, label(globalRefLevel_)); 0.5 * maxSize * pow(label(2), label(globalRefLevel_));
rootBox.max() = c + point(bbSize, bbSize, bbSize); rootBox.max() = c + point(bbSize, bbSize, bbSize);
rootBox.min() = c - point(bbSize, bbSize, bbSize); rootBox.min() = c - point(bbSize, bbSize, bbSize);
finished = true; finished = true;
@ -133,7 +133,7 @@ void meshOctreeCreator::setRootCubeSizeAndRefParameters()
{ {
finished = false; finished = false;
const scalar lSize = maxSize / Foam::pow(2, addLevel); const scalar lSize = maxSize / Foam::pow(label(2), addLevel);
if( lSize <= cs ) if( lSize <= cs )
{ {
@ -230,7 +230,7 @@ void meshOctreeCreator::setRootCubeSizeAndRefParameters()
{ {
finished = false; finished = false;
const scalar lSize = maxSize / Foam::pow(2, addLevel); const scalar lSize = maxSize / Foam::pow(label(2), addLevel);
if( lSize <= cs ) if( lSize <= cs )
{ {
@ -308,7 +308,7 @@ void meshOctreeCreator::setRootCubeSizeAndRefParameters()
{ {
finished = false; finished = false;
const scalar lSize = maxSize / Foam::pow(2, addLevel); const scalar lSize = maxSize / Foam::pow(label(2), addLevel);
if( lSize <= cs ) if( lSize <= cs )
{ {
@ -380,7 +380,7 @@ void meshOctreeCreator::setRootCubeSizeAndRefParameters()
{ {
finished = false; finished = false;
const scalar lSize = maxSize / Foam::pow(2, nLevel); const scalar lSize = maxSize / Foam::pow(label(2), nLevel);
if( lSize <= cs ) if( lSize <= cs )
{ {

View file

@ -97,7 +97,7 @@ inline meshOctreeCubeCoordinates meshOctreeCubeCoordinates::refineForPosition
) const ) const
{ {
//- create new boxes in z-order fashion //- create new boxes in z-order fashion
FixedList<label, 3> addPos(0); FixedList<label, 3> addPos(label(0));
if( i & 1 ) if( i & 1 )
addPos[0] = 1; addPos[0] = 1;
if( i & 2 ) if( i & 2 )

View file

@ -50,7 +50,7 @@ void meshUntangler::cutRegion::findNewEdges()
const DynList<edge, 128>& edges = *edgesPtr_; const DynList<edge, 128>& edges = *edgesPtr_;
newEdgeLabel_.setSize(edges.size()); newEdgeLabel_.setSize(edges.size());
newEdgeLabel_ = -1; newEdgeLabel_ = label(-1);
forAll(edges, eI) forAll(edges, eI)
{ {

View file

@ -72,7 +72,7 @@ void meshUntangler::cutRegion::findNewFaces()
<< " consisting of edges " << f << endl; << " consisting of edges " << f << endl;
# endif # endif
pointUsage = 0; pointUsage = label(0);
DynList<label, 8> newFace; DynList<label, 8> newFace;
@ -144,7 +144,7 @@ void meshUntangler::cutRegion::findNewFaces()
//- find edges which form the faceInPlane //- find edges which form the faceInPlane
DynList<label, 128> edgeUsage; DynList<label, 128> edgeUsage;
edgeUsage.setSize(cEdges.size()); edgeUsage.setSize(cEdges.size());
edgeUsage = 0; edgeUsage = label(0);
forAll(cFaces, fI) forAll(cFaces, fI)
{ {
const DynList<label, 8>& f = cFaces[fI]; const DynList<label, 8>& f = cFaces[fI];

View file

@ -58,7 +58,7 @@ bool meshUntangler::cutRegion::findNewVertices
const DynList<point, 64>& points = *pointsPtr_; const DynList<point, 64>& points = *pointsPtr_;
newVertexLabel_.setSize(points.size()); newVertexLabel_.setSize(points.size());
newVertexLabel_ = -1; newVertexLabel_ = label(-1);
vertexDistance_.setSize(points.size()); vertexDistance_.setSize(points.size());
@ -118,7 +118,7 @@ void meshUntangler::cutRegion::removeCoincidentVertices()
DynList<edge, 128>& edges = *edgesPtr_; DynList<edge, 128>& edges = *edgesPtr_;
DynList<label, 64> newLabelForPoint; DynList<label, 64> newLabelForPoint;
newLabelForPoint.setSize(points.size()); newLabelForPoint.setSize(points.size());
newLabelForPoint = -1; newLabelForPoint = label(-1);
bool found(false); bool found(false);
forAll(points, pI) forAll(points, pI)
@ -150,7 +150,7 @@ void meshUntangler::cutRegion::removeCoincidentVertices()
} }
//- remove edges which contain the same vertex //- remove edges which contain the same vertex
newEdgeLabel_ = -1; newEdgeLabel_ = label(-1);
label edgeLabel(0); label edgeLabel(0);
cEdgesPtr_ = new DynList<edge, 128>(); cEdgesPtr_ = new DynList<edge, 128>();

View file

@ -83,7 +83,7 @@ void meshUntangler::cutRegion::tieBreak(const DynList<label, 8>& f)
DynList<label, 64> vertexRegion; DynList<label, 64> vertexRegion;
vertexRegion.setSize(fv.size()); vertexRegion.setSize(fv.size());
vertexRegion = 0; vertexRegion = label(0);
label region(1); label region(1);
forAll(fv, vI) forAll(fv, vI)
@ -176,7 +176,7 @@ void meshUntangler::cutRegion::tieBreak(const DynList<label, 8>& f)
//- create new points //- create new points
const DynList<point, 64>& points = *pointsPtr_; const DynList<point, 64>& points = *pointsPtr_;
cPtsPtr_ = new DynList<point, 64>(); cPtsPtr_ = new DynList<point, 64>();
newVertexLabel_ = -1; newVertexLabel_ = label(-1);
origNumVertices_ = 0; origNumVertices_ = 0;
forAll(points, pI) forAll(points, pI)
if( vertexTypes_[pI] ) if( vertexTypes_[pI] )

View file

@ -1520,7 +1520,7 @@ bool edgeExtractor::checkConcaveEdgeCells()
DynList<label, 2> nFacesInPatch; DynList<label, 2> nFacesInPatch;
nFacesInPatch.setSize(2); nFacesInPatch.setSize(2);
nFacesInPatch = 0; nFacesInPatch = label(0);
DynList<bool, 2> hasPatchPoints; DynList<bool, 2> hasPatchPoints;
hasPatchPoints.setSize(2); hasPatchPoints.setSize(2);

View file

@ -211,7 +211,7 @@ void edgeExtractor::faceEvaluator::neiFacesProcs
const VRWGraph& faceEdges = mse.faceEdges(); const VRWGraph& faceEdges = mse.faceEdges();
neiProcs.setSize(faceEdges.sizeOfRow(bfI)); neiProcs.setSize(faceEdges.sizeOfRow(bfI));
neiProcs = Pstream::myProcNo(); neiProcs = label(Pstream::myProcNo());
if( Pstream::parRun() ) if( Pstream::parRun() )
{ {

View file

@ -91,7 +91,7 @@ void Foam::adaptiveOverlapFringe::suitabilityFractionSlope
forAllConstIter(FIFOStack<iterationData>, iterHist, it) forAllConstIter(FIFOStack<iterationData>, iterHist, it)
{ {
iterSum += it().iteration(); iterSum += it().iteration();
iterSquaredSum += pow(it().iteration(), 2); iterSquaredSum += pow(it().iteration(), label(2));
suitabilitySum += it().suitability(); suitabilitySum += it().suitability();
iterXSuitabilitySum += it().iteration()*it().suitability(); iterXSuitabilitySum += it().iteration()*it().suitability();
} }

View file

@ -487,7 +487,7 @@ void solidInterface::makeProcessorPatchFacesMap() const
new labelListList new labelListList
( (
mesh_.boundary().size(), mesh_.boundary().size(),
labelList(0,-1) labelList()
); );
processorPatchMapPtr_ = processorPatchMapPtr_ =
new labelList new labelList

View file

@ -142,7 +142,7 @@ void Foam::tetPolyPatchMapper::calcAddressing() const
} }
else else
{ {
addr[nAddr] = labelList(1, 0); addr[nAddr] = labelList(1, label(0));
} }
w[nAddr] = scalarList(1, 1.0); w[nAddr] = scalarList(1, 1.0);

View file

@ -116,13 +116,13 @@ tetPolyMesh::~tetPolyMesh()
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::label Foam::tetPolyMesh::comm() const int Foam::tetPolyMesh::comm() const
{ {
return comm_; return comm_;
} }
Foam::label& Foam::tetPolyMesh::comm() int& Foam::tetPolyMesh::comm()
{ {
return comm_; return comm_;
} }

View file

@ -139,7 +139,7 @@ class tetPolyMesh
label cellOffset_; label cellOffset_;
//- Communicator used for parallel communication //- Communicator used for parallel communication
label comm_; int comm_;
// Demand-driven data // Demand-driven data
@ -376,10 +376,10 @@ public:
// Communication support // Communication support
//- Return communicator used for parallel communication //- Return communicator used for parallel communication
label comm() const; int comm() const;
//- Return communicator used for parallel communication //- Return communicator used for parallel communication
label& comm(); int& comm();
// Edit // Edit

View file

@ -55,7 +55,7 @@ Foam::radiation::greyMeanAbsorptionEmission::greyMeanAbsorptionEmission
absorptionEmissionModel(dict, mesh), absorptionEmissionModel(dict, mesh),
coeffsDict_((dict.subDict(typeName + "Coeffs"))), coeffsDict_((dict.subDict(typeName + "Coeffs"))),
speciesNames_(0), speciesNames_(0),
specieIndex_(0), specieIndex_(label(0)),
lookUpTable_ lookUpTable_
( (
fileName(coeffsDict_.lookup("lookUpTableFileName")), fileName(coeffsDict_.lookup("lookUpTableFileName")),

View file

@ -55,7 +55,7 @@ Foam::radiation::wideBandAbsorptionEmission::wideBandAbsorptionEmission
absorptionEmissionModel(dict, mesh), absorptionEmissionModel(dict, mesh),
coeffsDict_((dict.subDict(typeName + "Coeffs"))), coeffsDict_((dict.subDict(typeName + "Coeffs"))),
speciesNames_(0), speciesNames_(0),
specieIndex_(0), specieIndex_(label(0)),
lookUpTable_ lookUpTable_
( (
fileName(coeffsDict_.lookup("lookUpTableFileName")), fileName(coeffsDict_.lookup("lookUpTableFileName")),

Some files were not shown because too many files have changed in this diff Show more