Menu

Can't get CG to work... no .error() value except "-" and thousands of pretended iterations

tario
2017-09-09
2017-09-13
  • tario

    tario - 2017-09-09

    Hello Karli,
    when I try to use cg, but the simulation crashes at step 1 (everything works fine with gmres and bicgstab). The setup is exactly the same as for bicgstab, actually a copy.

    noneexPBiCGStab:  Solving for Ux, Initial residual = 1, Final residual = 1.06215e-06, No Iterations 7
    noneexPBiCGStab:  Solving for Uz, Initial residual = 1, Final residual = 4.62635e-05, No Iterations 7
    noneexPCG:  Solving for p, Initial residual = 1, Final residual = -nan, No Iterations 32688
    noneexPCG:  Solving for p, Initial residual = 1, Final residual = -nan, No Iterations 32688
    
    --> FOAM FATAL IO ERROR:
    wrong token type - expected Scalar, found on line 0 the punctuation token '-'
    

    I get the error mesage instantly so there was no time for 32688 iterations and there's no .error() value computed. the .error() should appear as Final residual in the message above where -nan appears.

    Bicgstab works but for p, CG is usually much faster and the Foam CG works fine, I've also sorted out the problem with the p matrix, the right preconditioner does the trick.

    What can cause the problems with CG?

    T.

     
  • Karl Rupp

    Karl Rupp - 2017-09-13

    Hi,
    I have not seen such a behavior before. Can you run your code through valgrind (or similar) in order to check for memory corruption? Do you use a preconditioner (if so, which)?
    Best regards,
    Karli

     
  • tario

    tario - 2017-09-13

    valgrind output for: valgrind --tool=memcheck --leak-check=yes

    Time = 2
    
    ==12605== Invalid write of size 4
    ==12605==    at 0x12619E64: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14560200 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid read of size 4
    ==12605==    at 0x12619ED1: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14560200 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid write of size 4
    ==12605==    at 0x12619F1F: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14560200 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid read of size 4
    ==12605==    at 0x12619F92: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14560200 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid read of size 4
    ==12605==    at 0x12619F9E: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14560200 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid read of size 4
    ==12605==    at 0x12619FC0: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14560200 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid read of size 4
    ==12605==    at 0x12619FDA: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14560200 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Thread 8:
    ==12605== Invalid read of size 1
    ==12605==    at 0x1261CA44: viennacl::backend::cpu_ram::memory_create(unsigned long, void const*) [clone ._omp_fn.0] (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1285843D: ??? (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
    ==12605==    by 0xCA4E6B9: start_thread (pthread_create.c:333)
    ==12605==    by 0xA0463DC: clone (clone.S:109)
    ==12605==  Address 0x14560200 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1262C5E0: exFoam::exPBiCGStab_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12617738: Foam::exPBiCGStab::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x45DFD2: Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46BA59: Foam::fvMatrix<Foam::Vector<double> >::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x423D16: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    noneexPBiCGStab:  Solving for Ux, Initial residual = 1, Final residual = 7.17697e-09, No Iterations 10
    noneexPBiCGStab:  Solving for Uz, Initial residual = 1, Final residual = 6.80168e-10, No Iterations 11
    ==12605== Thread 1:
    ==12605== Invalid write of size 4
    ==12605==    at 0x12619E64: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14fe4b30 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid read of size 4
    ==12605==    at 0x12619ED1: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14fe4b30 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid write of size 4
    ==12605==    at 0x12619F1F: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14fe4b30 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid read of size 4
    ==12605==    at 0x12619F92: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14fe4b30 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid read of size 4
    ==12605==    at 0x12619F9E: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14fe4b30 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid read of size 4
    ==12605==    at 0x12619FC0: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14fe4b30 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Invalid read of size 4
    ==12605==    at 0x12619FDA: exFoam::ldu2csr(Foam::lduMatrix const&, unsigned int*, unsigned int*, double*) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261A183: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==  Address 0x14fe4b30 is 0 bytes after a block of size 163,200 alloc'd
    ==12605==    at 0x4C2FB55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x1261A16D: exFoam::csr2vcl(Foam::lduMatrix const&, viennacl::compressed_matrix<double, 1u>&) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x1261FDEA: exFoam::exPCG_solve_Foam(Foam::lduMatrix const&, Foam::Field<double>&, Foam::Field<double> const&, int, double, double, Foam::SolverPerformance<double>&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, double) (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x12615F52: Foam::exPCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const (in /home/user01/OpenFOAM/user01-5.0/platforms/linux64GccDPInt32Opt/lib/libexFoam.so)
    ==12605==    by 0x64E9BAA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x46CF23: Foam::fvMatrix<double>::solve() (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x42425C: main (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x9F8F6C8: __printf_fp_l (printf_fp.c:381)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x9F8F6E2: __printf_fp_l (printf_fp.c:395)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x9F89060: __mpn_extract_double (dbl2mpn.c:56)
    ==12605==    by 0x9F8F711: __printf_fp_l (printf_fp.c:411)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x9F8F786: __printf_fp_l (printf_fp.c:464)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x9F90168: __printf_fp_l (printf_fp.c:473)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Use of uninitialised value of size 8
    ==12605==    at 0x9F90F18: __printf_fp_l (printf_fp.c:481)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Use of uninitialised value of size 8
    ==12605==    at 0x9F87988: __mpn_lshift (lshift.S:59)
    ==12605==    by 0x9F90F1C: __printf_fp_l (printf_fp.c:481)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605== 
    ==12605== Use of uninitialised value of size 8
    ==12605==    at 0x9F8798B: __mpn_lshift (lshift.S:60)
    ==12605==    by 0x9F90F1C: __printf_fp_l (printf_fp.c:481)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x9F90F42: __printf_fp_l (printf_fp.c:486)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Use of uninitialised value of size 8
    ==12605==    at 0x9F90F54: __printf_fp_l (printf_fp.c:487)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x9F90198: __printf_fp_l (printf_fp.c:489)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x4C344FC: memset (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x9F901AE: __printf_fp_l (printf_fp.c:489)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605== 
    ==12605== Use of uninitialised value of size 8
    ==12605==    at 0x4C3453F: memset (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x9F901AE: __printf_fp_l (printf_fp.c:489)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x4C34545: memset (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x9F901AE: __printf_fp_l (printf_fp.c:489)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x9F90243: __printf_fp_l (printf_fp.c:498)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605==    by 0x46CCD0: Foam::fvMatrix<double>::solve(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x4C32B1D: __GI_memcpy (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x9F90203: __printf_fp_l (printf_fp.c:524)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1D6F: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97ADFC4: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x8CEEAFC: Foam::OSstream::write(double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x8C6C97C: Foam::operator<<(Foam::Ostream&, double) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so)
    ==12605==    by 0x43BFD5: Foam::SolverPerformance<double>::print(Foam::Ostream&) const (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/simpleFoam)
    ==12605==    by 0x64E9BFA: Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) (in /opt/openfoam5/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so)
    ==12605== 
    ==12605== Conditional jump or move depends on uninitialised value(s)
    ==12605==    at 0x4C32DDC: __GI_memcpy (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==12605==    by 0x9F90203: __printf_fp_l (printf_fp.c:524)
    ==12605==    by 0x9F8E0B8: vfprintf (vfprintf.c:1631)
    ==12605==    by 0x9FB5A48: vsnprintf (vsnprintf.c:114)
    ==12605==    by 0x9772F5B: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    ==12605==    by 0x97A1A56: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
    
     
  • Karl Rupp

    Karl Rupp - 2017-09-13

    Hi,

    you definitely need to fix the invalid read and writes. The uninitialized values reported should also be fixed, yet I don't think that they are the reason for the issues you observed with CG.

    Best regards,
    Karli

     
  • tario

    tario - 2017-09-13

    I managed to take the simulation over with cg and mixed precision cg for pressure after about 100 timesteps, when the residual plot showed a first trend. Both crash before that, they can't deal with the "fluctuations" of the residual of the first timessteps. Later, once it comes closer to the low residual level needed , a zigzag pattern between 0.002 and 0.01 develops and remains.

     
  • Karl Rupp

    Karl Rupp - 2017-09-13

    Are you sure that the system you hand over to CG is symmetric positive definite? Slow convergence all the way to stagnation may happen with CG, yes. The zigzag-pattern you describe is, however, unusual.

     
  • tario

    tario - 2017-09-14

    It's symmetric according to the documentation and the internal check and it's diagonally dominant... some people claim it's block-tridiagonal. I don't know how to analyse it to be sure.

    I used the Foam PCG solver to solve my reference case as it's the fastest option but it took a lot of fine tuning.

    Foam PCG details:
    Computation cost of Foam PCG

    Start-up:

    1 matrix-vector multiply
    1 parallel reduction
    

    Per iteration

    1 matrix-vector multiply
    3 parallel reductions
    + preconditioner - applied 1x
    

    My prefered preconditioner using Foam, is DIC (Simplified Diagonal-based Incomplete Cholesky preconditioner) which is rather stable.

    All the solvers are prone to a crash during the initial timesteps.

    For the other values like U or k or omega I use BiCGStab

    In Foam BiCGStab does:

    Computation cost of Foam BiCGStab

    Start-up

    1 matrix-vector multiply
    1 parallel reduction
    

    Per iteration

    2 matrix-vector multiplies
    6 parallel reductions
    + preconditioner - applied 2x
    

    Preconditioner is DILU (Simplified Diagonal-based Incomplete LU preconditioner)

    At the moment ViennaCL is slower which is to some extend due to the lower CPU utilization which is about 75% when using OpenMP vs. OpenMPI (Foam) and I didn't do any fine tuning yet.

    Looking at the information provided above, what general settings, preconditioners would you recommend?

     

Log in to post a comment.