CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Programming & Development (
-   -   Pasing VolScalarField pointer to solve(), is this possible? (

arkangel March 15, 2011 14:07

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

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


volScalarField *pT;
Time *pRT ;

//Function 1
void Init(){
    pT=new Foam::volScalarField
// This woks so far perfectly  i e: pT->internalField, pMesh->C(), etc

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

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 05:57.