CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (https://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   Adding non-static function to Foam::myPCG::solve? (https://www.cfd-online.com/Forums/openfoam-programming-development/191974-adding-non-static-function-foam-mypcg-solve.html)

klausb August 25, 2017 13:01

Adding non-static function to Foam::myPCG::solve?
 
Hello,

I get the following compile error:

myPCG.C: In member function ‘virtual Foam::solverPerformance Foam::myPCG::solve(Foam::scalarField&, const scalarField&, Foam::direction) const’:myPCG.C:171:33: error: invalid use of non-static member function ldu2ublas(matrix, ublas_matrix);

Code:

Foam::solverPerformance Foam::myPCG::solve
(
    scalarField& psi,
    const scalarField& source,
    const direction cmpt
) const
{

    // --- Setup class containing solver performance data
    solverPerformance solverPerf
    (
        lduMatrix::preconditioner::getName(controlDict_) + typeName,
        fieldName_
    );

    uint n = psi.size();

    boost::numeric::ublas::compressed_matrix<scalar> ublas_matrix(n,n);

    ldu2ublas(matrix, ublas_matrix);  // error: invalid use of non-static member function

...

ldu2ublas() is used to store the OpenFoam matrix which has LDU format in CSR format in a boost ublas compressed_matrix.

Where/How must I introduce the function so it can be used in the solve section in PCG.C?

Klaus


All times are GMT -4. The time now is 08:58.