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/)
-   -   lowerPtr_ or upperPtr_ unallocated (https://www.cfd-online.com/Forums/openfoam-programming-development/88937-lowerptr_-upperptr_-unallocated.html)

catapult May 31, 2011 02:42

lowerPtr_ or upperPtr_ unallocated
 
Hi there,

I am trying to test solve a modified epsilon equation within the kEpsilon model. For the sake of simplicity I first consider the following:

---------------

volScalarField y_ = wallDist(mesh_).y();
volScalarField Ry_ = y_ * sqrt(k_) / nu();
scalar kappa_= 0.42;
scalar Cl_ = kappa_ / pow(Cmu_.value(),0.75);
scalar Aeps_ = 2*Cl_;
volScalarField Leps_ = Cl_ * y_ * (1 - exp( -Ry_ / Aeps_ ) );

dimensionedScalar dummyValue_
(
"dummyValue",
dimensionSet(0,0,-1,0,0,0,0),
1
);

tmp<fvScalarMatrix> epsEqn
(
fvm::ddt(epsilon_)
==
dummyValue_ * (pow(k_, 1.5)/Leps_ - epsilon_)
);

epsEqn().relax();
solve(epsEqn);
bound(epsilon_, epsilon0_);

-----------------

but when I try to solve it i get the message:
--> FOAM FATAL ERROR:
lowerPtr_ or upperPtr_ unallocated

From function lduMatrix::lower() const
in file matrices/lduMatrix/lduMatrix/lduMatrix.C at line 205.

FOAM aborting


Does anyone know where the problem lie ?

Thanks a lot in advance.

marupio May 31, 2011 11:38

I believe the problem is your use of tmp. Do you really need it? (Are you using it to reduce peak memory?) See here for a more detailed explanation:

http://openfoamwiki.net/index.php/OpenFOAM_guide/tmp

If you do need to use tmp, assign a reference to its enclosed object:

Code:

fvScalarMatrix& epsEqnRef = epsEqn();
Then use the reference for all operations on the matrix:

Code:

epsEqnRef.relax();
solve(epsEqnRef);
// etc...

[/CODE]

StefanoP May 21, 2014 13:01

Hi,
I am having the same problem. I would like to write down an equation for liquid volume fraction with a source term due to evaporation.

fvScalarMatrix alpha1Eqn
(
fvm::ddt(alpha1)
==
- Rate_alpha1_ees
);

When I try to run I have this error:
-> FOAM FATAL ERROR:
lowerPtr_ or upperPtr_ unallocated

From function lduMatrix::lower() const
in file matrices/lduMatrix/lduMatrix/lduMatrix.C at line 202.


Does anyone know where the problem lie ?

Thanks a lot in advance.

Tushar@cfd May 30, 2014 04:03

I don't know much about turbulence.

By looking at the error which you have mentioned in your post.

Quote:

From function lduMatrix::lower() const
in file matrices/lduMatrix/lduMatrix/lduMatrix.C at line 205.
When a user tries to use a faulty solver file, this error message is displayed.

Re-check your code somewhere something you might have missed out.

Best Luck!

hjasak May 31, 2014 06:03

This is an old bug in matrix classes: you only have the diag and matrix algebra croaks. I fixed it ~5 years ago. foam-extend, of course, works.

Hrv

wyldckat August 16, 2014 07:27

Greetings to all!

@Stefano:
Quote:

Originally Posted by StefanoP (Post 493407)
Code:

fvScalarMatrix alpha1Eqn
    (
        fvm::ddt(alpha1)
      ==
      - Rate_alpha1_ees
    );

When I try to run I have this error:
-> FOAM FATAL ERROR:
lowerPtr_ or upperPtr_ unallocated

    From function lduMatrix::lower() const
    in file matrices/lduMatrix/lduMatrix/lduMatrix.C at line 202.

Does anyone know where the problem lie ?

Unfortunately it's not enough information for me to try to reproduce the same error. If possible, provide more details so that I/we can confirm in which OpenFOAM versions this problem is present in.


@Hrvoje:
Quote:

Originally Posted by hjasak (Post 494951)
This is an old bug in matrix classes: you only have the diag and matrix algebra croaks. I fixed it ~5 years ago. foam-extend, of course, works.

I'm glad that OpenFOAM isn't as security critical as OpenSSL ;) Otherwise this should have been reported as a CVE: http://en.wikipedia.org/wiki/Common_..._and_Exposures

Best regards,
Bruno

Shoonya February 15, 2020 09:18

Quote:

Originally Posted by hjasak (Post 494951)
This is an old bug in matrix classes: you only have the diag and matrix algebra croaks. I fixed it ~5 years ago. foam-extend, of course, works.

Hrv

Thanks and therefore following format must be used:
Code:

solve
(
fvm::ddt(alpha1)
      ==
      - Rate_alpha1_ees
 );

instead of
Code:

fvScalarMatrix alpha1Eqn
    (
        fvm::ddt(alpha1)
      ==
      - Rate_alpha1_ees
    );
alpha1Eqn.solve();



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