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/)
-   -   Pasing VolScalarField pointer to solve(), is this possible? (https://www.cfd-online.com/Forums/openfoam-programming-development/86144-pasing-volscalarfield-pointer-solve-possible.html)

arkangel March 15, 2011 13:07

Pasing VolScalarField pointer to solve(), is this possible?
 
Dear FOAMERS ,

I don't think this was asked before. I am using another pakage to link against the OpenFOAM lib , I decided that the best way would be to use a pointer to the fields. so far all seems to be working well but I think (i hope I am wrong) I reach a deadlock


Code:

volScalarField *pT;
Time *pRT ;

//Function 1
void Init(){
    pT=new Foam::volScalarField
    (
        IOobject
        (
            "T",
            pRT->timeName(),
            *pMesh
          ...
        ),
        *pMesh
    );
// This woks so far perfectly  i e: pT->internalField, pMesh->C(), etc
}


// Function 2
void solveEQ(){
  while (pRT->loop())
    {
      solve(
                fvm::laplacian(1.0, *pT)  //DOES NOT WORK
            );
      pRT->write();
      }
}

I tried with the LaplacianFoam and I got this:

finiteVolume/lnInclude/fvmLaplacian.C:185: error: in passing argument 2 of ‘Foam::tmp<Foam::fvMatrix<Type> > Foam::fvm::laplacian(const Foam::dimensioned<Type2>&, Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh>&) [with Type = double, GType = double]

So the Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh>& thinks that *pT is other type. In fact is volScalarField (or VolVectorField if i have to use vec filed)


Is there A way to force laplacian (or other operator) to accept my syntax

Thanks for you Help


All times are GMT -4. The time now is 12:55.