CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   conjugateHeatFoam: Problems adding 3rd region (https://www.cfd-online.com/Forums/openfoam/74729-conjugateheatfoam-problems-adding-3rd-region.html)

benk April 7, 2010 09:48

conjugateHeatFoam: Problems adding 3rd region
 
Has anybody tried to modify the conjugateHeatFoam solver for 3 regions? My case will compile but at runtime I get a "floating point" error as soon as I try to add my third equation to the solver.

For testing purposes my problem is very basic, just a simple laplacian in 1D and I can solve this using the conjugateHeatFoam solver with 2 regions but I can't split this up into 3 regions.

The part of my code that doesn't seem to be working is when I add the third region:

Code:

        coupledFvScalarMatrix C1Eqns(3);

        // Add left equation
        C1Eqns.set
        (
            0,
            new fvScalarMatrix
            (
                fvm::laplacian(D1Left, c1Left)
            )
        );

        // Add middle equation
        C1Eqns.set
        (
            1,
            new fvScalarMatrix
            (
                fvm::laplacian(D1Middle, c1Middle)
            )
        );

        // Add right equation
        Info << "Check: Before third equation\n" << endl;
        C1Eqns.set
        (
            2,
            new fvScalarMatrix
            (
                fvm::laplacian(D1Right, c1Right)
            )
        );
        Info << "Check: After third equation\n" << endl;

        C1Eqns.solve();

This is the output that I get:

Code:

Create mesh for time = 0

Reading field c1 (left)

Reading field D1 (left)

Reading field c1 (middle)

Reading field D1 (middle)

Reading field c1 (right)

Reading field D1 (right)


Starting time loop

Check: Before third equation

Floating exception

So this implies that the solver is crashing when trying to add the third equation to the coupled matrix.

benk April 7, 2010 10:59

I was able to fix this. It was a problem with my mesh.

David_010 April 21, 2010 05:57

Hi Benk

What solver is that? I´m working with OpenFOAM-1.6 and I don´t have it. The only solver for conjugate heat transfer I have is chtMultiRegionFoam.
And, is it valid to work with liquids?

Thankyou very much

David

benk April 21, 2010 07:59

It's called the conjugateHeatFoam solver which is only in the -dev releases (I'm using 1.5-dev). Technologically, I think it's better than chtMultiRegionFoam since it puts all coupled equations into a single matrix (therefore 1 matrix inversion instead of, say, 3). It's also a bit easier to setup than chtMultiRegionFoam.

More info on it can be found here: http://www.cfd-online.com/Forums/ope...-openfoam.html

As far as it being able to handle liquids, you just have to add the appropriate PDEs.

David_010 April 21, 2010 12:24

Hi Benk

Thankyou very much for your answer. Sorry but I don´t have any knowledge of OpenFOAM programming. Is possible to run that solver in the 1.6 versión, or I have to install de -dev version? And when you say "add de PDEs" you mean that I have to rewrite the solver?

Thankyou very much again

David

benk April 21, 2010 12:46

Quote:

Is possible to run that solver in the 1.6 versión, or I have to install de -dev version?
Unfortunately, to use it you have to install 1.5-dev.

Quote:

And when you say "add de PDEs" you mean that I have to rewrite the solver?
I suppose, yes. You'd just have to modify the base conjuagteHeatFoam solver with whatever PDEs you want to solve.

As an asside, this is where I wish OpenFoam would be a bit more clear. I'm using the conjugateHeatFoam "solver" for things that are totally unrelated to heat transport, so why is it that the application mode and the solver have the same name? This solver should really be called something like "multi region coupled matrix solver" and the application that it was orginally intended for was conjugateHeatFoam. But only in very rare cases will there be a model that fits exactly your needs without you having to modify the equations.


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