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 17: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

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 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 06: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 06: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
"

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 03: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 09: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 10: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 05: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 15:51.