EternalSeekerX |
May 25, 2021 19:08 |
Errror in wmake for metisDecomp and parmetisDecomp
I finally figured out what the error was for parmetis and metis decomp not loading...
Here is the part of the log:
Code:
+ wmake libso metisDecomp
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file metisDecomp.C
SOURCE=metisDecomp.C ; g++-5 -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3 -DNoRepository -ftemplate-depth-200 -I/usr/include/metis-4 -I../decompositionMethods/lnInclude -I../scotchDecomp/lnInclude -IlnInclude -I. -I/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude -I/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linux64GccDPOpt/metisDecomp.o
metisDecomp.C: In member function ‘Foam::label Foam::metisDecomp::decompose(const Foam::List<int>&, const Foam::List<int>&, const scalarField&, Foam::List<int>&)’:
metisDecomp.C:72:5: error: ‘idx_t’ was not declared in this scope
idx_t options[METIS_NOPTIONS];
^
metisDecomp.C:73:29: error: ‘options’ was not declared in this scope
METIS_SetDefaultOptions(options);
^
metisDecomp.C:73:36: error: ‘METIS_SetDefaultOptions’ was not declared in this scope
METIS_SetDefaultOptions(options);
^
metisDecomp.C:77:11: error: ‘real_t’ was not declared in this scope
Field<real_t> processorWeights;
^
metisDecomp.C:77:17: error: template argument 1 is invalid
Field<real_t> processorWeights;
^
metisDecomp.C:145:36: error: ‘METIS_NOPTIONS’ was not declared in this scope
if (mOptions.size() != METIS_NOPTIONS)
^
metisDecomp.C:165:53: error: no matching function for call to ‘sum(int&)’
processorWeights /= sum(processorWeights);
^
In file included from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/Field.C:747:0,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/Field.H:369,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/labelField.H:39,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/primitiveFields.H:37,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/pointField.H:36,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/edge.H:40,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/edgeList.H:32,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/primitiveMesh.H:57,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/polyMesh.H:44,
from ../decompositionMethods/lnInclude/decompositionMethod.H:38,
from metisDecomp.H:38,
from metisDecomp.C:26:
/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/FieldFunctions.C:369:6: note: candidate: template<class Type> Type Foam::sum(const Foam::UList<T>&)
Type sum(const UList<Type>& f)
^
/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/FieldFunctions.C:369:6: note: template argument deduction/substitution failed:
metisDecomp.C:165:53: note: mismatched types ‘const Foam::UList<T>’ and ‘int’
processorWeights /= sum(processorWeights);
^
In file included from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/Field.C:747:0,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/Field.H:369,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/labelField.H:39,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/primitiveFields.H:37,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/pointField.H:36,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/edge.H:40,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/edgeList.H:32,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/primitiveMesh.H:57,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/polyMesh.H:44,
from ../decompositionMethods/lnInclude/decompositionMethod.H:38,
from metisDecomp.H:38,
from metisDecomp.C:26:
/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/FieldFunctions.C:383:26: note: candidate: template<class Type> Type Foam::sum(const Foam::tmp<Foam::Field<Type> >&)
TMP_UNARY_FUNCTION(Type, sum)
^
/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/FieldFunctions.C:327:12: note: in definition of macro ‘TMP_UNARY_FUNCTION’
ReturnType Func(const tmp<Field<Type> >& tf1) \
^
/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/FieldFunctions.C:383:26: note: template argument deduction/substitution failed:
TMP_UNARY_FUNCTION(Type, sum)
^
/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/FieldFunctions.C:327:12: note: in definition of macro ‘TMP_UNARY_FUNCTION’
ReturnType Func(const tmp<Field<Type> >& tf1) \
^
metisDecomp.C:165:53: note: mismatched types ‘const Foam::tmp<Foam::Field<Type> >’ and ‘int’
processorWeights /= sum(processorWeights);
^
metisDecomp.C:167:34: error: request for member ‘size’ in ‘processorWeights’, which is of non-class type ‘int’
if (processorWeights.size() != nProcessors_)
^
metisDecomp.C:171:41: error: request for member ‘size’ in ‘processorWeights’, which is of non-class type ‘int’
<< processorWeights.size()
^
metisDecomp.C:239:30: error: request for member ‘begin’ in ‘processorWeights’, which is of non-class type ‘int’
processorWeights.begin(),
^
metisDecomp.C:258:30: error: request for member ‘begin’ in ‘processorWeights’, which is of non-class type ‘int’
processorWeights.begin(),
^
make: *** [metisDecomp.dep:321: Make/linux64GccDPOpt/metisDecomp.o] Error 1
+ wmake libso parMetisDecomp
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file parMetisDecomp.C
SOURCE=parMetisDecomp.C ; g++-5 -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3 -DNoRepository -ftemplate-depth-200 -DOMPI_SKIP_MPICXX -pthread -I/usr/include/parmetis-3 -I../decompositionMethods/lnInclude -I../metisDecomp/lnInclude -I../scotchDecomp/lnInclude -IlnInclude -I. -I/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude -I/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linux64GccDPOpt/parMetisDecomp.o
parMetisDecomp.C: In member function ‘Foam::label Foam::parMetisDecomp::decompose(Foam::Field<int>&, Foam::Field<int>&, const pointField&, Foam::Field<int>&, Foam::Field<int>&, const Foam::List<int>&, Foam::List<int>&)’:
parMetisDecomp.C:104:11: error: ‘real_t’ was not declared in this scope
Field<real_t> xyz(3*cellCentres.size());
^
parMetisDecomp.C:104:17: error: template argument 1 is invalid
Field<real_t> xyz(3*cellCentres.size());
^
parMetisDecomp.C:109:20: error: invalid types ‘int[int]’ for array subscript
xyz[compI++] = float(cc.x());
^
parMetisDecomp.C:110:20: error: invalid types ‘int[int]’ for array subscript
xyz[compI++] = float(cc.y());
^
parMetisDecomp.C:111:20: error: invalid types ‘int[int]’ for array subscript
xyz[compI++] = float(cc.z());
^
parMetisDecomp.C:142:21: error: type/value mismatch at argument 1 in template parameter list for ‘template<class Type> class Foam::Field’
Field<real_t> prevXyz(fromPrevProc);
^
parMetisDecomp.C:142:21: note: expected a type, got ‘real_t’
parMetisDecomp.C:142:43: error: invalid user-defined conversion from ‘Foam::IPstream’ to ‘int’ [-fpermissive]
Field<real_t> prevXyz(fromPrevProc);
^
In file included from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/Ostream.H:39:0,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/OSstream.H:40,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/messageStream.H:220,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/error.H:51,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/HashTableI.H:26,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/HashTable.H:550,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/objectRegistry.H:38,
from /home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/polyMesh.H:43,
from ../decompositionMethods/lnInclude/decompositionMethod.H:38,
from parMetisDecomp.H:37,
from parMetisDecomp.C:26:
/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/IOstream.H:366:13: note: candidate is: Foam::IOstream::operator void*() const <near match>
operator void*() const
^
/home/si/.root/opt/OpenFOAM/foam/foam-extend-4.0/src/foam/lnInclude/IOstream.H:366:13: note: no known conversion from ‘void*’ to ‘int’
parMetisDecomp.C:161:29: error: no matching function for call to ‘Foam::parMetisDecomp::prepend(int&, int&)’
prepend(prevXyz, xyz);
^
In file included from parMetisDecomp.H:177:0,
from parMetisDecomp.C:26:
parMetisDecompTemplates.C:32:6: note: candidate: template<class Type> static void Foam::parMetisDecomp::prepend(const Foam::UList<T>&, Foam::List<T>&)
void Foam::parMetisDecomp::prepend
^
parMetisDecompTemplates.C:32:6: note: template argument deduction/substitution failed:
parMetisDecomp.C:161:29: note: mismatched types ‘const Foam::UList<T>’ and ‘int’
prepend(prevXyz, xyz);
^
parMetisDecomp.C:185:31: error: type/value mismatch at argument 1 in template parameter list for ‘template<class Type> class Foam::SubField’
<< SubField<real_t>(xyz, nDims*nCells, nDims*startCell)
^
parMetisDecomp.C:185:31: note: expected a type, got ‘real_t’
parMetisDecomp.C:214:13: error: request for member ‘setSize’ in ‘xyz’, which is of non-class type ‘int’
xyz.setSize(xyz.size()-nDims*nCells);
^
parMetisDecomp.C:214:25: error: request for member ‘size’ in ‘xyz’, which is of non-class type ‘int’
xyz.setSize(xyz.size()-nDims*nCells);
^
parMetisDecomp.C:270:17: error: type/value mismatch at argument 1 in template parameter list for ‘template<class Type> class Foam::Field’
Field<real_t> tpwgts(nCon*nProcessors_, 1./nProcessors_);
^
parMetisDecomp.C:270:17: note: expected a type, got ‘real_t’
parMetisDecomp.C:270:60: error: expression list treated as compound expression in initializer [-fpermissive]
Field<real_t> tpwgts(nCon*nProcessors_, 1./nProcessors_);
^
parMetisDecomp.C:270:30: warning: left operand of comma operator has no effect [-Wunused-value]
Field<real_t> tpwgts(nCon*nProcessors_, 1./nProcessors_);
^
parMetisDecomp.C:272:17: error: type/value mismatch at argument 1 in template parameter list for ‘template<class Type> class Foam::Field’
Field<real_t> ubvec(nCon, 1.02);
^
parMetisDecomp.C:272:17: note: expected a type, got ‘real_t’
parMetisDecomp.C:272:35: error: expression list treated as compound expression in initializer [-fpermissive]
Field<real_t> ubvec(nCon, 1.02);
^
parMetisDecomp.C:272:35: warning: left operand of comma operator has no effect [-Wunused-value]
parMetisDecomp.C:276:16: error: invalid types ‘int[int]’ for array subscript
ubvec[0] = 1;
^
parMetisDecomp.C:298:13: error: request for member ‘begin’ in ‘xyz’, which is of non-class type ‘int’
xyz.begin(),
^
parMetisDecomp.C:301:16: error: request for member ‘begin’ in ‘tpwgts’, which is of non-class type ‘int’
tpwgts.begin(),
^
parMetisDecomp.C:302:15: error: request for member ‘begin’ in ‘ubvec’, which is of non-class type ‘int’
ubvec.begin(),
^
make: *** [parMetisDecomp.dep:344: Make/linux64GccDPOpt/parMetisDecomp.o] Error 1
Anyone know why this is?
Edit: I fixed it by swtiching back to thirdparty metis and parmetis. However the decomposition still warns about not being able to load in parmetis/metis decomp so files. I really think this this just the issue with newer distros and foam extend 4.0.
|