BUGFIX: Compile WM_LABEL_SIZE=64 (final). Author: Henrik Rusche.

This commit is contained in:
Hrvoje Jasak 2019-02-13 15:17:29 +00:00
commit 396997c0ae
312 changed files with 1112 additions and 870 deletions

View file

@ -0,0 +1,38 @@
--- orig/ParMGridGen-1.0/mgridgen.h 2019-01-15 13:32:54.247812378 +0100
+++ ParMGridGen-1.0/mgridgen.h 2019-01-15 13:35:03.972952464 +0100
@@ -1,4 +1,4 @@
-typedef int idxtype;
+typedef long int idxtype;
typedef double realtype;
--- orig/ParMGridGen-1.0/parmgridgen.h 2019-01-15 13:32:54.251812414 +0100
+++ ParMGridGen-1.0/parmgridgen.h 2019-01-15 13:42:14.344335223 +0100
@@ -1,4 +1,4 @@
-typedef int idxtype;
+typedef long int idxtype;
typedef double realtype;
void ParMGridGen(idxtype *, idxtype *, realtype *, realtype *, idxtype *,
--- orig/ParMGridGen-1.0/ParMGridGen/IMParMetis-2.0/ParMETISLib/struct.h 2019-01-15 13:32:54.247812378 +0100
+++ ParMGridGen-1.0/ParMGridGen/IMParMetis-2.0/ParMETISLib/struct.h 2019-01-15 13:44:17.605231500 +0100
@@ -15,7 +15,7 @@
/* Indexes are as long as integers for now */
#ifdef IDXTYPE_INT
-typedef int idxtype;
+typedef long int idxtype;
#define IDX_DATATYPE MPI_INT
#else
typedef short idxtype;
--- orig/ParMGridGen-1.0/MGridGen/IMlib/IMlib.h 2019-01-15 13:32:54.251812414 +0100
+++ ParMGridGen-1.0/MGridGen/IMlib/IMlib.h 2019-01-15 13:52:11.504522970 +0100
@@ -16,7 +16,7 @@
/* Indexes are as long as integers for now */
#ifdef IDXTYPE_INT
-typedef int idxtype;
+typedef long int idxtype;
#else
typedef short idxtype;
#endif

View file

@ -0,0 +1,11 @@
--- orig/parmetis-4.0.3/metis/include/metis.h 2019-01-15 12:40:31.050842343 +0100
+++ parmetis-4.0.3/metis/include/metis.h 2019-01-15 12:43:01.883662756 +0100
@@ -30,7 +30,7 @@
GCC does provides these definitions in stdint.h, but it may require some
modifications on other architectures.
--------------------------------------------------------------------------*/
-#define IDXTYPEWIDTH 32
+#define IDXTYPEWIDTH 64
/*--------------------------------------------------------------------------

View file

@ -0,0 +1,11 @@
--- orig/metis-5.1.0/include/metis.h 2019-01-15 12:40:31.050842343 +0100
+++ metis-5.1.0/include/metis.h 2019-01-15 12:43:01.883662756 +0100
@@ -30,7 +30,7 @@
GCC does provides these definitions in stdint.h, but it may require some
modifications on other architectures.
--------------------------------------------------------------------------*/
-#define IDXTYPEWIDTH 32
+#define IDXTYPEWIDTH 64
/*--------------------------------------------------------------------------

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

@ -0,0 +1,12 @@
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
--- orig/scotch_6.0.4/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib 2019-01-15 11:26:39.142915259 +0100
+++ scotch_6.0.4/src/Make.inc/Makefile.inc.i686_pc_linux2.shlib 2019-01-15 11:26:58.871041175 +0100
@@ -9,7 +9,7 @@
CCS = gcc
CCP = mpicc
CCD = mpicc -I$(MPI_HOME)/include
-INTSIZE =
+INTSIZE = -DINTSIZE64
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
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

@ -8,7 +8,7 @@
PtrList<compressible::turbulenceModel> turbulence(fluidRegions.size()); PtrList<compressible::turbulenceModel> turbulence(fluidRegions.size());
PtrList<volScalarField> DpDtFluid(fluidRegions.size()); PtrList<volScalarField> DpDtFluid(fluidRegions.size());
List<scalar> initialMassFluid(fluidRegions.size()); scalarList initialMassFluid(fluidRegions.size());
// Populate fluid field pointer lists // Populate fluid field pointer lists
forAll(fluidRegions, i) forAll(fluidRegions, i)

View file

@ -54,10 +54,10 @@ class regionProperties
// Private data // Private data
//- List of the fluid region names //- List of the fluid region names
List<word> fluidRegionNames_; wordList fluidRegionNames_;
//- List of the solid region names //- List of the solid region names
List<word> solidRegionNames_; wordList solidRegionNames_;
// Private Member Functions // Private Member Functions
@ -87,10 +87,10 @@ public:
// Access // Access
//- Return const reference to the list of fluid region names //- Return const reference to the list of fluid region names
const List<word>& fluidRegionNames() const; const wordList& fluidRegionNames() const;
//- Return const reference to the list of solid region names //- Return const reference to the list of solid region names
const List<word>& solidRegionNames() const; const wordList& solidRegionNames() const;
}; };

View file

@ -8,9 +8,9 @@
PtrList<compressible::turbulenceModel> turbulence(fluidRegions.size()); PtrList<compressible::turbulenceModel> turbulence(fluidRegions.size());
PtrList<volScalarField> DpDtf(fluidRegions.size()); PtrList<volScalarField> DpDtf(fluidRegions.size());
List<scalar> initialMassFluid(fluidRegions.size()); scalarList initialMassFluid(fluidRegions.size());
List<label> pRefCellFluid(fluidRegions.size(),0); labelList pRefCellFluid(fluidRegions.size(),0);
List<scalar> pRefValueFluid(fluidRegions.size(),0.0); scalarList pRefValueFluid(fluidRegions.size(),0.0);
// Populate fluid field pointer lists // Populate fluid field pointer lists

View file

@ -60,7 +60,7 @@ nCoupledFacesToBreak = 0;
} }
labelList facesToBreak(facesToBreakList); labelList facesToBreak(facesToBreakList);
List<scalar> facesToBreakEffTractionFraction scalarList facesToBreakEffTractionFraction
( (
facesToBreakEffTractionFractionList facesToBreakEffTractionFractionList
); );
@ -192,7 +192,7 @@ nCoupledFacesToBreak = 0;
} }
labelList coupledFacesToBreak(coupledFacesToBreakList); labelList coupledFacesToBreak(coupledFacesToBreakList);
List<scalar> coupledFacesToBreakEffTractionFraction scalarList coupledFacesToBreakEffTractionFraction
( (
coupledFacesToBreakEffTractionFractionList coupledFacesToBreakEffTractionFractionList
); );

View file

@ -62,7 +62,7 @@ nCoupledFacesToBreak = 0;
} }
labelList facesToBreak(facesToBreakList); labelList facesToBreak(facesToBreakList);
List<scalar> facesToBreakEffTractionFraction scalarList facesToBreakEffTractionFraction
( (
facesToBreakEffTractionFractionList facesToBreakEffTractionFractionList
); );
@ -197,7 +197,7 @@ nCoupledFacesToBreak = 0;
} }
labelList coupledFacesToBreak(coupledFacesToBreakList); labelList coupledFacesToBreak(coupledFacesToBreakList);
List<scalar> coupledFacesToBreakEffTractionFraction scalarList coupledFacesToBreakEffTractionFraction
( (
coupledFacesToBreakEffTractionFractionList coupledFacesToBreakEffTractionFractionList
); );

View file

@ -60,7 +60,7 @@ nCoupledFacesToBreak = 0;
} }
labelList facesToBreak(facesToBreakList); labelList facesToBreak(facesToBreakList);
List<scalar> facesToBreakEffTractionFraction scalarList facesToBreakEffTractionFraction
( (
facesToBreakEffTractionFractionList facesToBreakEffTractionFractionList
); );
@ -192,7 +192,7 @@ nCoupledFacesToBreak = 0;
} }
labelList coupledFacesToBreak(coupledFacesToBreakList); labelList coupledFacesToBreak(coupledFacesToBreakList);
List<scalar> coupledFacesToBreakEffTractionFraction scalarList coupledFacesToBreakEffTractionFraction
( (
coupledFacesToBreakEffTractionFractionList coupledFacesToBreakEffTractionFractionList
); );

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

@ -143,7 +143,7 @@ int main(int argc, char *argv[])
// Mark cut edges. // Mark cut edges.
DynamicList<label> allCutEdges(pp.nEdges()); dynamicLabelList allCutEdges(pp.nEdges());
DynamicList<scalar> allCutEdgeWeights(pp.nEdges()); DynamicList<scalar> allCutEdgeWeights(pp.nEdges());

View file

@ -117,14 +117,14 @@ int main(int argc, char *argv[])
SortableList<scalar> sortedVols(vols); SortableList<scalar> sortedVols(vols);
// All cell labels, sorted per bin. // All cell labels, sorted per bin.
DynamicList<DynamicList<label> > bins; DynamicList<dynamicLabelList > bins;
// Lower/upper limits // Lower/upper limits
DynamicList<scalar> lowerLimits; DynamicList<scalar> lowerLimits;
DynamicList<scalar> upperLimits; DynamicList<scalar> upperLimits;
// Create bin0. Have upperlimit as factor times lowerlimit. // Create bin0. Have upperlimit as factor times lowerlimit.
bins.append(DynamicList<label>()); bins.append(dynamicLabelList());
lowerLimits.append(sortedVols[0]); lowerLimits.append(sortedVols[0]);
upperLimits.append(1.1*lowerLimits[lowerLimits.size()-1]); upperLimits.append(1.1*lowerLimits[lowerLimits.size()-1]);
@ -135,7 +135,7 @@ int main(int argc, char *argv[])
// New value outside of current bin // New value outside of current bin
// Shrink old bin. // Shrink old bin.
DynamicList<label>& bin = bins[bins.size()-1]; dynamicLabelList& bin = bins[bins.size()-1];
bin.shrink(); bin.shrink();
@ -144,7 +144,7 @@ int main(int argc, char *argv[])
<< upperLimits[upperLimits.size()-1] << endl; << upperLimits[upperLimits.size()-1] << endl;
// Create new bin. // Create new bin.
bins.append(DynamicList<label>()); bins.append(dynamicLabelList());
lowerLimits.append(sortedVols[i]); lowerLimits.append(sortedVols[i]);
upperLimits.append(1.1*lowerLimits[lowerLimits.size()-1]); upperLimits.append(1.1*lowerLimits[lowerLimits.size()-1]);
@ -154,7 +154,7 @@ int main(int argc, char *argv[])
} }
// Append to current bin. // Append to current bin.
DynamicList<label>& bin = bins[bins.size()-1]; dynamicLabelList& bin = bins[bins.size()-1];
bin.append(sortedVols.indices()[i]); bin.append(sortedVols.indices()[i]);
} }
@ -173,7 +173,7 @@ int main(int argc, char *argv[])
Info<< "Volume bins:" << nl; Info<< "Volume bins:" << nl;
forAll(bins, binI) forAll(bins, binI)
{ {
const DynamicList<label>& bin = bins[binI]; const dynamicLabelList& bin = bins[binI];
cellSet cells(mesh, "vol" + name(binI), bin.size()); cellSet cells(mesh, "vol" + name(binI), bin.size());
@ -280,7 +280,7 @@ int main(int argc, char *argv[])
// Set cell values // Set cell values
forAll(bins, binI) forAll(bins, binI)
{ {
const DynamicList<label>& bin = bins[binI]; const dynamicLabelList& bin = bins[binI];
forAll(bin, i) forAll(bin, i)
{ {

View file

@ -256,7 +256,7 @@ label selectOutsideCells
// Outside faces // Outside faces
labelHashSet outsideFacesMap(outsidePts.size() * 6 * 2); labelHashSet outsideFacesMap(outsidePts.size() * 6 * 2);
DynamicList<label> outsideFaces(outsideFacesMap.size()); dynamicLabelList outsideFaces(outsideFacesMap.size());
// CellInfo on outside faces // CellInfo on outside faces
DynamicList<cellInfo> outsideFacesInfo(outsideFacesMap.size()); DynamicList<cellInfo> outsideFacesInfo(outsideFacesMap.size());

View file

@ -190,7 +190,7 @@ bool splitHex
const label cellI, const label cellI,
const label edgeI, const label edgeI,
DynamicList<label>& cutCells, dynamicLabelList& cutCells,
DynamicList<labelList>& cellLoops, DynamicList<labelList>& cellLoops,
DynamicList<scalarField>& cellEdgeWeights DynamicList<scalarField>& cellEdgeWeights
) )
@ -306,7 +306,7 @@ bool splitCell
const boolList& edgeIsCut, const boolList& edgeIsCut,
const scalarField& edgeWeight, const scalarField& edgeWeight,
DynamicList<label>& cutCells, dynamicLabelList& cutCells,
DynamicList<labelList>& cellLoops, DynamicList<labelList>& cellLoops,
DynamicList<scalarField>& cellEdgeWeights DynamicList<scalarField>& cellEdgeWeights
) )
@ -369,7 +369,7 @@ void collectCuts
const scalar minSin, const scalar minSin,
const cellSet& cellsToCut, const cellSet& cellsToCut,
DynamicList<label>& cutCells, dynamicLabelList& cutCells,
DynamicList<labelList>& cellLoops, DynamicList<labelList>& cellLoops,
DynamicList<scalarField>& cellEdgeWeights DynamicList<scalarField>& cellEdgeWeights
) )
@ -600,7 +600,7 @@ int main(int argc, char *argv[])
// Cut information per cut cell // Cut information per cut cell
DynamicList<label> cutCells(mesh.nCells()/10 + 10); dynamicLabelList cutCells(mesh.nCells()/10 + 10);
DynamicList<labelList> cellLoops(mesh.nCells()/10 + 10); DynamicList<labelList> cellLoops(mesh.nCells()/10 + 10);
DynamicList<scalarField> cellEdgeWeights(mesh.nCells()/10 + 10); DynamicList<scalarField> cellEdgeWeights(mesh.nCells()/10 + 10);

View file

@ -131,7 +131,7 @@ void storeCellInZone
const label cellI, const label cellI,
const label cellType, const label cellType,
Map<label>& typeToZone, Map<label>& typeToZone,
List<DynamicList<label> >& zoneCells List<dynamicLabelList >& zoneCells
) )
{ {
if (cellType >= 0) if (cellType >= 0)
@ -389,8 +389,8 @@ void ReadCells
labelList& foamCellMap, labelList& foamCellMap,
labelList& foamCellType, labelList& foamCellType,
Map<label>& prostarToFoamPatch, Map<label>& prostarToFoamPatch,
DynamicList<label>& foamPatchSizes, dynamicLabelList& foamPatchSizes,
DynamicList<label>& foamPatchStarts, dynamicLabelList& foamPatchStarts,
labelList& foamFaceMap, labelList& foamFaceMap,
labelList& foamOwner, labelList& foamOwner,
labelList& foamNeighbour, labelList& foamNeighbour,
@ -599,8 +599,8 @@ int main(int argc, char *argv[])
// Patching info // Patching info
Map<label> prostarToFoamPatch; Map<label> prostarToFoamPatch;
DynamicList<label> foamPatchSizes; dynamicLabelList foamPatchSizes;
DynamicList<label> foamPatchStarts; dynamicLabelList foamPatchStarts;
// Face connectivity // Face connectivity
labelList foamFaceMap; labelList foamFaceMap;
labelList foamOwner; labelList foamOwner;
@ -1008,7 +1008,7 @@ int main(int argc, char *argv[])
// From foamCellType physical region to Foam cellZone // From foamCellType physical region to Foam cellZone
Map<label> typeToZone; Map<label> typeToZone;
// Storage for cell zones. // Storage for cell zones.
List<DynamicList<label> > zoneCells(0); List<dynamicLabelList > zoneCells(0);
forAll(foamCellType, cellI) forAll(foamCellType, cellI)
{ {

View file

@ -28,6 +28,7 @@ Description
#include "cellShapeRecognition.H" #include "cellShapeRecognition.H"
#include "labelList.H" #include "labelList.H"
#include "boolList.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -143,7 +144,7 @@ cellShape create3DCellShape
labelList pointLabels(curModel.nPoints(), -1); labelList pointLabels(curModel.nPoints(), -1);
// Follow the used mesh faces // Follow the used mesh faces
List<bool> meshFaceUsed(localFaces.size(), false); boolList meshFaceUsed(localFaces.size(), false);
// Get the raw model faces // Get the raw model faces
const faceList& modelFaces = curModel.modelFaces(); const faceList& modelFaces = curModel.modelFaces();

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

@ -206,7 +206,7 @@ void storeCellInZone
Map<label>& physToZone, Map<label>& physToZone,
labelList& zoneToPhys, labelList& zoneToPhys,
List<DynamicList<label> >& zoneCells List<dynamicLabelList >& zoneCells
) )
{ {
Map<label>::const_iterator zoneFnd = physToZone.find(regPhys); Map<label>::const_iterator zoneFnd = physToZone.find(regPhys);
@ -373,7 +373,7 @@ void readCells
List<DynamicList<face> >& patchFaces, List<DynamicList<face> >& patchFaces,
labelList& zoneToPhys, labelList& zoneToPhys,
List<DynamicList<label> >& zoneCells List<dynamicLabelList >& zoneCells
) )
{ {
Info<< "Starting to read cells at line " << inFile.lineNumber() << endl; Info<< "Starting to read cells at line " << inFile.lineNumber() << endl;
@ -786,7 +786,7 @@ int main(int argc, char *argv[])
// Map from cellZone to gmsh physical region // Map from cellZone to gmsh physical region
labelList zoneToPhys; labelList zoneToPhys;
// Storage for cell zones. // Storage for cell zones.
List<DynamicList<label> > zoneCells(0); List<dynamicLabelList > zoneCells(0);
// Name per physical region // Name per physical region
Map<word> physicalNames; Map<word> physicalNames;
@ -933,7 +933,7 @@ int main(int argc, char *argv[])
const polyPatch& pp = mesh.boundaryMesh()[mesh.boundaryMesh().size()-1]; const polyPatch& pp = mesh.boundaryMesh()[mesh.boundaryMesh().size()-1];
// Storage for faceZones. // Storage for faceZones.
List<DynamicList<label> > zoneFaces(patchFaces.size()); List<dynamicLabelList > zoneFaces(patchFaces.size());
// Go through all the patchFaces and find corresponding face in pp. // Go through all the patchFaces and find corresponding face in pp.

View file

@ -185,7 +185,7 @@ void readPoints
( (
IFstream& is, IFstream& is,
DynamicList<point>& points, // coordinates DynamicList<point>& points, // coordinates
DynamicList<label>& unvPointID // unv index dynamicLabelList& unvPointID // unv index
) )
{ {
Sout<< "Starting reading points at line " << is.lineNumber() << '.' << endl; Sout<< "Starting reading points at line " << is.lineNumber() << '.' << endl;
@ -210,7 +210,7 @@ void readPoints
IOWarningIn IOWarningIn
( (
"readPoints(IFstream&, label&, DynamicList<point>" "readPoints(IFstream&, label&, DynamicList<point>"
", DynamicList<label>&)", ", dynamicLabelList&)",
is is
) << "Points not in order starting at point " << pointI ) << "Points not in order starting at point " << pointI
//<< " at line " << is.lineNumber() //<< " at line " << is.lineNumber()
@ -242,8 +242,8 @@ void readCells
( (
IFstream& is, IFstream& is,
DynamicList<cellShape>& cellVerts, DynamicList<cellShape>& cellVerts,
DynamicList<label>& cellMaterial, dynamicLabelList& cellMaterial,
DynamicList<label>& boundaryFaceIndices, dynamicLabelList& boundaryFaceIndices,
DynamicList<face>& boundaryFaces DynamicList<face>& boundaryFaces
) )
{ {
@ -514,7 +514,7 @@ void readDOFS
<< " trying to read vertex indices." << " trying to read vertex indices."
<< endl; << endl;
DynamicList<label> vertices; dynamicLabelList vertices;
while (true) while (true)
{ {
string line; string line;
@ -604,14 +604,14 @@ int main(int argc, char *argv[])
// Points // Points
DynamicList<point> points; DynamicList<point> points;
// Original unv point label // Original unv point label
DynamicList<label> unvPointID; dynamicLabelList unvPointID;
// Cells // Cells
DynamicList<cellShape> cellVerts; DynamicList<cellShape> cellVerts;
DynamicList<label> cellMat; dynamicLabelList cellMat;
// Boundary faces // Boundary faces
DynamicList<label> boundaryFaceIndices; dynamicLabelList boundaryFaceIndices;
DynamicList<face> boundaryFaces; DynamicList<face> boundaryFaces;
// Patch names and patchFace indices. // Patch names and patchFace indices.

View file

@ -212,7 +212,7 @@ Foam::label Foam::meshDualiser::addInternalFace
const bool edgeOrder, const bool edgeOrder,
const label dualCell0, const label dualCell0,
const label dualCell1, const label dualCell1,
const DynamicList<label>& verts, const dynamicLabelList& verts,
directTopoChange& meshMod directTopoChange& meshMod
) const ) const
{ {
@ -330,7 +330,7 @@ Foam::label Foam::meshDualiser::addBoundaryFace
const label dualCellI, const label dualCellI,
const label patchI, const label patchI,
const DynamicList<label>& verts, const dynamicLabelList& verts,
directTopoChange& meshMod directTopoChange& meshMod
) const ) const
{ {
@ -423,7 +423,7 @@ void Foam::meshDualiser::createFacesAroundEdge
// << endl; // << endl;
// Walk and collect face. // Walk and collect face.
DynamicList<label> verts(100); dynamicLabelList verts(100);
if (edgeToDualPoint_[edgeI] != -1) if (edgeToDualPoint_[edgeI] != -1)
{ {
@ -571,7 +571,7 @@ void Foam::meshDualiser::createFaceFromInternalFace
// Walk and collect face. // Walk and collect face.
DynamicList<label> verts(100); dynamicLabelList verts(100);
verts.append(faceToDualPoint_[faceI]); verts.append(faceToDualPoint_[faceI]);
verts.append(edgeToDualPoint_[fEdges[fp]]); verts.append(edgeToDualPoint_[fEdges[fp]]);
@ -672,7 +672,7 @@ void Foam::meshDualiser::createFacesAroundBoundaryPoint
// Starting face // Starting face
label faceI = startFaceI; label faceI = startFaceI;
DynamicList<label> verts(4); dynamicLabelList verts(4);
while (true) while (true)
{ {
@ -770,7 +770,7 @@ void Foam::meshDualiser::createFacesAroundBoundaryPoint
label faceI = startFaceI; label faceI = startFaceI;
// Storage for face // Storage for face
DynamicList<label> verts(mesh_.faces()[faceI].size()); dynamicLabelList verts(mesh_.faces()[faceI].size());
// Starting point. // Starting point.
verts.append(pointToDualPoint_[pointI]); verts.append(pointToDualPoint_[pointI]);

View file

@ -47,7 +47,7 @@ SourceFiles
#ifndef meshDualiser_H #ifndef meshDualiser_H
#define meshDualiser_H #define meshDualiser_H
#include "DynamicList.H" #include "dynamicLabelList.H"
#include "PackedBoolList.H" #include "PackedBoolList.H"
#include "boolList.H" #include "boolList.H"
#include "typeInfo.H" #include "typeInfo.H"
@ -122,7 +122,7 @@ class meshDualiser
const bool edgeOrder, const bool edgeOrder,
const label dualCell0, const label dualCell0,
const label dualCell1, const label dualCell1,
const DynamicList<label>& verts, const dynamicLabelList& verts,
directTopoChange& meshMod directTopoChange& meshMod
) const; ) const;
@ -135,7 +135,7 @@ class meshDualiser
const label dualCellI, const label dualCellI,
const label patchI, const label patchI,
const DynamicList<label>& verts, const dynamicLabelList& verts,
directTopoChange& meshMod directTopoChange& meshMod
) const; ) const;

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

@ -290,7 +290,7 @@ void writeCells(const polyMesh& mesh, const fileName& timeName)
const labelList & cFaces = cells[cellId]; const labelList & cFaces = cells[cellId];
// create (beg,end) indices // create (beg,end) indices
List<label> indices(cFaces.size() + 1); labelList indices(cFaces.size() + 1);
indices[0] = indices.size(); indices[0] = indices.size();
label count = indices.size(); label count = indices.size();

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

@ -249,7 +249,7 @@ int main(int argc, char *argv[])
HashTable<label> zoneMap(nZones); HashTable<label> zoneMap(nZones);
// Cells per zone. // Cells per zone.
List<DynamicList<label> > zoneCells(nZones); List<dynamicLabelList > zoneCells(nZones);
// Running cell counter // Running cell counter
label cellI = 0; label cellI = 0;

View file

@ -173,7 +173,7 @@
HashTable<label> zoneMap(nZones); HashTable<label> zoneMap(nZones);
// Cells per zone. // Cells per zone.
List<DynamicList<label> > zoneCells(nZones); List<dynamicLabelList > zoneCells(nZones);
// Running cell counter // Running cell counter
label cellI = 0; label cellI = 0;

View file

@ -397,7 +397,7 @@ int main(int argc, char *argv[])
// Write patches // Write patches
// Create patch addressing // Create patch addressing
List<DynamicList<label> > patchAddr(patches.size()); List<dynamicLabelList > patchAddr(patches.size());
forAll(facets, faceI) forAll(facets, faceI)
{ {

View file

@ -48,7 +48,7 @@ void getPatchIds
( (
const triSurf& origSurf, const triSurf& origSurf,
const wordList& patchNames, const wordList& patchNames,
DynamicList<label>& patchIds dynamicLabelList& patchIds
) )
{ {
const geometricSurfacePatchList& origPatches = origSurf.patches(); const geometricSurfacePatchList& origPatches = origSurf.patches();
@ -189,7 +189,7 @@ autoPtr<triSurf> mergeSurfacePatches
word newPatchType = origPatches[patchIds[0]].geometricType(); word newPatchType = origPatches[patchIds[0]].geometricType();
// Create patch addressing // Create patch addressing
List<DynamicList<label> > patchAddr(origPatches.size()+1); List<dynamicLabelList > patchAddr(origPatches.size()+1);
forAll(origFacets, faceI) forAll(origFacets, faceI)
{ {
@ -331,7 +331,7 @@ int main(int argc, char *argv[])
triSurf origSurf(inFileName); triSurf origSurf(inFileName);
// Get patch ids // Get patch ids
DynamicList<label> patchIds; dynamicLabelList patchIds;
if (args.options().found("patchNames")) if (args.options().found("patchNames"))
{ {

View file

@ -163,7 +163,7 @@ int main(int argc, char *argv[])
fZone.checkParallelSync(true); fZone.checkParallelSync(true);
// Patches to put baffles into // Patches to put baffles into
DynamicList<label> newPatches(1); dynamicLabelList newPatches(1);
word patchName(args.additionalArgs()[1]); word patchName(args.additionalArgs()[1]);
newPatches.append(findPatchID(mesh, patchName)); newPatches.append(findPatchID(mesh, patchName));

View file

@ -481,7 +481,7 @@ void Foam::mergePolyMesh::merge()
{ {
Info << "Updating point zones" << endl; Info << "Updating point zones" << endl;
List<DynamicList<label> > pzPoints(pointZoneNames_.size()); List<dynamicLabelList > pzPoints(pointZoneNames_.size());
forAll(pointZones_, pointI) forAll(pointZones_, pointI)
{ {
label zoneID = pointZones_[pointI]; label zoneID = pointZones_[pointI];
@ -506,7 +506,7 @@ void Foam::mergePolyMesh::merge()
{ {
Info << "Updating face zones" << endl; Info << "Updating face zones" << endl;
List<DynamicList<label> > fzFaces(faceZoneNames_.size()); List<dynamicLabelList > fzFaces(faceZoneNames_.size());
List<DynamicList<bool> > fzFlips(faceZoneNames_.size()); List<DynamicList<bool> > fzFlips(faceZoneNames_.size());
forAll(faceZones_, faceI) forAll(faceZones_, faceI)
@ -540,7 +540,7 @@ void Foam::mergePolyMesh::merge()
{ {
Info << "Updating cell zones" << endl; Info << "Updating cell zones" << endl;
List<DynamicList<label> > czCells(cellZoneNames_.size()); List<dynamicLabelList > czCells(cellZoneNames_.size());
forAll(cellZones_, cellI) forAll(cellZones_, cellI)
{ {
label zoneID = cellZones_[cellI]; label zoneID = cellZones_[cellI];

View file

@ -74,16 +74,16 @@ class mergePolyMesh
DynamicList<word> cellZoneNames_; DynamicList<word> cellZoneNames_;
//- Point zones //- Point zones
DynamicList<label> pointZones_; dynamicLabelList pointZones_;
//- Face zones //- Face zones
DynamicList<label> faceZones_; dynamicLabelList faceZones_;
//- Face zone Flips //- Face zone Flips
DynamicList<bool> faceZoneFlips_; DynamicList<bool> faceZoneFlips_;
//- Cell zones //- Cell zones
DynamicList<label> cellZones_; dynamicLabelList cellZones_;
// Private Member Functions // Private Member Functions

View file

@ -56,7 +56,7 @@ string getLine(std::ifstream& is)
// Read space-separated vertices (with optional '/' arguments) // Read space-separated vertices (with optional '/' arguments)
labelList parseVertices(const string& line) labelList parseVertices(const string& line)
{ {
DynamicList<label> verts; dynamicLabelList verts;
// Assume 'l' is followed by space. // Assume 'l' is followed by space.
string::size_type endNum = 1; string::size_type endNum = 1;

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++)
{ {
@ -76,7 +85,7 @@ 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
@ -126,7 +135,11 @@ void Foam::writeFuns::write
if (binary) if (binary)
{ {
#ifdef LITTLEENDIAN #ifdef LITTLEENDIAN
swapWords(elems.size(), reinterpret_cast<label*>(elems.begin())); swapWords
(
(sizeof(label)/4)*elems.size(),
reinterpret_cast<int32_t*>(elems.begin())
);
#endif #endif
os.write os.write
( (
@ -156,7 +169,7 @@ void Foam::writeFuns::write
( (
std::ostream& os, std::ostream& os,
const bool binary, const bool binary,
DynamicList<label>& elems dynamicLabelList& elems
) )
{ {
labelList& fld = elems.shrink(); labelList& fld = elems.shrink();
@ -175,7 +188,7 @@ void Foam::writeFuns::insert(const point& pt, DynamicList<floatScalar>& dest)
// Store labelList in dest. // Store labelList in dest.
void Foam::writeFuns::insert(const labelList& source, DynamicList<label>& dest) void Foam::writeFuns::insert(const labelList& source, dynamicLabelList& dest)
{ {
forAll(source, i) forAll(source, i)
{ {
@ -187,7 +200,7 @@ void Foam::writeFuns::insert(const labelList& source, DynamicList<label>& dest)
// Store scalarField in dest // Store scalarField in dest
void Foam::writeFuns::insert void Foam::writeFuns::insert
( (
const List<scalar>& source, const scalarList& source,
DynamicList<floatScalar>& dest DynamicList<floatScalar>& dest
) )
{ {
@ -202,7 +215,7 @@ void Foam::writeFuns::insert
void Foam::writeFuns::insert void Foam::writeFuns::insert
( (
const labelList& map, const labelList& map,
const List<scalar>& source, const scalarList& source,
DynamicList<floatScalar>& dest DynamicList<floatScalar>& dest
) )
{ {

View file

@ -36,9 +36,10 @@ SourceFiles
#define writeFunctions_H #define writeFunctions_H
#include "labelList.H" #include "labelList.H"
#include "scalarList.H"
#include "floatScalar.H" #include "floatScalar.H"
#include "OFstream.H" #include "OFstream.H"
#include "DynamicList.H" #include "dynamicLabelList.H"
#include "point.H" #include "point.H"
using namespace Foam; using namespace Foam;
@ -55,15 +56,20 @@ 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:
//- Write ascii or binary. If binary optionally in-place swaps argument //- Write ascii or binary. If binary optionally in-place swaps argument
static void write(std::ostream&, const bool, DynamicList<floatScalar>&); static void write(std::ostream&, const bool, DynamicList<floatScalar>&);
static void write(std::ostream&, const bool, DynamicList<label>&); static void write(std::ostream&, const bool, dynamicLabelList&);
//- Write ascii or binary. If binary optionally in-place swaps argument //- Write ascii or binary. If binary optionally in-place swaps argument
static void write(std::ostream&, const bool, List<floatScalar>&); static void write(std::ostream&, const bool, List<floatScalar>&);
@ -73,15 +79,15 @@ public:
static void insert(const point&, DynamicList<floatScalar>& dest); static void insert(const point&, DynamicList<floatScalar>& dest);
//- Append elements of labelList to DynamicList //- Append elements of labelList to DynamicList
static void insert(const labelList&, DynamicList<label>&); static void insert(const labelList&, dynamicLabelList&);
//- Append elements of scalarList to DynamicList //- Append elements of scalarList to DynamicList
static void insert(const List<scalar>&, DynamicList<floatScalar>&); static void insert(const scalarList&, DynamicList<floatScalar>&);
//- Append elements of scalarList to DynamicList using map //- Append elements of scalarList to DynamicList using map
static void insert static void insert
( (
const labelList& map, const labelList& map,
const List<scalar>& source, const scalarList& source,
DynamicList<floatScalar>& DynamicList<floatScalar>&
); );

View file

@ -89,7 +89,7 @@ void writePatch
<< std::endl; << std::endl;
DynamicList<label> vertLabels(nFaceVerts); dynamicLabelList vertLabels(nFaceVerts);
forAll(fp.localFaces(), faceI) forAll(fp.localFaces(), faceI)
{ {

View file

@ -155,7 +155,7 @@ int main(int argc, char *argv[])
faceSet set(*iter()); faceSet set(*iter());
SortableList<label> faceLabels(set.toc()); SortableList<label> faceLabels(set.toc());
DynamicList<label> addressing(set.size()); dynamicLabelList addressing(set.size());
DynamicList<bool> flipMap(set.size()); DynamicList<bool> flipMap(set.size());
if (!noFlipMap) if (!noFlipMap)

View file

@ -486,7 +486,7 @@ void subsetSurfaceFields
// Select all cells not in the region // Select all cells not in the region
labelList getNonRegionCells(const labelList& cellRegion, const label regionI) labelList getNonRegionCells(const labelList& cellRegion, const label regionI)
{ {
DynamicList<label> nonRegionCells(cellRegion.size()); dynamicLabelList nonRegionCells(cellRegion.size());
forAll (cellRegion, cellI) forAll (cellRegion, cellI)
{ {
if (cellRegion[cellI] != regionI) if (cellRegion[cellI] != regionI)

View file

@ -180,10 +180,10 @@ if (fieldTimesUsed.size())
// TODO: allow similar/different time-steps for each cloud // TODO: allow similar/different time-steps for each cloud
cloudNo = 0; cloudNo = 0;
forAllConstIter(HashTable<DynamicList<label> >, cloudTimesUsed, cloudIter) forAllConstIter(HashTable<dynamicLabelList >, cloudTimesUsed, cloudIter)
{ {
// const word& cloudName = cloudIter.key(); // const word& cloudName = cloudIter.key();
const DynamicList<label>& timesUsed = cloudIter(); const dynamicLabelList& timesUsed = cloudIter();
if (timesUsed.size() && cloudNo == 0) if (timesUsed.size() && cloudNo == 0)
{ {

View file

@ -175,15 +175,15 @@ int main(int argc, char *argv[])
Map<scalar> timeIndices; Map<scalar> timeIndices;
// Track the time indices used by the volume fields // Track the time indices used by the volume fields
DynamicList<label> fieldTimesUsed; dynamicLabelList fieldTimesUsed;
// Track the time indices used by each cloud // Track the time indices used by each cloud
HashTable<DynamicList<label> > cloudTimesUsed; HashTable<dynamicLabelList > cloudTimesUsed;
// Create a new DynamicList for each cloud // Create a new DynamicList for each cloud
forAllConstIter(HashTable<HashTable<word> >, cloudFields, cloudIter) forAllConstIter(HashTable<HashTable<word> >, cloudFields, cloudIter)
{ {
cloudTimesUsed.insert(cloudIter.key(), DynamicList<label>()); cloudTimesUsed.insert(cloudIter.key(), dynamicLabelList());
} }

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

@ -125,7 +125,7 @@ labelList getSelectedPatches
const List<wordRe>& excludePatches //HashSet<word>& excludePatches const List<wordRe>& excludePatches //HashSet<word>& excludePatches
) )
{ {
DynamicList<label> patchIDs(patches.size()); dynamicLabelList patchIDs(patches.size());
Info<< "Combining patches:" << endl; Info<< "Combining patches:" << endl;

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

@ -64,8 +64,8 @@ Foam::faMeshWriter::faMeshWriter
os_ << "CELLS " << aMesh.nFaces() << ' ' << nFaceVerts os_ << "CELLS " << aMesh.nFaces() << ' ' << nFaceVerts
<< std::endl; << std::endl;
DynamicList<label> vertLabels(nFaceVerts); dynamicLabelList vertLabels(nFaceVerts);
DynamicList<label> faceTypes(nFaceVerts); dynamicLabelList faceTypes(nFaceVerts);
forAll(pp, faceI) forAll(pp, faceI)
{ {

View file

@ -176,7 +176,7 @@ labelList getSelectedPatches
const HashSet<word>& excludePatches const HashSet<word>& excludePatches
) )
{ {
DynamicList<label> patchIDs(patches.size()); dynamicLabelList patchIDs(patches.size());
Info<< "Combining patches:" << endl; Info<< "Combining patches:" << endl;

View file

@ -91,7 +91,7 @@ Foam::internalWriter::internalWriter
<< std::endl; << std::endl;
DynamicList<label> vertLabels(nFaceVerts); dynamicLabelList vertLabels(nFaceVerts);
forAll(vtkVertLabels, cellI) forAll(vtkVertLabels, cellI)
{ {
@ -110,7 +110,7 @@ Foam::internalWriter::internalWriter
os_ << "CELL_TYPES " << vtkCellTypes.size() << std::endl; os_ << "CELL_TYPES " << vtkCellTypes.size() << std::endl;
// Make copy since writing might swap stuff. // Make copy since writing might swap stuff.
DynamicList<label> cellTypes(vtkCellTypes.size()); dynamicLabelList cellTypes(vtkCellTypes.size());
writeFuns::insert(vtkCellTypes, cellTypes); writeFuns::insert(vtkCellTypes, cellTypes);

View file

@ -94,8 +94,8 @@ Foam::patchWriter::patchWriter
os_ << "CELLS " << nFaces_ << ' ' << nFaceVerts os_ << "CELLS " << nFaces_ << ' ' << nFaceVerts
<< std::endl; << std::endl;
DynamicList<label> vertLabels(nFaceVerts); dynamicLabelList vertLabels(nFaceVerts);
DynamicList<label> faceTypes(nFaceVerts); dynamicLabelList faceTypes(nFaceVerts);
label offset = 0; label offset = 0;

View file

@ -110,7 +110,7 @@ void writeFaceSet
pStream << "POLYGONS " << fp.size() << ' ' << nFaceVerts pStream << "POLYGONS " << fp.size() << ' ' << nFaceVerts
<< std::endl; << std::endl;
DynamicList<label> vertLabels(nFaceVerts); dynamicLabelList vertLabels(nFaceVerts);
forAll(lf, faceI) forAll(lf, faceI)
{ {

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++)
{ {
@ -86,8 +86,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
( (
reinterpret_cast<char*>(fField.begin()), reinterpret_cast<char*>(fField.begin()),
@ -135,7 +136,11 @@ void Foam::writeFuns::write
if (binary) if (binary)
{ {
#ifdef LITTLEENDIAN #ifdef LITTLEENDIAN
swapWords(elems.size(), reinterpret_cast<label*>(elems.begin())); swapWords
(
(sizeof(label)/4)*elems.size(),
reinterpret_cast<int32_t*>(elems.begin())
);
#endif #endif
os.write os.write
( (
@ -165,7 +170,7 @@ void Foam::writeFuns::write
( (
std::ostream& os, std::ostream& os,
const bool binary, const bool binary,
DynamicList<label>& elems dynamicLabelList& elems
) )
{ {
labelList& fld = elems.shrink(); labelList& fld = elems.shrink();
@ -269,7 +274,7 @@ void Foam::writeFuns::insert(const tensor& pt, DynamicList<floatScalar>& dest)
} }
void Foam::writeFuns::insert(const labelList& source, DynamicList<label>& dest) void Foam::writeFuns::insert(const labelList& source, dynamicLabelList& dest)
{ {
forAll(source, i) forAll(source, i)
{ {

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:
@ -68,7 +69,7 @@ public:
static void write(std::ostream&, const bool, List<floatScalar>&); static void write(std::ostream&, const bool, List<floatScalar>&);
static void write(std::ostream&, const bool, DynamicList<floatScalar>&); static void write(std::ostream&, const bool, DynamicList<floatScalar>&);
static void write(std::ostream&, const bool, labelList&); static void write(std::ostream&, const bool, labelList&);
static void write(std::ostream&, const bool, DynamicList<label>&); static void write(std::ostream&, const bool, dynamicLabelList&);
// Write header // Write header
@ -105,7 +106,7 @@ public:
//- Append elements to DynamicList //- Append elements to DynamicList
static void insert(const labelList&, DynamicList<label>&); static void insert(const labelList&, dynamicLabelList&);
template<class Type> template<class Type>
static void insert(const List<Type>&, DynamicList<floatScalar>&); static void insert(const List<Type>&, DynamicList<floatScalar>&);

View file

@ -64,7 +64,7 @@ void writePatchGeom
<< std::endl; << std::endl;
DynamicList<label> vertLabels(nFaceVerts); dynamicLabelList vertLabels(nFaceVerts);
forAll(faces, faceI) forAll(faces, faceI)
{ {

View file

@ -43,9 +43,9 @@ static fileName caseDir;
static instantList timeDirs; static instantList timeDirs;
static List<word> fieldNames; static wordList fieldNames;
static List<word> lagrangianScalarNames; static wordList lagrangianScalarNames;
static List<word> lagrangianVectorNames; static wordList lagrangianVectorNames;
static label var2field[maxNames]; static label var2field[maxNames];
static Time *runTimePtr = 0; static Time *runTimePtr = 0;

View file

@ -50,7 +50,7 @@ void Foam::readerDatabase::getPolyHedra()
const cellModel& tetWedge = *(cellModeller::lookup("tetWedge")); const cellModel& tetWedge = *(cellModeller::lookup("tetWedge"));
const cellModel& hex = *(cellModeller::lookup("hex")); const cellModel& hex = *(cellModeller::lookup("hex"));
DynamicList<label> polys(mesh().nCells()/100 + 1); dynamicLabelList polys(mesh().nCells()/100 + 1);
const cellShapeList& cellShapes = mesh().cellShapes(); const cellShapeList& cellShapes = mesh().cellShapes();

View file

@ -44,9 +44,9 @@ static fileName caseDir;
static instantList TimeList; static instantList TimeList;
static List<word> fieldNames; static wordList fieldNames;
static List<word> lagrangianScalarNames; static wordList lagrangianScalarNames;
static List<word> lagrangianVectorNames; static wordList lagrangianVectorNames;
static label var2field[maxNames]; static label var2field[maxNames];
static Time *runTimePtr = 0; static Time *runTimePtr = 0;
@ -57,7 +57,7 @@ static Cloud<passiveParticle> *sprayPtr = 0;
static fvMesh* secondMeshPtr = 0; static fvMesh* secondMeshPtr = 0;
static int nSecondMeshPatches = 0; static int nSecondMeshPatches = 0;
static char secondMeshName[] = "cells_2"; static char secondMeshName[] = "cells_2";
static List<word> secondMeshFieldNames; static wordList secondMeshFieldNames;
static label secondMeshVar2field[maxNames]; static label secondMeshVar2field[maxNames];
static bool secondMeshIsScalar[maxNames]; static bool secondMeshIsScalar[maxNames];
static bool secondMeshIsVector[maxNames]; static bool secondMeshIsVector[maxNames];
@ -71,7 +71,7 @@ static word faScalarName = "areaScalarField";
static word faVectorName = "areaVectorField"; static word faVectorName = "areaVectorField";
static word faTensorName = "areaTensorField"; static word faTensorName = "areaTensorField";
static char faMeshName[] = "faCells"; static char faMeshName[] = "faCells";
static List<word> faMeshFieldNames; static wordList faMeshFieldNames;
static label faMeshVar2field[maxNames]; static label faMeshVar2field[maxNames];
static bool faMeshIsScalar[maxNames]; static bool faMeshIsScalar[maxNames];
static bool faMeshIsVector[maxNames]; static bool faMeshIsVector[maxNames];

View file

@ -111,7 +111,7 @@ int main(int argc, char *argv[])
// calc starting ids for particles on each processor // calc starting ids for particles on each processor
List<label> startIds(numIds.size(), 0); labelList startIds(numIds.size(), 0);
for (label i = 0; i < numIds.size()-1; i++) for (label i = 0; i < numIds.size()-1; i++)
{ {
startIds[i+1] += startIds[i] + numIds[i]; startIds[i+1] += startIds[i] + numIds[i];

View file

@ -59,7 +59,7 @@ void Foam::channelIndex::walkOppositeFaces
const faceList& faces = mesh.faces(); const faceList& faces = mesh.faces();
label nBnd = mesh.nFaces() - mesh.nInternalFaces(); label nBnd = mesh.nFaces() - mesh.nInternalFaces();
DynamicList<label> frontFaces(startFaces); dynamicLabelList frontFaces(startFaces);
forAll(frontFaces, i) forAll(frontFaces, i)
{ {
label faceI = frontFaces[i]; label faceI = frontFaces[i];
@ -93,7 +93,7 @@ void Foam::channelIndex::walkOppositeFaces
} }
// Transfer across cells // Transfer across cells
DynamicList<label> newFrontFaces(frontFaces.size()); dynamicLabelList newFrontFaces(frontFaces.size());
forAll(frontFaces, i) forAll(frontFaces, i)
{ {

View file

@ -427,7 +427,7 @@ int main(int argc, char *argv[])
); );
List<boundBox> bbsTarget(nProcsTarget); List<boundBox> bbsTarget(nProcsTarget);
List<bool> bbsTargetSet(nProcsTarget, false); boolList bbsTargetSet(nProcsTarget, false);
for (int procISource=0; procISource<nProcsSource; procISource++) for (int procISource=0; procISource<nProcsSource; procISource++)
{ {

View file

@ -135,7 +135,7 @@ void mapLagrangian(const meshToMesh& meshToMeshInterp)
label sourceParticleI = 0; label sourceParticleI = 0;
// Indices of source particles that get added to targetParcels // Indices of source particles that get added to targetParcels
DynamicList<label> addParticles(sourceParcels.size()); dynamicLabelList addParticles(sourceParcels.size());
// Unmapped particles // Unmapped particles
labelHashSet unmappedSource(sourceParcels.size()); labelHashSet unmappedSource(sourceParcels.size());

View file

@ -11,8 +11,8 @@ for (label procI = 0; procI < Pstream::nProcs(); procI++)
DynamicField<point> start(coarseMesh.nFaces()); DynamicField<point> start(coarseMesh.nFaces());
DynamicField<point> end(start.size()); DynamicField<point> end(start.size());
DynamicList<label> startIndex(start.size()); dynamicLabelList startIndex(start.size());
DynamicList<label> endIndex(start.size()); dynamicLabelList endIndex(start.size());
const pointField& myFc = remoteCoarseCf[Pstream::myProcNo()]; const pointField& myFc = remoteCoarseCf[Pstream::myProcNo()];
const vectorField& myArea = remoteCoarseSf[Pstream::myProcNo()]; const vectorField& myArea = remoteCoarseSf[Pstream::myProcNo()];

View file

@ -400,9 +400,9 @@ int main(int argc, char *argv[])
// Determine rays between coarse face centres // Determine rays between coarse face centres
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DynamicList<label> rayStartFace(nCoarseFaces + 0.01*nCoarseFaces); dynamicLabelList rayStartFace(nCoarseFaces + 0.01*nCoarseFaces);
DynamicList<label> rayEndFace(rayStartFace.size()); dynamicLabelList rayEndFace(rayStartFace.size());
globalIndex globalNumbering(nCoarseFaces); globalIndex globalNumbering(nCoarseFaces);
@ -483,7 +483,7 @@ int main(int argc, char *argv[])
IOobject::NO_WRITE, IOobject::NO_WRITE,
false false
), ),
List<label>(1, map.constructSize()) labelList(1, map.constructSize())
); );
consMapDim.write(); consMapDim.write();
@ -510,7 +510,7 @@ int main(int argc, char *argv[])
List<List<point> > compactFineSf(map.constructSize()); List<List<point> > compactFineSf(map.constructSize());
List<List<point> > compactFineCf(map.constructSize()); List<List<point> > compactFineCf(map.constructSize());
DynamicList<label> compactPatchId(map.constructSize()); dynamicLabelList compactPatchId(map.constructSize());
// Insert my coarse local values // Insert my coarse local values
SubList<point>(compactCoarseSf, nCoarseFaces).assign(localCoarseSf); SubList<point>(compactCoarseSf, nCoarseFaces).assign(localCoarseSf);

View file

@ -236,7 +236,7 @@ int main(int argc, char *argv[])
// ~~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~~
{ {
DynamicList<label> illegalFaces(surf.size()/100 + 1); dynamicLabelList illegalFaces(surf.size()/100 + 1);
forAll(surf, faceI) forAll(surf, faceI)
{ {
@ -350,7 +350,7 @@ int main(int argc, char *argv[])
// Dump for subsetting // Dump for subsetting
{ {
DynamicList<label> problemFaces(surf.size()/100+1); dynamicLabelList problemFaces(surf.size()/100+1);
forAll(triQ, faceI) forAll(triQ, faceI)
{ {
@ -481,7 +481,7 @@ int main(int argc, char *argv[])
// Check manifold // Check manifold
// ~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~
DynamicList<label> problemFaces(surf.size()/100 + 1); dynamicLabelList problemFaces(surf.size()/100 + 1);
const labelListList& eFaces = surf.edgeFaces(); const labelListList& eFaces = surf.edgeFaces();

View file

@ -61,11 +61,11 @@ void readNASEdges
// coordinates of point // coordinates of point
DynamicList<point> points; DynamicList<point> points;
// Nastran index of point // Nastran index of point
DynamicList<label> pointIndices; dynamicLabelList pointIndices;
// beams // beams
DynamicList<edge> edges; DynamicList<edge> edges;
DynamicList<label> edgeIndices; dynamicLabelList edgeIndices;
while (is.good()) while (is.good())

View file

@ -193,7 +193,7 @@ void Foam::boundaryMesh::markEdges
const label edgeI, const label edgeI,
const label distance, const label distance,
labelList& minDistance, labelList& minDistance,
DynamicList<label>& visited dynamicLabelList& visited
) const ) const
{ {
if (distance < maxDistance) if (distance < maxDistance)
@ -865,8 +865,8 @@ Foam::labelList Foam::boundaryMesh::getNearest
// Divide faces into two bins acc. to normal // Divide faces into two bins acc. to normal
// - left of splitNormal // - left of splitNormal
// - right ,, // - right ,,
DynamicList<label> leftFaces(mesh().size()/2); dynamicLabelList leftFaces(mesh().size()/2);
DynamicList<label> rightFaces(mesh().size()/2); dynamicLabelList rightFaces(mesh().size()/2);
forAll(mesh(), bFaceI) forAll(mesh(), bFaceI)
{ {
@ -1253,7 +1253,7 @@ void Foam::boundaryMesh::patchify
if (newPatchPtrList.size()) if (newPatchPtrList.size())
{ {
List<DynamicList<label> > patchFaces(nNewPatches); List<dynamicLabelList > patchFaces(nNewPatches);
// Give reasonable estimate for size of patches // Give reasonable estimate for size of patches
label nAvgFaces = label nAvgFaces =
@ -1516,7 +1516,7 @@ void Foam::boundaryMesh::setExtraEdges(const label edgeI)
labelList minDistance(mesh().nEdges(), -1); labelList minDistance(mesh().nEdges(), -1);
// All edge labels encountered // All edge labels encountered
DynamicList<label> visitedEdges; dynamicLabelList visitedEdges;
// Floodfill from edgeI starting from distance 0. Stop at distance. // Floodfill from edgeI starting from distance 0. Stop at distance.
markEdges(8, edgeI, 0, minDistance, visitedEdges); markEdges(8, edgeI, 0, minDistance, visitedEdges);

View file

@ -132,7 +132,7 @@ class boundaryMesh
const label edgeI, const label edgeI,
const label distance, const label distance,
labelList& minDistance, labelList& minDistance,
DynamicList<label>& visited dynamicLabelList& visited
) const; ) const;
//- Get index of polypatch by name //- Get index of polypatch by name

View file

@ -173,11 +173,11 @@ int main(int argc, char *argv[])
// Create Look Up Table // Create Look Up Table
interpolationLookUpTable<scalar> LookUpTable(control); interpolationLookUpTable<scalar> LookUpTable(control);
const List<label>& dim = LookUpTable.dim(); const labelList& dim = LookUpTable.dim();
const List<scalar>& min = LookUpTable.min(); const scalarList& min = LookUpTable.min();
const List<scalar>& delta = LookUpTable.delta(); const scalarList& delta = LookUpTable.delta();
label count = 0; label count = 0;

View file

@ -41,7 +41,8 @@ setenv FOAM_JOB_DIR $WM_PROJECT_INST_DIR/jobControl
# wmake configuration # wmake configuration
setenv WM_DIR $WM_PROJECT_DIR/wmake setenv WM_DIR $WM_PROJECT_DIR/wmake
setenv WM_LINK_LANGUAGE c++ setenv WM_LINK_LANGUAGE c++
setenv WM_OPTIONS $WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_COMPILE_OPTION setenv WM_LABEL_OPTION "Int$WM_LABEL_SIZE"
setenv WM_OPTIONS "$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION$WM_COMPILE_OPTION"
set path=($WM_DIR $path) set path=($WM_DIR $path)
# base configuration # base configuration

View file

@ -79,7 +79,8 @@ export FOAM_JOB_DIR=$HOME/$WM_PROJECT/jobControl
# wmake configuration # wmake configuration
export WM_DIR=$WM_PROJECT_DIR/wmake export WM_DIR=$WM_PROJECT_DIR/wmake
export WM_LINK_LANGUAGE=c++ export WM_LINK_LANGUAGE=c++
export WM_OPTIONS=$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_COMPILE_OPTION export WM_LABEL_OPTION="Int$WM_LABEL_SIZE"
export WM_OPTIONS="$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION$WM_COMPILE_OPTION"
export PATH=$WM_DIR:$PATH export PATH=$WM_DIR:$PATH
# base configuration # base configuration

View file

@ -40,7 +40,7 @@ Foam::List<Foam::word> Foam::ensightPart::elemTypes_(0);
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
bool Foam::ensightPart::isFieldDefined(const List<scalar>& field) const bool Foam::ensightPart::isFieldDefined(const scalarList& field) const
{ {
forAll(elemLists_, elemI) forAll(elemLists_, elemI)
{ {

View file

@ -60,7 +60,7 @@ class ensightPart
// Private data // Private data
// Static data members // Static data members
static List<word> elemTypes_; static wordList elemTypes_;
protected: protected:
@ -126,7 +126,7 @@ protected:
void reconstruct(Istream&); void reconstruct(Istream&);
//- check for fully defined fields //- check for fully defined fields
bool isFieldDefined(const List<scalar>&) const; bool isFieldDefined(const scalarList&) const;
//- write the part header //- write the part header
void writeHeader(ensightFile&, bool withDescription=false) const; void writeHeader(ensightFile&, bool withDescription=false) const;
@ -135,7 +135,7 @@ protected:
void writeFieldList void writeFieldList
( (
ensightFile& os, ensightFile& os,
const List<scalar>& field, const scalarList& field,
const labelList& idList const labelList& idList
) const; ) const;
@ -212,7 +212,7 @@ public:
// Static members // Static members
virtual List<word> const& elementTypes() const virtual wordList const& elementTypes() const
{ {
return elemTypes_; return elemTypes_;
} }
@ -292,16 +292,16 @@ public:
void writeScalarField void writeScalarField
( (
ensightFile&, ensightFile&,
const List<scalar>& field const scalarList& field
) const; ) const;
//- write vector field components //- write vector field components
void writeVectorField void writeVectorField
( (
ensightFile&, ensightFile&,
const List<scalar>& field0, const scalarList& field0,
const List<scalar>& field1, const scalarList& field1,
const List<scalar>& field2 const scalarList& field2
) const; ) const;

View file

@ -88,7 +88,7 @@ protected:
}; };
// Static data members // Static data members
static List<word> elemTypes_; static wordList elemTypes_;
public: public:
@ -140,7 +140,7 @@ public:
// Member Functions // Member Functions
//- static listing of the element types //- static listing of the element types
virtual List<word> const& elementTypes() const virtual wordList const& elementTypes() const
{ {
return elemTypes_; return elemTypes_;
} }

View file

@ -79,7 +79,7 @@ protected:
}; };
// Static data members // Static data members
static List<word> elemTypes_; static wordList elemTypes_;
public: public:
@ -120,7 +120,7 @@ public:
// Member Functions // Member Functions
//- static listing of the element types //- static listing of the element types
virtual List<word> const& elementTypes() const virtual wordList const& elementTypes() const
{ {
return elemTypes_; return elemTypes_;
} }

View file

@ -55,8 +55,8 @@ void Foam::ensightPart::writeHeader
void Foam::ensightPart::writeFieldList void Foam::ensightPart::writeFieldList
( (
ensightFile& os, ensightFile& os,
const List<scalar>& field, const scalarList& field,
const List<label>& idList const labelList& idList
) const ) const
{ {
forAll(idList, i) forAll(idList, i)
@ -172,7 +172,7 @@ void Foam::ensightPart::writeGeometry(ensightGeoFile& os) const
void Foam::ensightPart::writeScalarField void Foam::ensightPart::writeScalarField
( (
ensightFile& os, ensightFile& os,
const List<scalar>& field const scalarList& field
) const ) const
{ {
if (size() && field.size() && (os.allowUndef() || isFieldDefined(field))) if (size() && field.size() && (os.allowUndef() || isFieldDefined(field)))
@ -196,9 +196,9 @@ void Foam::ensightPart::writeScalarField
void Foam::ensightPart::writeVectorField void Foam::ensightPart::writeVectorField
( (
ensightFile& os, ensightFile& os,
const List<scalar>& field0, const scalarList& field0,
const List<scalar>& field1, const scalarList& field1,
const List<scalar>& field2 const scalarList& field2
) const ) const
{ {
if (size() && field0.size() && (os.allowUndef() || isFieldDefined(field0))) if (size() && field0.size() && (os.allowUndef() || isFieldDefined(field0)))

View file

@ -248,7 +248,7 @@ void Foam::ensightParts::writeData(Ostream& os) const
void Foam::ensightParts::writeScalarField void Foam::ensightParts::writeScalarField
( (
ensightFile& os, ensightFile& os,
const List<scalar>& field, const scalarList& field,
bool useFaceData bool useFaceData
) const ) const
{ {
@ -270,9 +270,9 @@ void Foam::ensightParts::writeScalarField
void Foam::ensightParts::writeVectorField void Foam::ensightParts::writeVectorField
( (
ensightFile& os, ensightFile& os,
const List<scalar>& field0, const scalarList& field0,
const List<scalar>& field1, const scalarList& field1,
const List<scalar>& field2, const scalarList& field2,
bool useFaceData bool useFaceData
) const ) const
{ {

View file

@ -112,7 +112,7 @@ public:
void writeScalarField void writeScalarField
( (
ensightFile&, ensightFile&,
const List<scalar>& field, const scalarList& field,
bool useFaceData = false bool useFaceData = false
) const; ) const;
@ -120,9 +120,9 @@ public:
void writeVectorField void writeVectorField
( (
ensightFile&, ensightFile&,
const List<scalar>& field0, const scalarList& field0,
const List<scalar>& field1, const scalarList& field1,
const List<scalar>& field2, const scalarList& field2,
bool useFaceData = false bool useFaceData = false
) const; ) const;

View file

@ -189,7 +189,7 @@ void Foam::meshReader::createPolyBoundary()
else if (patchPhysicalTypes_[patchI] == "monitoring") else if (patchPhysicalTypes_[patchI] == "monitoring")
{ {
// translate the "monitoring" pseudo-boundaries to face sets // translate the "monitoring" pseudo-boundaries to face sets
List<label> monitoring(idList.size()); labelList monitoring(idList.size());
label monitorI = 0; label monitorI = 0;
forAll(idList, bndI) forAll(idList, bndI)

View file

@ -103,7 +103,7 @@ void Foam::meshReader::addFaceZones(polyMesh& mesh) const
( (
iter.key(), iter.key(),
iter(), iter(),
List<bool>(iter().size(), false), boolList(iter().size(), false),
nZone, nZone,
mesh.faceZones() mesh.faceZones()
) )

View file

@ -220,7 +220,7 @@ private:
void writeInterfaces(const objectRegistry&) const; void writeInterfaces(const objectRegistry&) const;
//- Write List<label> in constant/polyMesh //- Write labelList in constant/polyMesh
void writeMeshLabelList void writeMeshLabelList
( (
const objectRegistry& registry, const objectRegistry& registry,

View file

@ -149,7 +149,7 @@ void Foam::meshReader::writeAux(const objectRegistry& registry) const
cellTable_.writeDict(registry); cellTable_.writeDict(registry);
writeInterfaces(registry); writeInterfaces(registry);
// write origCellId as List<label> // write origCellId as labelList
writeMeshLabelList writeMeshLabelList
( (
registry, registry,
@ -158,7 +158,7 @@ void Foam::meshReader::writeAux(const objectRegistry& registry) const
IOstream::BINARY IOstream::BINARY
); );
// write cellTableId as List<label> // write cellTableId as labelList
// this is crucial for later conversion back to ccm/starcd // this is crucial for later conversion back to ccm/starcd
writeMeshLabelList writeMeshLabelList
( (

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

@ -90,7 +90,7 @@ class cellTable
Map<label> zoneMap() const; Map<label> zoneMap() const;
//- A contiguous list of cellTable names //- A contiguous list of cellTable names
List<word> namesList() const; wordList namesList() const;
//- Add required entries - MaterialType //- Add required entries - MaterialType
void addDefaults(); void addDefaults();

View file

@ -293,7 +293,7 @@ void Foam::meshWriters::STARCD::writeCells(const fileName& prefix) const
const labelList& cFaces = cells[cellId]; const labelList& cFaces = cells[cellId];
// create (beg,end) indices // create (beg,end) indices
List<label> indices(cFaces.size() + 1); labelList indices(cFaces.size() + 1);
indices[0] = indices.size(); indices[0] = indices.size();
label count = indices.size(); label count = indices.size();

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, labelList& adjncy,
List<int>& xadj labelList& 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, labelList& adjncy,
List<int>& xadj labelList& 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, labelList& adjncy,
List<int>& xadj labelList& 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); labelList 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, labelList& adjncy,
List<int>& xadj labelList& 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, labelList& adjncy,
List<int>& xadj labelList& 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, labelList& adjncy,
List<int>& xadj labelList& xadj
); );
//- Helper: determine (non-parallel) cellCells from mesh //- Helper: determine (non-parallel) cellCells from mesh

View file

@ -97,7 +97,7 @@ void Foam::hierarchGeomDecomp::setDecompOrder()
Foam::label Foam::hierarchGeomDecomp::findLower Foam::label Foam::hierarchGeomDecomp::findLower
( (
const List<scalar>& l, const scalarList& l,
const scalar t, const scalar t,
const label initLow, const label initLow,
const label initHigh const label initHigh
@ -179,7 +179,7 @@ void Foam::hierarchGeomDecomp::calculateSortedWeightedSizes
void Foam::hierarchGeomDecomp::findBinary void Foam::hierarchGeomDecomp::findBinary
( (
const label sizeTol, const label sizeTol,
const List<scalar>& values, const scalarList& values,
const label minIndex, // index of previous value const label minIndex, // index of previous value
const scalar minValue, // value at minIndex const scalar minValue, // value at minIndex
const scalar maxValue, // global max of values const scalar maxValue, // global max of values
@ -253,8 +253,8 @@ void Foam::hierarchGeomDecomp::findBinary
void Foam::hierarchGeomDecomp::findBinary void Foam::hierarchGeomDecomp::findBinary
( (
const label sizeTol, const label sizeTol,
const List<scalar>& sortedWeightedSizes, const scalarList& sortedWeightedSizes,
const List<scalar>& values, const scalarList& values,
const label minIndex, // index of previous value const label minIndex, // index of previous value
const scalar minValue, // value at minIndex const scalar minValue, // value at minIndex
const scalar maxValue, // global max of values const scalar maxValue, // global max of values

View file

@ -100,7 +100,7 @@ class hierarchGeomDecomp
//- Find index of t in list inbetween indices left and right //- Find index of t in list inbetween indices left and right
static label findLower static label findLower
( (
const List<scalar>&, const scalarList&,
const scalar t, const scalar t,
const label left, const label left,
const label right const label right
@ -112,7 +112,7 @@ class hierarchGeomDecomp
static void findBinary static void findBinary
( (
const label sizeTol, // Acceptable size difference const label sizeTol, // Acceptable size difference
const List<scalar>&, const scalarList&,
const label leftIndex, // index of previous value const label leftIndex, // index of previous value
const scalar leftValue, // value at leftIndex const scalar leftValue, // value at leftIndex
const scalar maxValue, // global max of values const scalar maxValue, // global max of values
@ -127,8 +127,8 @@ class hierarchGeomDecomp
static void findBinary static void findBinary
( (
const label sizeTol, // Acceptable size difference const label sizeTol, // Acceptable size difference
const List<scalar>& sortedWeightedSizes, const scalarList& sortedWeightedSizes,
const List<scalar>&, const scalarList&,
const label leftIndex, // index of previous value const label leftIndex, // index of previous value
const scalar leftValue, // value at leftIndex const scalar leftValue, // value at leftIndex
const scalar maxValue, // global max of values const scalar maxValue, // global max of values

View file

@ -54,10 +54,10 @@ namespace Foam
Foam::label Foam::metisDecomp::decompose Foam::label Foam::metisDecomp::decompose
( (
const List<int>& adjncy, const labelList& adjncy,
const List<int>& xadj, const labelList& xadj,
const scalarField& cWeights, const scalarField& cWeights,
List<int>& finalDecomp labelList& 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; labelList cellWeights;
// face weights (so on the edges of the dual) // face weights (so on the edges of the dual)
List<int> faceWeights; labelList 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; labelList adjncy;
List<int> xadj; labelList 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; labelList 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; labelList adjncy;
List<int> xadj; labelList 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; labelList 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; labelList adjncy;
List<int> xadj; labelList xadj;
calcCSR(globalCellCells, adjncy, xadj); calcCSR(globalCellCells, adjncy, xadj);
// Decompose using default weights // Decompose using default weights
List<int> finalDecomp; labelList 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 labelList& adjncy,
const List<int>& xadj, const labelList& xadj,
const scalarField& cellWeights, const scalarField& cellWeights,
List<int>& finalDecomp labelList& 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 labelList& options,
List<int>& finalDecomp labelList& 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()); labelList 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); labelList 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); labelList 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); labelList 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); labelList 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); labelList 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; labelList 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()); labelList 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); labelList 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; labelList 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 labelList& options,
List<int>& finalDecomp labelList& 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 labelList& adjncy,
const List<int>& xadj, const labelList& xadj,
const scalarField& cWeights, const scalarField& cWeights,
List<int>& finalDecomp labelList& finalDecomp
) )
{ {
// Dump graph // Dump graph
@ -247,7 +247,7 @@ Foam::label Foam::scotchDecomp::decompose
// Graph // Graph
// ~~~~~ // ~~~~~
List<int> velotab; labelList velotab;
// Check for externally provided cellweights and if so initialise weights // Check for externally provided cellweights and if so initialise weights
@ -314,7 +314,7 @@ Foam::label Foam::scotchDecomp::decompose
SCOTCH_Arch archdat; SCOTCH_Arch archdat;
check(SCOTCH_archInit(&archdat), "SCOTCH_archInit"); check(SCOTCH_archInit(&archdat), "SCOTCH_archInit");
List<label> processorWeights; labelList processorWeights;
if (decompositionDict_.found("scotchCoeffs")) if (decompositionDict_.found("scotchCoeffs"))
{ {
const dictionary& scotchCoeffs = const dictionary& scotchCoeffs =
@ -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; labelList adjncy;
List<int> xadj; labelList xadj;
calcCSR(mesh_, adjncy, xadj); calcCSR(mesh_, adjncy, xadj);
// Decompose using default weights // Decompose using default weights
List<int> finalDecomp; labelList 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; labelList adjncy;
List<int> xadj; labelList 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; labelList 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; labelList adjncy;
List<int> xadj; labelList xadj;
calcCSR(globalCellCells, adjncy, xadj); calcCSR(globalCellCells, adjncy, xadj);
// Decompose using weights // Decompose using weights
List<int> finalDecomp; labelList 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 labelList& adjncy,
const List<int>& xadj, const labelList& xadj,
const scalarField& cWeights, const scalarField& cWeights,
List<int>& finalDecomp labelList& finalDecomp
); );

View file

@ -84,7 +84,7 @@ class CompactListList_dev
label size_; label size_;
//- Offset table //- Offset table
List<label> offsets_; labelList offsets_;
//- Packed matrix of data //- Packed matrix of data
List<T> m_; List<T> m_;
@ -143,10 +143,10 @@ public:
inline bool empty() const; inline bool empty() const;
//- Return the offset table (= size()+1) //- Return the offset table (= size()+1)
inline const List<label>& offsets() const; inline const labelList& offsets() const;
//- Return non-const access to the offset table //- Return non-const access to the offset table
inline List<label>& offsets(); inline labelList& offsets();
//- Return the packed matrix of data //- Return the packed matrix of data
inline const List<T>& m() const; inline const List<T>& m() const;

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