CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Installation (https://www.cfd-online.com/Forums/openfoam-installation/)
-   -   [foam-extend.org] Errror in wmake for metisDecomp and parmetisDecomp (https://www.cfd-online.com/Forums/openfoam-installation/236348-errror-wmake-metisdecomp-parmetisdecomp.html)

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.


All times are GMT -4. The time now is 18:03.