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/)
-   -   conjugateHeatFoam + interFoam (https://www.cfd-online.com/Forums/openfoam-programming-development/99020-conjugateheatfoam-interfoam.html)

farhagim March 23, 2012 16:12

conjugateHeatFoam + interFoam
 
Hello Guys,

First I want to mention sth in this thread, This forum used to be more useful before, and Also the founder of OF used to be more responsible and helpful for the new users. I dont know why ?? If anybody know, let us know!!!:(

I posted one problem regarding the solver conjugateHeatFoam several weeks ago, But no body answered my question, Since I could not find the answer, I am gonna ask it again. ( I tried so many other way to simulate the case...no luck)

I am trying to create a solver based on conjugateHeatFoam. It is a transient solver for incompressible, laminar, two phase flow of non-isothermal, newtonian fluids with conjugate heat transfer. Here is my first first question:
1- Is it possible to couple the thermal conductivity instead of thermal diffusivity in conjugateHEatFoam???

my Energy equations for two phase and solid part are like this :
***********
{
// Decoupled patches
# include "attachPatches.H"

// Solid side
# include "readSolidControls.H"

volScalarField kappa = twoPhaseProperties.kappa();
surfaceScalarField kappaf = twoPhaseProperties.kappaf();

for (int nonOrth = 0; nonOrth <= nNonOrthCorr; nonOrth++)
{
coupledFvScalarMatrix TEqns(2);

// Add fluid equation
TEqns.set
(
0,
new fvScalarMatrix
(
fvm::ddt(rhoCp, T)
+ fvm::div(rhoPhiCp, T)
- fvm::laplacian(kappaf, T)

)
);

// Add solid equation
TEqns.set
(
1,
new fvScalarMatrix
(
fvm::ddt(rhoS*cpS, Tsolid)
- fvm::laplacian(kappaSolid, Tsolid)

)

);

TEqns.solve();
}

}
*****************
and I add this two in my createSolidField.H*****
kappa.correctBoundaryConditions();
kappaSolid.correctBoundaryConditions();

***************
Here is my B.Cs at the interface:
*********
type regionCoupling;
remoteField kappa;
value uniform 0.0257;
**************


And This is the Error when I run the solver on simple case:
*********
...
Selecting turbulence model type laminar
Reading field kappa

Reading field Tsolid

Reading solid thermal conductivity kappa



--> FOAM FATAL ERROR:
Attempt to cast type calculated to type regionCoupling

From function refCast<To>(From&)
in file /home/farhangi/OpenFOAM/OpenFOAM-1.6-ext/src/OpenFOAM/lnInclude/typeInfo.H at line 115.

FOAM aborting

Aborted

*******************
Thanks in advance for giving me comments,

Mehran

kwardle March 26, 2012 10:40

Unfortunately, I have little experience with conjugateHeatFoam myself and can offer only the small, and perhaps obvious, insight that it looks like a BC problem on your interface. Have you verified things are consistent in all your field files for the basic setup? Have you verified the setup works correctly with a standard solver before trying with your modified one?

I did want to comment on your first point.
Quote:

First I want to mention sth in this thread, This forum used to be more useful before, and Also the founder of OF used to be more responsible and helpful for the new users. I dont know why ?? If anybody know, let us know!!!
Perhaps this is part of your answer. The developers are in the business of developing the software. That requires money. The model they have chosen is to offer the code for free and provide support under paid contract. Personally, I find this a very nice business model. If you want to use the code and figure it out on your own or attempt to get help from the 'community' represented on this site, you are free to do so. And while you are also free to complain about not getting help (though some may find it annoying and choose not to respond), you are also free to contact OpenCFD (or others offering competing services) about a paid support contract. Only then are you entitled to harass for help.

As to your problem:
Quote:

I posted one problem regarding the solver conjugateHeatFoam several weeks ago, But no body answered my question, Since I could not find the answer, I am gonna ask it again.
Have you considered that you may not have asked the right question or you may not have provided ample information for someone to give a useful response? Take a look at the suggestions here.

Good luck solving your problem. I certainly understand that it can be frustrating to have the tools at your tips and not be able to use them fully because of some crazy errors that aren't clear. I am sure there is someone out there who can help you. You can either ask nicely or pay them (or both).
Regards,
Kent

DineshramBalaji December 15, 2012 05:05

Conjugate heat faom
 
Quote:

Originally Posted by farhagim (Post 351181)
Hello Guys,

First I want to mention sth in this thread, This forum used to be more useful before, and Also the founder of OF used to be more responsible and helpful for the new users. I dont know why ?? If anybody know, let us know!!!:(

I am trying to create a solver based on conjugateHeatFoam. It is a transient solver for incompressible, laminar, two phase flow of non-isothermal, newtonian fluids with conjugate heat transfer.
*******************
Thanks in advance for giving me comments,

Mehran


Hi ,

I am also trying to use conjugate heat foam. Since I am very new I thought of proceeding with tutorial. Do you have any tutorial by default or you are modifying an already existing case?

Tushar@cfd December 20, 2012 05:08

Hello farhagim,
 
it's seems your problem is in:
"
Reading solid thermal conductivity kappa

--> FOAM FATAL ERROR:
Attempt to cast type calculated to type regionCoupling

"

Do check again these files:
"
// Decoupled patches
# include "attachPatches.H"

// Solid side
# include "readSolidControls.H"
"


Do, let us know about the same.

__
Regards,
Tushar

styleworker September 12, 2013 10:04

I want to push this topic. Is there any progress in combining conjugate heat transfer and interFoam?

mecman September 25, 2013 02:33

Quote:

Originally Posted by styleworker (Post 451363)
I want to push this topic. Is there any progress in combining conjugate heat transfer and interFoam?

Hi styleworker
Do you found a way for combine conjugate heat transfer with interFoam?
i want simulate two phase flow with conjugate heat transfer....

styleworker September 25, 2013 03:18

I'm working on it. Right now I want to combine MRconjugateHeatFoam with interDyMFoam. It's actually quite easy to combine two-phase flow with conjugate heat transfer. I think the tricky part is the 3-phase contact line.

Please correct me, if I'm wrong. As far as I know, the coupling in chtMultiRegionFoam (OF-2.2.x) and MRconjugateHeatFoam is explicitly at the boundaries. Equations for fields are solved in each region seperately. For fields existing in both regions coupling is solved iteratively. In particular MRconjugateHeatFoam is using a mixed Neumann-Dirichlet-BC with a convergence criteria. I don't know how chtMRF does the coupling, because I haven't checked it. I guess there is no convergence criteria, because both boundaries are set to a constant temperature. conjugateHeatFoam (OF-1.6-ext) should have an implicit coupling between solid and fluid. Field equations of each region are assembled in a single "global" matrix.

check out this topics for more information:

General:
http://www.cfd-online.com/Forums/ope...rial-15-a.html

chtMultiRegionFoam:
http://www.cfd-online.com/Forums/ope...egionfoam.html
http://www.cfd-online.com/Forums/ope...n-problem.html
http://www.cfd-online.com/Forums/ope...implefoam.html

MRconjugateHeatFoam:
http://www.cfd-online.com/Forums/ope...eheatfoam.html

conjugateHeatFoam:
http://www.cfd-online.com/Forums/ope...d-1-6-ext.html

mecman September 25, 2013 04:27

Quote:

Originally Posted by styleworker (Post 453453)
I'm working on it. Right now I want to combine MRconjugateHeatFoam with interDyMFoam. It's actually quite easy to combine two-phase flow with conjugate heat transfer. I think the tricky part is the 3-phase contact line.

Please correct me, if I'm wrong. As far as I know, the coupling in chtMultiRegionFoam (OF-2.2.x) and MRconjugateHeatFoam is explicitly at the boundaries. Equations for fields are solved in each region seperately. For fields existing in both regions coupling is solved iteratively. In particular MRconjugateHeatFoam is using a mixed Neumann-Dirichlet-BC with a convergence criteria. I don't know how chtMRF does the coupling, because I haven't checked it. conjugateHeatFoam (OF-1.6-ext) should have an implicit coupling between solid and fluid. Field equations of each region are assembled in a single "global" matrix.

check out this topics for more information:

General:
http://www.cfd-online.com/Forums/ope...rial-15-a.html

chtMultiRegionFoam:
http://www.cfd-online.com/Forums/ope...egionfoam.html
http://www.cfd-online.com/Forums/ope...n-problem.html
http://www.cfd-online.com/Forums/ope...implefoam.html

MRconjugateHeatFoam:
http://www.cfd-online.com/Forums/ope...eheatfoam.html

conjugateHeatFoam:
http://www.cfd-online.com/Forums/ope...d-1-6-ext.html

thank you For Reply
I dont know which way is better?I use interFoam solver for simulate evaporation model.(incompressible fluid) and modify that.but for my case,I should implemented conjugate heat transfer.and now,i dont know, i should add solid region in my solver or use chtMultiRegionFOAM as base and modify Fluid dictionary for two fluid with evaporation.
can you guide me?
Regards,

styleworker September 25, 2013 04:44

Check out the source code of chtMultiRegionFoam. You have to replace the fluid solving part.

Nazanin December 29, 2013 02:52

Hello every body
I want simulate conjugate heat transfer with interFoam solver.any body can help me,how start to modify interFoam solver for this problem,or any body can provide his solver for me??
Regards,

donQi May 19, 2014 04:41

Hello,

I was trying as styleworker suggested to replace the fluid solver part, more precisely to merge the createFields.H of compressibleInterFoam with the createFluidsFields.H of chtMultiRegionFoam.
for more details see here: https://github.com/donQi/interChtMultiRegionFoam
I am not an expert programmer so I just did same basic modifications like adding lines from createFields.H into createFluidsFields
Code:

    twoPhaseMixtureThermo twoPhaseProperties(fluidRegions[i]);
    volScalarField& alpha1(twoPhaseProperties.alpha1());
    volScalarField& alpha2(twoPhaseProperties.alpha2());

and subtituting "mesh" with "fluidRegions[i]"

The compiling gives no error but when I launch the analysis I get an hanging pointer error (see below).
I am a bit messy and I am aware that I should study C++ a little more, meanwhile if you notice some trivial error or have some advice to give me it will be more than welcome.

Code:

Create fluid mesh for region bottomWater for time = 0

Create fluid mesh for region topAir for time = 0

Create solid mesh for region heater for time = 0

Create solid mesh for region leftSolid for time = 0

Create solid mesh for region rightSolid for time = 0

*** Reading fluid mesh thermophysical properties for region bottomWater

    Adding to thermoFluid

Selecting thermodynamics package
{
    type            heRhoThermo;
    mixture        pureMixture;
    transport      const;
    thermo          hConst;
    equationOfState rhoConst;
    specie          specie;
    energy          sensibleEnthalpy;
}

    Adding to UFluid

    Adding to phiFluid



--> FOAM FATAL ERROR:
hanging pointer of type N4Foam14GeometricFieldIdNS_12fvPatchFieldENS_7volMeshEEE at index 0 (size 2), cannot dereference

    From function PtrList::operator[]
    in file /opt/OpenFOAM-2.3.0/src/OpenFOAM/lnInclude/PtrListI.H at line 177.


PonchO August 14, 2014 08:18

Hello to everyone,

currently, i have a similar "hanging pointer"-error by introducing a PointerList of a singlePhaseTransportModel in the createFluidFields.H file of the chtMultiRegionFoam solver.

donQi, did you solved your problem and can you give me some hints?

Best regards.

przesmak October 30, 2014 08:32

Hey donQi, PonchO,

I have exactly the same problem, when I trying to connect interFoam together with chtMultiRegionFoam.
Did you found the solution ?

I will be appreciate for some help.

Best,
PS

PonchO October 30, 2014 09:23

Hi przesmak,

i don't found a solution up to now. The solver development is temporarily laid ad acta. But in the near future i have do pursue the work on this solver. Maybe i find time for this at the beginning of next year.

If you both found a solution, then feel free to post it ;-).

Best regards and good speed.

Christoph

przesmak November 18, 2014 04:07

Hi,

I think, I found the solution.

Propabbly the biggest problem is to compile two different approach of the fluid flow (compressible in chtMultiRegion, and incompressible in interFoam). In my case I don't need to use a compressibility model, so I canceled the part of the solver related to compressibility in createFluidFields.H -> density in phiFluid.

Code:

Info<< "    Adding to phiFluid\n" << endl;
        phiFluid.set
        (
            i,
            new surfaceScalarField
            (
                IOobject
                (
                    "phi",
                    runTime.timeName(),
                    fluidRegions[i],
                    IOobject::READ_IF_PRESENT,
                    IOobject::AUTO_WRITE
                ),
              linearInterpolate(UFluid[i]) // delated rhoFluid[i]*
              & fluidRegions[i].Sf()
            )
        );

I hope this help.

Best regards,

przesmak

elham usefi July 19, 2016 07:55

Hi everybody.
I want to create a ChtMultiRegion solver for incompressible fluids...(cuz I'm gonna add the concentration equation to my solver) and I get similar error

Code:

Create time

Create fluid mesh for region bottomWater for time = 0

Create fluid mesh for region topAir for time = 0

Create solid mesh for region heater for time = 0

Create solid mesh for region leftSolid for time = 0

Create solid mesh for region rightSolid for time = 0

*** Reading fluid mesh thermophysical properties for region bottomWater

Reading transportProperties bottomWater

    Adding to UFluid

    Adding to CFluid

    Adding to rhoFluid

    Adding to RhoPhiiFluid

    Adding to TFluid

    Adding to cpFluid

    Adding to rhoCpFluid

    Adding to RhoPhiCpFluid

    Adding to k_nFluid

    Adding to muFluid

    Adding to betaFluid

    Adding to gFluid

    Adding to rhokFluid

    Adding to ghFluid

    Adding to ghfFluid

    Adding to pFluid

    Adding fvOptions

No finite volume options present

*** Reading fluid mesh thermophysical properties for region topAir

Reading transportProperties topAir

    Adding to UFluid

    Adding to CFluid

    Adding to rhoFluid

    Adding to RhoPhiiFluid

    Adding to TFluid

    Adding to cpFluid

    Adding to rhoCpFluid

    Adding to RhoPhiCpFluid

    Adding to k_nFluid

    Adding to muFluid

    Adding to betaFluid

    Adding to gFluid

    Adding to rhokFluid

    Adding to ghFluid

    Adding to ghfFluid

    Adding to pFluid

    Adding fvOptions

No finite volume options present

*** Reading solid mesh thermophysical properties for region heater

    Adding to thermos

Selecting thermodynamics package
{
    type            heSolidThermo;
    mixture        pureMixture;
    transport      constIso;
    thermo          hConst;
    equationOfState rhoConst;
    specie          specie;
    energy          sensibleEnthalpy;
}

    Adding fvOptions

No finite volume options present

*** Reading solid mesh thermophysical properties for region leftSolid

    Adding to thermos

Selecting thermodynamics package
{
    type            heSolidThermo;
    mixture        pureMixture;
    transport      constIso;
    thermo          hConst;
    equationOfState rhoConst;
    specie          specie;
    energy          sensibleEnthalpy;
}

    Adding fvOptions

No finite volume options present

*** Reading solid mesh thermophysical properties for region rightSolid

    Adding to thermos

Selecting thermodynamics package
{
    type            heSolidThermo;
    mixture        pureMixture;
    transport      constIso;
    thermo          hConst;
    equationOfState rhoConst;
    specie          specie;
    energy          sensibleEnthalpy;
}

    Adding fvOptions

No finite volume options present

Region: bottomWater Courant Number mean: 0.18178764 max: 0.87149531
Region: topAir Courant Number mean: 0.18222175 max: 0.87149531
Region: heater Diffusion Number mean: 2.7920228e-06 max: 3.3333334e-06
Region: leftSolid Diffusion Number mean: 2.7848101e-06 max: 3.3333334e-06
Region: rightSolid Diffusion Number mean: 2.7848101e-06 max: 3.3333334e-06
deltaT = 0.00068846816
Region: bottomWater Courant Number mean: 0.125155 max: 0.59999677
Region: topAir Courant Number mean: 0.12545388 max: 0.59999677
Region: heater Diffusion Number mean: 1.9222188e-06 max: 2.2948939e-06
Region: leftSolid Diffusion Number mean: 1.9172531e-06 max: 2.2948939e-06
Region: rightSolid Diffusion Number mean: 1.9172531e-06 max: 2.2948939e-06
deltaT = 0.00068846816
Time = 0.000688468


Solving for fluid region bottomWater


--> FOAM FATAL ERROR:
hanging pointer of type N4Foam14GeometricFieldIdNS_12fvPatchFieldENS_7volMeshEEE at index 0 (size 2), cannot dereference

    From function PtrList::operator[]
    in file /opt/openfoam240/src/OpenFOAM/lnInclude/PtrListI.H at line 177.

FOAM aborting

#0  Foam::error::printStack(Foam::Ostream&) at ??:?
#1  Foam::error::abort() at ??:?
#2  Foam::PtrList<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> >::operator[](int) at ??:?
#3  ? at ??:?
#4  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#5  ? at ??:?
Aborted (core dumped)
elham@elham-Inspiron-N5110:~/OpenFOAM/elham-2.4.0/run/u3$

and I have no idea what should I do:confused: have u achieved any progress with this error?:D
like przesmak said I have delete every compressible part I guess and my phi is like

Code:

        Info<< "    Adding to phiFluid\n" << endl;
        phiFluid.set
        (
            i,
            new surfaceScalarField
            (
                IOobject
                (
                    "phi",
                    runTime.timeName(),
                    fluidRegions[i],
                    IOobject::READ_IF_PRESENT,
                    IOobject::AUTO_WRITE
                ),
                linearInterpolate(rhoFluid[i]*UFluid[i]) & fluidRegions[i].Sf()
            )
        );



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