CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

continuing problem with chtMultiRegion case - need help

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 28, 2023, 15:22
Default continuing problem with chtMultiRegion case - need help
  #1
Senior Member
 
Alan w
Join Date: Feb 2021
Posts: 284
Rep Power: 6
boffin5 is on a distinguished road
My chtMultiRegionFoam case involves a radiator in a fairing duct, hung beneath a fuselage. Recently, with a complicated fairing geometry, I nearly got it to run, but at time step 1, it locked up. So I embarked on a series of simplified cases to try to find the source of the problem. Attached are an image of the geometry for the first case, along with a slice. Also a zip file of the case.

For this simplified geometry case, I couldn't even get it to time step 1, rather it gave me the message "plane normal defined with zero length." In this version, there is an exact face-to-face interface between the radiator and the duct. Apparently, OpenFoam is having trouble with the mesh interface between the two regions. I found a promising option in this thread: mapFields error: Plane normal defined with zero length

So I tried the suggestion of changing fvOptions, such that cellVolumeWeight is now mapNearest. The result of this was that the simulation froze at this point in the solver:
Code:
Creating finite volume options from "constant/fvOptions"

Selecting finite volume options model type constantHeatTransfer
    source solidTofluid
- selecting iter region mapping
Creating mesh-to-mesh addressing for solid and fluid regions
    using mapNearest
My next attempt with simplified geometries was to shrink the duct such that there is a slight overlap between the duct and the edge of the radiator. But it made no difference.

All these options are with surfaces open at the inner side, since I use mirrorMesh to create closed surface. In the version related above, the fairing surface is open at the top edge, where it abuts the fuselage surface. Other options will be with the top edge of the fairing closed, and one with the fairing and fuselage being all one surface. But I need to get the first one to run (or actually any of them, in case only one is valid). But importantly, a similar case to the first version ran successfully as a simpleFoam case, with no radiator.

At this point, I can only posit 2 theories as to the problem:
1. Perhaps in fvSolution there are some tolerances in the solver that I can change. I could try this, but it would be like shooting in the dark. I need some guidance on this.
2. Or, there may be an OpenFoam function that I need to use to relate the 2 regions together. But I don't have knowledge of this, and haven't seen anything in tutorials.

As ever, there is a solution for this problem, but after months of struggle, I haven't been able to find it. I would truly appreciate help from any of the community members who are far smarter than me.
Attached Images
File Type: png SnapCrab_NoName_2023-4-28_9-17-27_No-00.png (50.5 KB, 14 views)
File Type: png SnapCrab_NoName_2023-4-28_9-15-23_No-00.png (9.2 KB, 12 views)
Attached Files
File Type: zip meredith-minbod-open.zip (101.1 KB, 0 views)
boffin5 is offline   Reply With Quote

Old   May 18, 2023, 14:38
Default chtMultiregion case sooo close (but I've said that before)
  #2
Senior Member
 
Alan w
Join Date: Feb 2021
Posts: 284
Rep Power: 6
boffin5 is on a distinguished road
As shown above, I ran some exploratory cases to try to debug my more complicated chtMultiRegion case. Here is what I found:

- the fairing needs to be closed at its interface with the fuselage; it should be able to run by itself
- mirrorMesh has too many problems, so mirror the meshes in salome and then import to OpenFoam

So with all fingers and toes crossed, I tried to run my complicated case with a radiator in a fairing, mounted below a fuselage. The radiator is modelled as a porous zone. This dropbox link leads to a zip file of the complete case.

https://www.dropbox.com/preview/drop...?role=personal

But alas, once again it failed, although all the meshing completed okay, with no grumpy outputs from checkMesh. This time the failure occurs with the "Maximum number of iterations exceeds 100" message, as shown in this snippet:
Code:
Region: fluid Courant Number mean: 178.11 max: 118700
Region: solid Courant Number mean: 0.298156 max: 0.58461
Time = 1


Solving for fluid region fluid
Porosity region porosityBlockage:
    selecting model: DarcyForchheimer
    creating porous zone: porosityBlockage:porous
DILUPBiCGStab:  Solving for Ux, Initial residual = 1, Final residual = 0.000196176, No Iterations 1
DILUPBiCGStab:  Solving for Uy, Initial residual = 1, Final residual = 0.0652272, No Iterations 1
DILUPBiCGStab:  Solving for Uz, Initial residual = 1, Final residual = 0.0803829, No Iterations 1
DILUPBiCGStab:  Solving for h, Initial residual = 0.999962, Final residual = 0.0829237, No Iterations 80
Min/max T:525.293 552.238
GAMG:  Solving for p_rgh, Initial residual = 1, Final residual = 0.00809922, No Iterations 14
time step continuity errors : sum local = 6.09856e-05, global = -1.76785e-06, cumulative = -1.76785e-06
DILUPBiCGStab:  Solving for epsilon, Initial residual = 0.998947, Final residual = 0.002741, No Iterations 1
DILUPBiCGStab:  Solving for k, Initial residual = 1, Final residual = 0.00669225, No Iterations 1

Solving for fluid region solid
DILUPBiCGStab:  Solving for Ux, Initial residual = 1, Final residual = 0.00846296, No Iterations 3
DILUPBiCGStab:  Solving for Uy, Initial residual = 1, Final residual = 0.0747972, No Iterations 2
DILUPBiCGStab:  Solving for Uz, Initial residual = 1, Final residual = 0.0236092, No Iterations 2
DILUPBiCGStab:  Solving for h, Initial residual = 1, Final residual = 0.0275729, No Iterations 7
Min/max T:595.036 623.15
GAMG:  Solving for p_rgh, Initial residual = 1, Final residual = 0.00362555, No Iterations 2
time step continuity errors : sum local = 1.23553, global = 4.8707e-09, cumulative = 4.8707e-09
ExecutionTime = 78.03 s  ClockTime = 110 s

Region: fluid Courant Number mean: 179.7 max: 154534
Region: solid Courant Number mean: 0.0962093 max: 0.324504
Time = 2


Solving for fluid region fluid
DILUPBiCGStab:  Solving for Ux, Initial residual = 0.167359, Final residual = 0.0100679, No Iterations 1
DILUPBiCGStab:  Solving for Uy, Initial residual = 0.404842, Final residual = 0.024182, No Iterations 1
DILUPBiCGStab:  Solving for Uz, Initial residual = 0.287536, Final residual = 0.0170774, No Iterations 1
DILUPBiCGStab:  Solving for h, Initial residual = 0.866984, Final residual = 0.0833955, No Iterations 12
          [5] iter          Test           e/h          Cv/p          Tnew
          [5] 0       551.192       -561819       1049.03       687.532
          [5] 1       687.532       -596615        1078.4       852.424
          [5] 2       852.424       -698628       1120.42       1102.18
          [5] 3       1102.18       -307524       1164.04       1006.59
          [5] 4       1006.59       -676568       1154.29       1229.91
          [5] 5       1229.91        382834       1150.65       533.232
          [5] 6       533.232       -556723       1045.73       665.128
          [5] 7       665.128       -589563       1073.09       824.265
          [5] 8       824.265       -675853       1113.18       1055.1

 [1] 10       942.153       -848592        1141.9        1309.9
          [1] 11        1309.9        681248       1119.35       318.331

    From function Foam::scalar Foam::species::thermo<Thermo, Type>::T(Foam::scalar, Foam::scalar, Foam::scalar, Foam::scalar (Foam::species::thermo<Thermo, Type>::*)(Foam::scalar, Foam::scalar) const, Foam::scalar (Foam::species::thermo<Thermo, Type>::*)(Foam::scalar, Foam::scalar) const, Foam::scalar (Foam::species::thermo<Thermo, Type>::*)(Foam::scalar) const, bool) const [with Thermo = Foam::hPolynomialThermo<Foam::icoPolynomial<Foam::specie> >; Type = Foam::sensibleEnthalpy; Foam::scalar = double; Foam::species::thermo<Thermo, Type> = Foam::species::thermo<Foam::hPolynomialThermo<Foam::icoPolynomial<Foam::specie> >, Foam::sensibleEnthalpy>]
    in file /home/boffin5/OpenFOAM/OpenFOAM-8/src/thermophysicalModels/specie/lnInclude/thermoI.H at line 70
    Energy -> temperature conversion failed to converge:
          [4] iter          Test           e/h          Cv/p          Tnew
          [4] 0       551.551        747599       1049.09       215.743
          [4] 1       215.743        106206       1001.23       504.487
Then I tried it with the fuselage removed, and again with the fairing removed. Both times it failed with the same error message, as shown in the attached log.run file. This leads me to believe that the problem is not with the mesh, but rather with the case setup. This setup worked with a previous template case, but apparently it doesn't work with this one. At this point, I am out of ideas, and help would sure be appreciated.

In addition to the dropbox link, I am attaching a number of the setup files. If more information is needed, please let me know, and I will respond before you can say "Foam Fatal Error".
Attached Files
File Type: txt fvOptions-for-fluid.txt (1.7 KB, 1 views)
File Type: txt log.run.txt (24.3 KB, 1 views)
File Type: txt fvSolution-in-system-fluid.txt (992 Bytes, 1 views)
File Type: txt fvSchemes-in-system-fluid.txt (1.1 KB, 1 views)
File Type: txt runp.txt (5.4 KB, 1 views)
boffin5 is offline   Reply With Quote

Old   May 18, 2023, 15:05
Default more setup files
  #3
Senior Member
 
Alan w
Join Date: Feb 2021
Posts: 284
Rep Power: 6
boffin5 is on a distinguished road
Here are some boundary condition files for my case:
fluid p:
Code:
dimensions      [1 -1 -2 0 0 0 0];

internalField   uniform 84559;

boundaryField
{
    #includeEtc "caseDicts/setConstraintTypes"
    
    frontier
    {
        type            slip;
    }
    
    ground
    {
        type            slip;
    }
          
    inlet
    {
        type            zeroGradient;
    }
    
    outlet
    {
        type            fixedValue;
        value           uniform 84559;
    }
    
    sym-fuselage
    {
        type             zeroGradient;
    }
    
    sym-fairing
    {
        type             zeroGradient;
    }
    
    fluid_to_solid
    {
        type             zeroGradient;
    }
    
}
fluid T:
Code:
dimensions      [0 0 0 1 0 0 0];

internalField   uniform 551.55;

boundaryField
{
    #includeEtc "caseDicts/setConstraintTypes"
    
    frontier
    {
        type            slip;
    }
    
    ground
    {
        type            slip;
    }
            
    inlet
    {
        type            fixedValue;
        value           uniform 551.55;
    }
    
    outlet
    {
        type            inletOutlet;
        inletValue      uniform 551.55;
        value           uniform 551.55;
    }
    
    sym-fuselage
    {
        type            zeroGradient;
    }
    
    sym-fairing
    {
        type            zeroGradient;
    } 
      
    fluid_to_solid
    {
        type            zeroGradient;
    }

}
fluid U:
Code:
dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (90 0 0);

boundaryField
{
    #includeEtc "caseDicts/setConstraintTypes"
    
    frontier
    {
        type            slip;
    }
    
    ground
    {
        type            slip;
    }
        
    inlet
    {
        type            fixedValue;
        value           uniform (90 0 0);
    }
    
    outlet
    {
        type            inletOutlet;
        inletValue      uniform (0 0 0);
        value           uniform (0 0 0);
    }
    
    sym-fuselage
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
      
    sym-fairing
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
       
    fluid_to_solid
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    
}
solid p:
Code:
dimensions      [1 -1 -2 0 0 0 0];

internalField   uniform 84559;

boundaryField
{
    #includeEtc "caseDicts/setConstraintTypes"
    
    frontier
    {
        type            slip;
    }
    
    ground
    {
        type            slip;
    }
            
    inlet
    {
        type            zeroGradient;
    }
    
    outlet
    {
        type            fixedValue;
        value           uniform 84559;
    }
    
    sym-fuselage
    {
        type            zeroGradient;
    }
    
    sym-fairing
    {
        type            zeroGradient;
    }
    
    rad_radinlet
    {
        type            zeroGradient;
    }
    
    rad_radoutlet
    {
        type            zeroGradient;
    }

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

    
}
solid T:
Code:
dimensions      [0 0 0 1 0 0 0];

internalField   uniform 623.15;

boundaryField
{
    #includeEtc "caseDicts/setConstraintTypes"
    
    frontier
    {
        type            slip;
    }
    
    ground
    {
        type            slip;
    }
            
    inlet
    {
        type            fixedValue;
        value           uniform 623.15;
    }
    
    outlet
    {
        type            inletOutlet;
        inletValue      uniform 623.15;
        value           uniform 623.15;
    }
    
    sym-fuselage
    {
        type            zeroGradient;
    }
    
    sym-fairing
    {
        type            zeroGradient;
    }
    
    rad_radinlet
    {
        type            fixedValue;
        value           $internalField;
    }
    
    rad_radoutlet
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }

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

      
}
solid U:
Code:
dimensions      [0 1 -1 0 0 0 0];

//internalField   uniform (10 0 0);
internalField   uniform (0.01 0 0);

boundaryField
{
    #includeEtc "caseDicts/setConstraintTypes"
    
    frontier
    {
        type            slip;
    }
    
    ground
    {
        type            slip;
    }
            
    inlet
    {
        type            fixedValue;
        value           $internalField;
    }
    
    outlet
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    
    sym-fuselage
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    
    sym-fairing
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    
    rad_radinlet
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    
    rad_radoutlet
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }

    rad_radfrontier
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
       
    solid_to_fluid
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    
    "proc.*"
    {
        type processor;
    }

}
Thanks in advance for any help! Even if there's no help!
boffin5 is offline   Reply With Quote

Old   May 19, 2023, 14:03
Default simpleFoam version that works
  #4
Senior Member
 
Alan w
Join Date: Feb 2021
Posts: 284
Rep Power: 6
boffin5 is on a distinguished road
For reference, I ran a version of the chtMultiRegion case as a simpleFoam simulation, without the radiator. It works fine, but the chtMultiRegion version continues to defy me.
Here is the link to the simpleFoam case:
https://www.dropbox.com/s/fd36xtkxp8...imple.zip?dl=0
boffin5 is offline   Reply With Quote

Old   May 21, 2023, 13:26
Default Continuing to work it - Here is what I have been trying
  #5
Senior Member
 
Alan w
Join Date: Feb 2021
Posts: 284
Rep Power: 6
boffin5 is on a distinguished road
Attached is the fvOptions file; in it, I changed the "fields (e)" to "fields (h)", based on feedback from an earlier case.

I also added some lines after "limitT" to define temperature limits.

Also attached is the controlDict file, in which I decreased the timestep to 0.01.

Even after these changes, it still fails, with the message: "Energy -> temperature conversion failed to converge" and then "Maximum number of iterations exceeded"

The run log and 'T' boundary condition files are also attached.

Since this case runs fine as a simpleFoam simulation without the solid radiator region, I think my mesh is okay.

Sigh.
Attached Files
File Type: txt controlDict.txt (3.9 KB, 1 views)
File Type: txt fvOptions.txt (2.1 KB, 0 views)
File Type: txt log.run.txt (39.1 KB, 1 views)
File Type: txt boundary-condition-T-for-solid.txt (2.0 KB, 0 views)
File Type: txt boundary-condition-T-for-fluid.txt (1.6 KB, 1 views)
boffin5 is offline   Reply With Quote

Old   May 22, 2023, 14:03
Default problem is most likely isolated
  #6
Senior Member
 
Alan w
Join Date: Feb 2021
Posts: 284
Rep Power: 6
boffin5 is on a distinguished road
Finally, I got my case to run (!) with the fuselage removed. Then, when I put it back, it failed again with the "max number of iterations message." So I conclude that I need to reloft the fuselage. When I set up the geometry, I spend a lot of time on the fairing, as it is complex, but not so much on the fuselage, as I figured the quality wasn't that important. Now, I am paying for that bit of laziness.
boffin5 is offline   Reply With Quote

Old   May 23, 2023, 12:16
Default
  #7
Senior Member
 
Peter Hess
Join Date: Apr 2011
Location: Austria
Posts: 250
Rep Power: 17
peterhess is on a distinguished road
Looking to line 255 in your log file man kan recognize that the region solid is defined as fluid by the way...
The courant number is very high, that why you need to reduce the deltaT size.
I usualy set the timestep on automatic and define a maxCo 1;
Like that the timestep will be adjusted automatically to hold the maxCo =1.
That helps especially on the start of the solution.
peterhess is offline   Reply With Quote

Old   May 23, 2023, 14:52
Default Thanks Peter
  #8
Senior Member
 
Alan w
Join Date: Feb 2021
Posts: 284
Rep Power: 6
boffin5 is on a distinguished road
Yes, I had concluded that I need to reduce the time step. Also, earlier you pointed out that my fuselage had a problem, and I have concluded exactly that. So I am now busy relofting it in Solidworks.

Thank you for your inputs, and please don't go away!

Alan w
boffin5 is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem with Conjugate Heat Transfer case in OpenFOAM 9 boffin5 OpenFOAM Running, Solving & CFD 2 June 15, 2022 06:20
cannot get chtMultiRegion case to work boffin5 OpenFOAM Running, Solving & CFD 11 May 16, 2022 16:28
Hoping for help with boundary conditions in chtMultiRegion case boffin5 OpenFOAM Running, Solving & CFD 4 April 29, 2022 03:26
successful time step for 2D problem failing for 3D case of same problem. mandman Main CFD Forum 6 March 10, 2015 20:01
[blockMesh] Problem with 0012 simple case Tetragramm OpenFOAM Meshing & Mesh Conversion 3 June 20, 2012 04:44


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