CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   chtmultiregionfoam case does not converge (https://www.cfd-online.com/Forums/openfoam-solving/255633-chtmultiregionfoam-case-does-not-converge.html)

boffin5 April 21, 2024 13:08

chtmultiregionfoam case does not converge
 
1 Attachment(s)
Although there are many posts of this kind of problem, they are all unique, and I hope that by posting my run log, someone can have an idea of what steps I might take to debug the problem.

My case consists of a flying body with a duct, in which is a radiator modeled as a porous zone. CheckMesh says that the body mesh is good, and the radiator itself is created by blockMeshDict. Most of the boundary conditions are shown at the bottom of this thread:
https://www.cfd-online.com/Forums/op...rocessing.html


It fails at time step 9 with this message "Energy temperature conversion failed to converge."

I will gladly supply any other information that might help interested individuals from aiding me with this.


Could use some help!

boffin5 April 23, 2024 13:19

My chtmultiregionfoam case runs! - incorrectly, but hey, it runs
 
1 Attachment(s)
But I need it to run properly. The attached powerpoint file shows images of slices through the domain which includes the aircraft fuselage and its ventral radiator, the latter being too small to see.


(btw, the fix for the previous failure to converge was to set the p_rgh value as 1e05. I previously had it as 0)


In the image, the U field looks okay, but the T field is obviously completely wrong, and the p field doesn't look right, in that I would expect the domain pressure to be constant, whereas it is higher at the inlet.

The worst one is for temperature, and here are the boundary conditions for fluid:
Code:

dimensions      [0 0 0 1 0 0 0];

internalField  uniform 282.214;

boundaryField
{
    #includeEtc "caseDicts/setConstraintTypes"
   
    frontier
    {
      //type            zeroGradient;
        type            slip;
    }
       
    inlet
    {
        type            fixedValue;
        value          uniform 282.214;
    }
   
    outlet
    {
        type            inletOutlet;
        inletValue      uniform 282.214;
        value          uniform 282.214;
    }
   
    fuselage
    {
        type            zeroGradient;
    }
   
    spinner
    {
        type            zeroGradient;
    }
   
    lips
    {
        type            zeroGradient;
    }
   
    fairing
    {
        type            zeroGradient;
    }
   
    flap
    {
        type            zeroGradient;
    }

    radiator-interface {
        type zeroGradient;
        }
    edges {
        type zeroGradient;
        }
    trailingedge {
        type zeroGradient;
        }
}

And for solid, which is the porous zone radiator:
Code:

dimensions      [0 0 0 1 0 0 0];

internalField  uniform 377.59;

boundaryField
{
    #includeEtc "caseDicts/setConstraintTypes"
   
    frontier
    {
        type            slip;
    }
       
    inlet
    {
        type            fixedValue;
        value          uniform 377.59;
    }
   
    outlet
    {
        type            inletOutlet;
        inletValue      uniform 377.59;
        value            uniform 377.59;   
    }
   
 
    rad_radinlet
    {
        type            fixedValue;
        value          $internalField;
    }
   
    rad_radoutlet
    {
        type            inletOutlet;
        inletValue      $internalField;
        value          $internalField;
    }

    rad_radfrontier
    {
        type            zeroGradient;
    } 
 
   
    "proc.*"
    {
        type processor;
    }
     
}

Let me say that when assigning BCs to the solid zone radiator, I have named the sides of the radiator as rad_inlet, rad_outlet and rad_frontier. Then to these patches, I have assigned the same BCs as for the general inlet, outlet and frontier of the boundary field. Does this make sense? I am thinking that the radiator is analogous to the boundary field domain, but I'm not sure. Obviously something is wrong, since the T field looks all whacky.


The p field is also suspect. Here are the BCs for fluid and then solid:
Code:

dimensions      [1 -1 -2 0 0 0 0];

internalField  uniform 90812;
 

boundaryField
{
    #includeEtc "caseDicts/setConstraintTypes"
   
    frontier
    {
        type            slip;
    }
     
    inlet
    {
        type            zeroGradient;
    }
   
    outlet
    {
        type            fixedValue;
        value          uniform 90812;
    }
   
    fuselage
    {
        type            zeroGradient;
    }
   
    spinner
    {
        type            zeroGradient;
    }
   
    lips
    {
        type            zeroGradient;
    }
   
    fairing
    {
        type            zeroGradient;
    }
   
    flap
    {
        type            zeroGradient;
    }
   
    radiator-interface {
        type            zeroGradient;
          }
    edges {
        type            zeroGradient;
          }
    trailingedge {
        type            zeroGradient;
        }
}

Code:

dimensions      [1 -1 -2 0 0 0 0];

internalField  uniform 90812;

boundaryField
{
    #includeEtc "caseDicts/setConstraintTypes"
   
    frontier
    {
        type            slip;
    }
       
    inlet
    {
        type            zeroGradient;
    }
   
    outlet
    {
        type            fixedValue;
        value          uniform 90812;
    }
     
   
    rad_radinlet
    {
        type            calculated;
        value          uniform 90812;
    }
   
    rad_radoutlet
    {
        type            calculated;
        value          uniform 90812;
    }

    rad_radfrontier
    {
        type            calculated;
        value          uniform 90812;
    }
     
    "proc.*"
    {
        type processor;
    }   
}

This case has been a long struggle for me, and I'm nearly there. But I could use some help to finally declare victory. If I can get some, I would be over the moon.

fnohpat April 23, 2024 14:13

Quote:

Originally Posted by boffin5 (Post 868038)
Although there are many posts of this kind of problem, they are all unique, and I hope that by posting my run log, someone can have an idea of what steps I might take to debug the problem.

My case consists of a flying body with a duct, in which is a radiator modeled as a porous zone. CheckMesh says that the body mesh is good, and the radiator itself is created by blockMeshDict. Most of the boundary conditions are shown at the bottom of this thread:
https://www.cfd-online.com/Forums/op...rocessing.html


It fails at time step 9 with this message "Energy temperature conversion failed to converge."

I will gladly supply any other information that might help interested individuals from aiding me with this.


Could use some help!

Hi Alan!

Have you tried with a Co less than 1?

boffin5 April 24, 2024 11:34

Hi fnohpat
 
It turns out that I was using the wrong internalField value for p_rgh.
Previously I had it at 0, but when I changed it to 1e05, the simulation ran to completion. Found it in another post in this great forum.


All times are GMT -4. The time now is 23:35.