|
[Sponsors] |
continuing problem with chtMultiRegion case - need help |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
April 28, 2023, 15:22 |
continuing problem with chtMultiRegion case - need help
|
#1 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 289
Rep Power: 6 |
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 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. |
|
May 18, 2023, 14:38 |
chtMultiregion case sooo close (but I've said that before)
|
#2 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 289
Rep Power: 6 |
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 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". |
|
May 18, 2023, 15:05 |
more setup files
|
#3 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 289
Rep Power: 6 |
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; } } 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; } } 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); } } 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; } } 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; } } 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; } } |
|
May 19, 2023, 14:03 |
simpleFoam version that works
|
#4 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 289
Rep Power: 6 |
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 |
|
May 21, 2023, 13:26 |
Continuing to work it - Here is what I have been trying
|
#5 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 289
Rep Power: 6 |
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. |
|
May 22, 2023, 14:03 |
problem is most likely isolated
|
#6 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 289
Rep Power: 6 |
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.
|
|
May 23, 2023, 12:16 |
|
#7 |
Senior Member
Peter Hess
Join Date: Apr 2011
Location: Austria
Posts: 250
Rep Power: 17 |
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. |
|
May 23, 2023, 14:52 |
Thanks Peter
|
#8 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 289
Rep Power: 6 |
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 |
|
|
|
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 |