1

(3 replies, posted in Installation Help)

Hi Mikael,
actually I was thinking about IML because I thought this would give a nice boost in performance smile
At the moment I have ~57000 equations. Since I already achieved a nice speedup by using direct solver (DSS) the performance issue isn't that import anymore but I will give it a try.
Is there a reason for low performance of PETSc when there are more than 50 thousand of equations?

Thanks, Alex

2

(3 replies, posted in Installation Help)

Hi,
I want to compile OOFEM 2.2 with IML++ library. I configured make by use of ccmake iwth the following options:

BUILD_TESTING                    ON                                                                               
 CKIT_DIR                                                                                                          
 CMAKE_BUILD_TYPE                 Release                                                                          
 CMAKE_INSTALL_PREFIX             /usr/local                                                                       
 DL_LIB                           /usr/lib64/libdl.so                                                              
 ELIXIR_DIR                                                                                                        
 HOST_NAME                        linux.site                                                                       
 IML_DIR                          /home/bernath/Programme/oofem-2.2                                                
 LAPACK_DIR                                                                                                        
 MPI_DIR                                                                                                           
 MY_PETSC_ARCH                                                                                                     
 MY_PETSC_DIR                                                                                                      
 SLEPC_DIR                                                                                                         
 SPOOLES_DIR                                                                                                       
 TINYXML2_DIR                                                                                                      
 USE_CEMHYD                       OFF                                                                              
 USE_DSS                          ON                                                                               
 USE_FM                           ON                                                                               
 USE_IML                          ON                                                                               
 USE_LAPACK                       OFF                                                                              
 USE_OOFEG                        OFF                                                                              
 USE_OPENMP                       OFF                                                                              
 USE_PARALLEL                     OFF                                                                              
 USE_PARMETIS                     OFF                                                                              
 USE_PETSC                        OFF                                                                              
 USE_PYTHON_BINDINGS              OFF                                                                              
 USE_SHARED_LIB                   OFF                                                                              
 USE_SLEPC                        OFF                                                                              
 USE_SM                           ON                                                                               
 USE_SPOOLES                      OFF                                                                              
 USE_STATIC_LIB                   OFF                                                                              
 USE_TM                           ON                                                                               
 USE_TRIANGLE                     OFF                                                                              
 USE_VTK                          OFF                                                                              
 VTK_DIR                                                                                                           
 X11_DIR                           

After generating the make files I start the compilation and when it reaches 42% it crashes. Actually this is the moment when it comes to compilation of the IML library. The error reads:

Scanning dependencies of target core
[ 40%] Building CXX object src/oofemlib/CMakeFiles/core.dir/iml/dyncomprow.C.o
[ 40%] Building CXX object src/oofemlib/CMakeFiles/core.dir/iml/dyncompcol.C.o
[ 40%] Building CXX object src/oofemlib/CMakeFiles/core.dir/iml/symcompcol.C.o
[ 40%] Building CXX object src/oofemlib/CMakeFiles/core.dir/iml/compcol.C.o
[ 41%] Building CXX object src/oofemlib/CMakeFiles/core.dir/iml/precond.C.o
[ 41%] Building CXX object src/oofemlib/CMakeFiles/core.dir/iml/voidprecond.C.o
[ 41%] Building CXX object src/oofemlib/CMakeFiles/core.dir/iml/icprecond.C.o
[ 41%] Building CXX object src/oofemlib/CMakeFiles/core.dir/iml/iluprecond.C.o
[ 42%] Building CXX object src/oofemlib/CMakeFiles/core.dir/iml/ilucomprowprecond.C.o
[ 42%] Building CXX object src/oofemlib/CMakeFiles/core.dir/iml/diagpre.C.o
[ 42%] Building CXX object src/oofemlib/CMakeFiles/core.dir/iml/imlsolver.C.o
In file included from /home/bernath/Programme/oofem-2.2/src/oofemlib/iml/imlsolver.C:56:0:
/home/bernath/Programme/oofem-2.2/iml/gmres.h: In instantiation of ‘int GMRES(const Operator&, Vector&, const Vector&, const Preconditioner&, Matrix&, int&, int&, Real&) [with Operator = oofem::SparseMtrx; Vector = oofem::FloatArray; Preconditioner = oofem::Preconditioner; Matrix = oofem::FloatMatrix; Real = double]’:
/home/bernath/Programme/oofem-2.2/src/oofemlib/iml/imlsolver.C:186:63:   required from here
/home/bernath/Programme/oofem-2.2/iml/gmres.h:90:9: error: ‘ApplyPlaneRotation’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In file included from /home/bernath/Programme/oofem-2.2/src/oofemlib/iml/imlsolver.C:56:0:
/home/bernath/Programme/oofem-2.2/iml/gmres.h:143:6: note: ‘template<class Real> void ApplyPlaneRotation(Real&, Real&, Real&, Real&)’ declared here, later in the translation unit
In file included from /home/bernath/Programme/oofem-2.2/src/oofemlib/iml/imlsolver.C:56:0:
/home/bernath/Programme/oofem-2.2/iml/gmres.h:92:7: error: ‘GeneratePlaneRotation’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In file included from /home/bernath/Programme/oofem-2.2/src/oofemlib/iml/imlsolver.C:56:0:
/home/bernath/Programme/oofem-2.2/iml/gmres.h:125:6: note: ‘template<class Real> void GeneratePlaneRotation(Real&, Real&, Real&, Real&)’ declared here, later in the translation unit
In file included from /home/bernath/Programme/oofem-2.2/src/oofemlib/iml/imlsolver.C:56:0:
/home/bernath/Programme/oofem-2.2/iml/gmres.h:93:7: error: ‘ApplyPlaneRotation’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In file included from /home/bernath/Programme/oofem-2.2/src/oofemlib/iml/imlsolver.C:56:0:
/home/bernath/Programme/oofem-2.2/iml/gmres.h:143:6: note: ‘template<class Real> void ApplyPlaneRotation(Real&, Real&, Real&, Real&)’ declared here, later in the translation unit
In file included from /home/bernath/Programme/oofem-2.2/src/oofemlib/iml/imlsolver.C:56:0:
/home/bernath/Programme/oofem-2.2/iml/gmres.h:94:7: error: ‘ApplyPlaneRotation’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In file included from /home/bernath/Programme/oofem-2.2/src/oofemlib/iml/imlsolver.C:56:0:
/home/bernath/Programme/oofem-2.2/iml/gmres.h:143:6: note: ‘template<class Real> void ApplyPlaneRotation(Real&, Real&, Real&, Real&)’ declared here, later in the translation unit
make[2]: *** [src/oofemlib/CMakeFiles/core.dir/iml/imlsolver.C.o] Fehler 1
make[1]: *** [src/oofemlib/CMakeFiles/core.dir/all] Fehler 2
make: *** [all] Fehler 2
bernath@linux:~/build/release> ccmake ~/Programme/oofem-2.2/

I looked up those two missing functions and I did find them in the corresponding header file. So what is the problem here?
I also downloaded the h-Files from the IML website and linked them in ccmake but that didn't change anything.

Thanks in advance!
Alex

Hey Mikael,
I don't have anything to with cement or hydration so in fact I can live with that wink

Thanks for your help!

Greetings from Germany, Alex

Hey Mikael,
thanks for the hint. It now passes all of the test besides two:

The following tests FAILED:
        112 - cemhyd01.in_test (Failed)
        113 - cemhyd02.in_test (Failed)

And the detailed output:

test 112
        Start 112: cemhyd01.in_test

112: Test command: /usr/bin/python "/home/bernath/build/debug/testhelper.py" "cemhyd01.in" "/home/bernath/Transfer/Bernath/OOFEM/oofem-2.2/tests//tm" "/home/bernath/build/debug/oofem" "s"
112: Test timeout computed to be: 1500
112: _______________________________________________________
112: Error: (/home/bernath/Transfer/Bernath/OOFEM/oofem-2.2/src/oofemlib/domain.C:597)
112: Domain :: instanciateYourself - Couldn't create material: cemhydmat
112: _______________________________________________________
112: stack trace:
112:   /home/bernath/build/debug/oofem : oofem::Logger::writeELogMsg(oofem::Logger::logLevelType, char const*, int, char const*, ...)+0x1c5
112:   /home/bernath/build/debug/oofem : oofem::Domain::instanciateYourself(oofem::DataReader*)+0xf90
112:   /home/bernath/build/debug/oofem : oofem::EngngModel::instanciateDomains(oofem::DataReader*)+0x44
112:   /home/bernath/build/debug/oofem : oofem::EngngModel::instanciateYourself(oofem::DataReader*, oofem::InputRecord*, char const*, char const*)+0x236
112:   /home/bernath/build/debug/oofem : oofem::InstanciateProblem(oofem::DataReader*, oofem::problemMode, int, oofem::EngngModel*, bool)+0x2d6
112:   /home/bernath/build/debug/oofem : main()+0x752
112:   /lib64/libc.so.6 : __libc_start_main()+0xf5
112:   /home/bernath/build/debug/oofem() [0x624439]
112: Total 1 error(s) and 0 warning(s) reported
112: oofem exit code 1
112: ____________________________________________________
112:            OOFEM - Finite Element Solver           
112:         Copyright (C) 1994-2013 Borek Patzak       
112: ____________________________________________________
112: Total number of solution steps     51
112: Executing: /home/bernath/build/debug/oofem -f cemhyd01.in -l 2
112/161 Test #112: cemhyd01.in_test .........................***Failed    0.03 sec
test 113
        Start 113: cemhyd02.in_test

113: Test command: /usr/bin/python "/home/bernath/build/debug/testhelper.py" "cemhyd02.in" "/home/bernath/Transfer/Bernath/OOFEM/oofem-2.2/tests//tm" "/home/bernath/build/debug/oofem" "s"
113: Test timeout computed to be: 1500
113: _______________________________________________________
113: Error: (/home/bernath/Transfer/Bernath/OOFEM/oofem-2.2/src/oofemlib/domain.C:597)
113: Domain :: instanciateYourself - Couldn't create material: cemhydmat
113: _______________________________________________________
113: stack trace:
113:   /home/bernath/build/debug/oofem : oofem::Logger::writeELogMsg(oofem::Logger::logLevelType, char const*, int, char const*, ...)+0x1c5
113:   /home/bernath/build/debug/oofem : oofem::Domain::instanciateYourself(oofem::DataReader*)+0xf90
113:   /home/bernath/build/debug/oofem : oofem::EngngModel::instanciateDomains(oofem::DataReader*)+0x44
113:   /home/bernath/build/debug/oofem : oofem::EngngModel::instanciateYourself(oofem::DataReader*, oofem::InputRecord*, char const*, char const*)+0x236
113:   /home/bernath/build/debug/oofem : oofem::InstanciateProblem(oofem::DataReader*, oofem::problemMode, int, oofem::EngngModel*, bool)+0x2d6
113:   /home/bernath/build/debug/oofem : main()+0x752
113:   /lib64/libc.so.6 : __libc_start_main()+0xf5
113:   /home/bernath/build/debug/oofem() [0x624439]
113: Total 1 error(s) and 0 warning(s) reported
113: oofem exit code 1
113: ____________________________________________________
113:            OOFEM - Finite Element Solver           
113:         Copyright (C) 1994-2013 Borek Patzak       
113: ____________________________________________________
113: Total number of solution steps     10
113: Executing: /home/bernath/build/debug/oofem -f cemhyd02.in -l 2
113/161 Test #113: cemhyd02.in_test .........................***Failed    0.03 sec

Is this a critical error?

Thanks, Alex

Hello,
I'm new to OOFEM and tried to compile version 2.2 on my OpenSUSE machine today. I followed the instructions in the readme-file that was included in the source archive. Everything went well until execution of ctest which states that all tests actually failed. What can I do? Which information do you need in order to help me?

When I run "ctest -V" I get the attached output.

Thank you for helping me!
Alex