COMP: 64bit label changes

This commit is contained in:
mattijs
2011-11-28 11:10:46 +00:00
parent ea52a8bca6
commit 8558af2cdf
42 changed files with 205 additions and 81 deletions

View File

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

View File

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

View File

@ -244,8 +244,8 @@ void Foam::domainDecomposition::decomposeMesh()
{
label nInterfaces = interPatchFaces[procI].size();
subPatchIDs[procI].setSize(nInterfaces, labelList(1, -1));
subPatchStarts[procI].setSize(nInterfaces, labelList(1, 0));
subPatchIDs[procI].setSize(nInterfaces, labelList(1, label(-1)));
subPatchStarts[procI].setSize(nInterfaces, labelList(1, label(0)));
}
// Processor boundaries from split cyclics
@ -319,7 +319,7 @@ void Foam::domainDecomposition::decomposeMesh()
{
label nIntfcs = interPatchFaces[procI].size();
subPatchIDs[procI].setSize(nIntfcs, labelList(1, patchi));
subPatchStarts[procI].setSize(nIntfcs, labelList(1, 0));
subPatchStarts[procI].setSize(nIntfcs, labelList(1, label(0)));
}
}
}

View File

@ -24,6 +24,7 @@ License
\*---------------------------------------------------------------------------*/
#include "HashTable.H"
#include "uLabel.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -47,7 +48,7 @@ Foam::label Foam::HashTableCore::canonicalSize(const label size)
}
// enforce power of two
unsigned int goodSize = size;
uLabel goodSize = size;
if (goodSize & (goodSize - 1))
{

View File

@ -68,7 +68,7 @@ class UIPstream
const bool clearAtEnd_;
label messageSize_;
int messageSize_;
// Private Member Functions

View File

@ -222,7 +222,7 @@ int Foam::UPstream::myProcNo_(0);
bool Foam::UPstream::parRun_(false);
// List of process IDs
Foam::List<int> Foam::UPstream::procIDs_(1, 0);
Foam::List<int> Foam::UPstream::procIDs_(label(1), 0);
// Standard transfer message type
int Foam::UPstream::msgType_(1);

View File

@ -278,7 +278,7 @@ Foam::Time::Time
writeControl_(wcTimeStep),
writeInterval_(GREAT),
secondaryWriteControl_(wcTimeStep),
secondaryWriteInterval_(labelMax),
secondaryWriteInterval_(labelMax/10.0), // bit less to allow calculations
purgeWrite_(0),
writeOnce_(false),
subCycling_(false),
@ -370,7 +370,7 @@ Foam::Time::Time
writeControl_(wcTimeStep),
writeInterval_(GREAT),
secondaryWriteControl_(wcTimeStep),
secondaryWriteInterval_(labelMax),
secondaryWriteInterval_(labelMax/10.0),
purgeWrite_(0),
writeOnce_(false),
subCycling_(false),
@ -465,7 +465,7 @@ Foam::Time::Time
writeControl_(wcTimeStep),
writeInterval_(GREAT),
secondaryWriteControl_(wcTimeStep),
secondaryWriteInterval_(labelMax),
secondaryWriteInterval_(labelMax/10.0),
purgeWrite_(0),
writeOnce_(false),
subCycling_(false),
@ -562,7 +562,7 @@ Foam::Time::Time
writeControl_(wcTimeStep),
writeInterval_(GREAT),
secondaryWriteControl_(wcTimeStep),
secondaryWriteInterval_(labelMax),
secondaryWriteInterval_(labelMax/10.0),
purgeWrite_(0),
writeOnce_(false),
subCycling_(false),

View File

@ -75,6 +75,28 @@ template<class T>
void transformList(const tensorField&, EdgeMap<T>&);
// Specialisations for bool
template<>
inline void transformList(const tensor&, UList<bool>&)
{}
template<>
inline void transformList(const tensorField&, UList<bool>&)
{}
template<>
inline void transformList(const tensor&, Map<bool>&)
{}
template<>
inline void transformList(const tensorField&, Map<bool>&)
{}
template<>
inline void transformList(const tensor&, EdgeMap<bool>&)
{}
template<>
inline void transformList(const tensorField&, EdgeMap<bool>&)
{}
// Specialisations for label
template<>
inline void transformList(const tensor&, labelUList&)
{}
@ -95,6 +117,7 @@ inline void transformList(const tensorField&, EdgeMap<label>&)
{}
// Specialisations for scalar
template<>
inline void transformList(const tensor&, UList<scalar>&)
{}

View File

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

View File

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

View File

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

View File

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

View File

@ -147,7 +147,7 @@ bool Foam::pointZone::checkParallelSync(const bool report) const
maxZone[pointI] = index();
minZone[pointI] = index();
}
syncTools::syncPointList(mesh, maxZone, maxEqOp<label>(), -1);
syncTools::syncPointList(mesh, maxZone, maxEqOp<label>(), label(-1));
syncTools::syncPointList(mesh, minZone, minEqOp<label>(), labelMax);
bool error = false;

View File

@ -318,7 +318,7 @@ void Foam::globalIndexAndTransform::determineTransforms()
void Foam::globalIndexAndTransform::determineTransformPermutations()
{
label nTransformPermutations = pow(3, transforms_.size());
label nTransformPermutations = pow(label(3), transforms_.size());
transformPermutations_.setSize(nTransformPermutations);

View File

@ -151,7 +151,7 @@ Foam::globalIndexAndTransform::decodeTransformIndex
const label transformIndex
) const
{
FixedList<label, 3> permutation(0);
FixedList<label, 3> permutation(label(0));
label t = transformIndex;
if (nIndependentTransforms() > 0)
@ -520,7 +520,7 @@ Foam::labelList Foam::globalIndexAndTransform::transformIndicesForPatches
}
// Number of selected transformations
label nSelTrans = pow(2, nUsedTrans) - 1;
label nSelTrans = pow(label(2), nUsedTrans) - 1;
// Pout<< nl << permutation << nl << endl;

View File

@ -42,6 +42,8 @@ Description
namespace Foam
{
//template<class Type> class Hash;
//template<> class Hash<label>;
/*---------------------------------------------------------------------------*\
Class Hash Declaration
@ -70,30 +72,6 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Hash specialization for hashing pointer addresses.
// Treat a pointer like a long.
// This should work for both 32-bit and 64-bit pointers.
template<>
class Hash<void*>
{
public:
Hash()
{}
unsigned operator()(const void* const& p, unsigned seed) const
{
return Hash<long>()(long(p), seed);
}
unsigned operator()(const void* const& p) const
{
return Hash<long>()(long(p));
}
};
//- Hash specialization for hashing labels
template<>
class Hash<Foam::label>
@ -121,6 +99,30 @@ public:
};
//- Hash specialization for hashing pointer addresses.
// Treat a pointer like a long.
// This should work for both 32-bit and 64-bit pointers.
template<>
class Hash<void*>
{
public:
Hash()
{}
unsigned operator()(const void* const& p, unsigned seed) const
{
return Hash<long>()(long(p), seed);
}
unsigned operator()(const void* const& p) const
{
return Hash<long>()(long(p));
}
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam

View File

@ -53,6 +53,28 @@ pTraits<label>::pTraits(Istream& is)
}
#if (FOAM_LABEL_MAX != INT_MAX)
const char* const pTraits<int>::typeName = "int";
const int pTraits<int>::zero = 0;
const int pTraits<int>::one = 1;
const int pTraits<int>::min = INT_MIN;
const int pTraits<int>::max = INT_MAX;
const char* pTraits<int>::componentNames[] = { "x" };
pTraits<int>::pTraits(const int& p)
:
p_(p)
{}
pTraits<int>::pTraits(Istream& is)
{
is >> p_;
}
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Raise one label to the power of another (overloaded function call)

View File

@ -47,6 +47,9 @@ Description
# define FOAM_LABEL_MAX 2000000000
#endif
#include "pTraits.H"
#include "direction.H"
#if INT_MAX > FOAM_LABEL_MAX
@ -126,8 +129,8 @@ namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "pTraits.H"
#include "direction.H"
//#include "pTraits.H"
//#include "direction.H"
namespace Foam
{
@ -188,6 +191,66 @@ public:
};
// For convenience's sake always define pTraits<int> (so even if label != int)
#if (FOAM_LABEL_MAX != INT_MAX)
//- template specialization for pTraits<int>
template<>
class pTraits<int>
{
int p_;
public:
//- Component type
typedef int cmptType;
// Member constants
enum
{
dim = 3, //!< Dimensionality of space
rank = 0, //!< Rank of int is 0
nComponents = 1 //!< Number of components in int is 1
};
// Static data members
static const char* const typeName;
static const char* componentNames[];
static const int zero;
static const int one;
static const int min;
static const int max;
// Constructors
//- Construct from primitive
explicit pTraits(const int&);
//- Construct from Istream
pTraits(Istream&);
// Member Functions
//- Access to the int value
operator int() const
{
return p_;
}
//- Access to the int value
operator int&()
{
return p_;
}
};
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Raise one label to the power of another
@ -214,6 +277,7 @@ MAXMIN(char, char, char)
MAXMIN(short, short, short)
MAXMIN(int, int, int)
MAXMIN(long, long, long)
MAXMIN(long, long, int)
MAXMIN(long long, long long, long long)
MAXMIN(unsigned char, unsigned char, unsigned char)

View File

@ -48,7 +48,7 @@ class Ostream;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Return a string representation of a long
word name(long);
word name(const long);
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //

View File

@ -37,7 +37,7 @@ Description
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Foam::word Foam::name(long val)
Foam::word Foam::name(const long val)
{
std::ostringstream buf;
buf << val;

View File

@ -42,9 +42,9 @@ SeeAlso
#if FOAM_LABEL64
# define FOAM_ULABEL_MAX 18000000000000000000
# define FOAM_ULABEL_MAX 18000000000000000000u
#else
# define FOAM_ULABEL_MAX 4000000000
# define FOAM_ULABEL_MAX 4000000000u
#endif

View File

@ -57,6 +57,12 @@ inline tensor rotationTensor
}
inline label transform(const tensor&, const bool i)
{
return i;
}
inline label transform(const tensor&, const label i)
{
return i;

View File

@ -259,7 +259,7 @@ Foam::label Foam::UIPstream::read
// Check size of message read
label messageSize;
int messageSize;
MPI_Get_count(&status, MPI_BYTE, &messageSize);
if (debug)

View File

@ -260,7 +260,7 @@ void FSD<CombThermoType, ThermoType>::calculateSourceNorm()
// Combustion progress variable (c).
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
List<label> productsIndex(2, -1);
List<label> productsIndex(2, label(-1));
{
label i = 0;
forAll (this->singleMixture_.specieProd(), specieI)

View File

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

View File

@ -862,7 +862,7 @@ void Foam::addPatchCellLayer::setRefinement
{
labelList n(mesh_.nPoints(), 0);
UIndirectList<label>(n, meshPoints) = nPointLayers;
syncTools::syncPointList(mesh_, n, maxEqOp<label>(), 0);
syncTools::syncPointList(mesh_, n, maxEqOp<label>(), label(0));
// Non-synced
forAll(meshPoints, i)
@ -906,7 +906,7 @@ void Foam::addPatchCellLayer::setRefinement
mesh_,
nFromFace,
maxEqOp<label>(),
0
label(0)
);
forAll(nPointLayers, i)
@ -1418,7 +1418,7 @@ void Foam::addPatchCellLayer::setRefinement
mesh_,
meshEdgeLayers,
maxEqOp<label>(),
0 // initial value
label(0) // initial value
);
forAll(meshEdges, edgeI)

View File

@ -714,7 +714,7 @@ void Foam::combineFaces::setRefinement
mesh_,
nPointFaces,
plusEqOp<label>(),
0 // null value
label(0) // null value
);
// Remove all unused points. Store position if undoable.

View File

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

View File

@ -239,8 +239,14 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject
break;
}
label cI =
generationCells_[rnd.position(0, generationCells_.size() - 1)];
label cI = generationCells_
[
rnd.position
(
label(0),
generationCells_.size() - 1
)
];
// Pick a particle at random from the cell - if there are
// none, insert one at the cell centre. Otherwise, split an
@ -268,7 +274,7 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject
}
else
{
label cPI = rnd.position(0, cellOccupancy[cI].size() - 1);
label cPI = rnd.position(label(0), cellOccupancy[cI].size() - 1);
// This has to be a reference to the pointer so that it
// can be set to NULL when the particle is deleted.

View File

@ -1255,7 +1255,7 @@ void Foam::autoLayerDriver::getPatchDisplacement
meshPoints,
nPointFaces,
plusEqOp<label>(),
0 // null value
label(0) // null value
);
forAll(pointNormals, i)
@ -1954,7 +1954,7 @@ void Foam::autoLayerDriver::setupLayerInfoTruncation
pp.meshPoints(),
nPatchPointLayers,
maxEqOp<label>(),
0 // null value
label(0) // null value
);
}
}

View File

@ -587,7 +587,7 @@ void Foam::autoLayerDriver::findIsolatedRegions
pp.meshPoints(),
isolatedPoint,
plusEqOp<label>(),
0 // null value
label(0) // null value
);
// stop layer growth on isolated faces
@ -730,7 +730,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo
meshPoints,
nPointFaces,
plusEqOp<label>(),
0 // null value
label(0) // null value
);
forAll(pointNormals, i)

View File

@ -221,7 +221,7 @@ Foam::pointField Foam::autoSnapDriver::smoothPatchDisplacement
pp.meshPoints(),
nBoundary,
plusEqOp<label>(), // combine op
0 // null value
label(0) // null value
);
forAll(avgBoundary, i)
@ -296,7 +296,7 @@ Foam::pointField Foam::autoSnapDriver::smoothPatchDisplacement
mesh,
globalNum,
plusEqOp<label>(), // combine op
0 // null value
label(0) // null value
);
avgInternal.setSize(meshPoints.size());

View File

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

View File

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

View File

@ -45,7 +45,7 @@ template <class Type, class TrackingData>
Foam::scalar Foam::FaceCellWave<Type, TrackingData>::propagationTol_ = 0.01;
template <class Type, class TrackingData>
Foam::label Foam::FaceCellWave<Type, TrackingData>::dummyTrackData_ = 12345;
int Foam::FaceCellWave<Type, TrackingData>::dummyTrackData_ = 12345;
namespace Foam
{

View File

@ -240,7 +240,7 @@ class FaceCellWave
//- Used as default trackdata value to satisfy default template
// argument.
static label dummyTrackData_;
static int dummyTrackData_;
public:

View File

@ -30,7 +30,7 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
template <class Type, class TrackingData>
Foam::label Foam::MeshWave<Type, TrackingData>::dummyTrackData_ = 12345;
int Foam::MeshWave<Type, TrackingData>::dummyTrackData_ = 12345;
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

View File

@ -81,7 +81,7 @@ class MeshWave
//- Used as default trackdata value to satisfy default template
// argument.
static label dummyTrackData_;
static int dummyTrackData_;
public:

View File

@ -41,7 +41,7 @@ template <class Type, class TrackingData>
Foam::scalar Foam::PointEdgeWave<Type, TrackingData>::propagationTol_ = 0.01;
template <class Type, class TrackingData>
Foam::label Foam::PointEdgeWave<Type, TrackingData>::dummyTrackData_ = 12345;
int Foam::PointEdgeWave<Type, TrackingData>::dummyTrackData_ = 12345;
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //

View File

@ -96,7 +96,7 @@ class PointEdgeWave
//- Used as default trackdata value to satisfy default template
// argument.
static label dummyTrackData_;
static int dummyTrackData_;
// Private data

View File

@ -58,7 +58,7 @@ Foam::radiation::greyMeanAbsorptionEmission::greyMeanAbsorptionEmission
absorptionEmissionModel(dict, mesh),
coeffsDict_((dict.subDict(typeName + "Coeffs"))),
speciesNames_(0),
specieIndex_(0),
specieIndex_(label(0)),
lookUpTablePtr_(),
thermo_(mesh.lookupObject<basicThermo>("thermophysicalProperties")),
EhrrCoeff_(readScalar(coeffsDict_.lookup("EhrrCoeff"))),

View File

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