CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Bugs (http://www.cfd-online.com/Forums/openfoam-bugs/)
-   -   Error using fixedGradient patch (http://www.cfd-online.com/Forums/openfoam-bugs/92241-error-using-fixedgradient-patch.html)

sangoi87 September 7, 2011 10:32

Error using fixedGradient patch
 
Hi everyone,

I'm having troubles with a new solver. I built it without problems, and I ran it on a 2D mesh. For my program to work properly I have to use a fixedGradient patch. It gave me back this error:

*** glibc detected *** double free or corruption (out)

(followed by the usual memory map and backtrace...)

I tried to debug and I found that the error was generated by this instruction in fixedGradientfvPatchField.C:

Field<Type>::operator=
(
this->patchInternalField() + gradient_/this->patch().deltaCoeffs()
);

This command recall the following operator from Field.C (line 653), and generate a memory error.

// This is dodgy stuff, don't try it at home.
Field* fieldPtr = rhs.ptr();
List<Type>::transfer(*fieldPtr);
delete fieldPtr;

I'd like to implement the same command in an alternative way.
Does anyone know if there's a way to change this "dodgy stuff"?

Thanks to all,
Sandro.

sangoi87 September 8, 2011 11:14

fixedGradient error - update
 
Hi guys,

I've tried to solve my problem and I've discovered that the memory error is ought to this command in the List.C file (line 392):

delete[] this->v_;

The memory address at the end of the "**** glibc detected ****" message is the same pointed by this->v_.
I don't know why but deallocating this memory causes the solver to crash...

Any idea?

Thx


All times are GMT -4. The time now is 21:04.