View Issue Details

IDProjectCategoryView StatusLast Update
0003336OpenFOAMFeaturepublic2020-06-23 15:42
Reporterjoegi Assigned Towill  
PrioritynormalSeverityminorReproducibilityN/A
Status resolvedResolutionfixed 
Fixed in Versiondev 
Summary0003336: Purpose of residualControl in the pimple loop
DescriptionI am wondering what is the purpose of residualControl keyword in the PIMPLE loop?

I think outerCorrectorResidualControl should be the only one to specify, as residualControl does not have any influence.

Also, it might be helpful to add the option for a minimum number of iterations even if the tolerances are reached, just an idea.


Also, I would like to highlight a small typo, in the header of the file
src/finiteVolume/cfdTools/general/pressureControl/pressureControl.H

Should read,
Provides controls for the pressure reference IN closed-volume

Instead of,
Provides controls for the pressure reference IS closed-volume
TagsNo tags attached.

Relationships

has duplicate 0003513 resolvedwill pimpleFoam - residualControl does not have any effect when using the functionOnject scalarTransport 

Activities

will

2019-08-23 14:06

manager   ~0010690

See https://github.com/OpenFOAM/OpenFOAM-dev/commit/4c8122783aedaa7dadf0486163a98350e625db32

joegi

2019-08-23 14:21

reporter   ~0010691

Yes, but even setting residualControl to a large value does not have any effect in the convergence control in the PIMPLE loop

will

2019-08-23 14:37

manager   ~0010692

Last edited: 2019-08-23 15:24

Please give me an example which reproduces the issue

https://bugs.openfoam.org/rules.php "An issue report therefore must include the following: A clear set of instructions that reproduces the issue, including key files, if required"

joegi

2019-08-23 15:05

reporter   ~0010693

Run the case using pimpleFoam.

The case should stop almost immediately but it keeps iterating until the end time. For this case it seems that residualControl has no effect at all on the convergence control.

On the other hand, outerCorrectorResidualControl works as it should be.
cavity_single.tar.gz (3,984 bytes)

will

2019-08-23 15:21

manager   ~0010694

OK. pimpleFoam hasn't been updated to use the time-loop residual controls. I think the only solver that has is chtMultiRegionFoam. If I recall correctly, the inclusion of these controls into PIMPLE was designed to facilitate making PIMPLE offer the same functionality as SIMPLE so that extremely complex solvers could be combined. I guess only the solvers that actually were combined were considered necessary to update.

The change could be propagated to all PIMPLE solvers if need be; it's just a one-liner. It begs the question, though, why do you want to do simulation-level residual control on a pimpleFoam case, and why are you not running simpleFoam?

joegi

2019-08-23 15:51

reporter   ~0010695

I was porting a case from another version and I realized that the dictionaries changed, so I started to read the convergenceControl options.

For me it also does not make sense to have residualControl in the pimple loop. In any-case, it can be helpful as a monitor to determine if the solver has reached an steady state (but it is better to monitor an integral quantity).

Then, thinking about this, it might be helpful to add a control for the minimum number of iterations in outerCorrectorResidualControl, I know it might be redundant, but sometimes I use it (hardwired in the solver though).

will

2019-08-27 14:07

manager   ~0010703

Ok, well, for consistency's sake, I think it's reasonable to say that residual controls should function the same way in all PIMPLE solvers, regardless of whether there is a SIMPLE variant or not. I have made this the case with the following commit.

https://github.com/OpenFOAM/OpenFOAM-dev/commit/f53632854427b8afb8cf60f87829520ba76eea2d

The case you uploaded now exits as expected when the residuals reduce to the specified tolerance, so I consider this bug to have been resolved.

As for the issue of a minimum number of iterations in the corrector residual controls. Such a change is perfectly possible, though there are some questions regarding syntax and which iteration loops it applies to. If you are able to support such a change, either by means of funding its development or by contributing the code yourself, then please open a feature request.

Issue History

Date Modified Username Field Change
2019-08-23 11:45 joegi New Issue
2019-08-23 14:06 will Note Added: 0010690
2019-08-23 14:21 joegi Note Added: 0010691
2019-08-23 14:37 will Note Added: 0010692
2019-08-23 15:05 joegi File Added: cavity_single.tar.gz
2019-08-23 15:05 joegi Note Added: 0010693
2019-08-23 15:21 will Note Added: 0010694
2019-08-23 15:24 will Note Edited: 0010692
2019-08-23 15:51 joegi Note Added: 0010695
2019-08-27 14:07 will Assigned To => will
2019-08-27 14:07 will Status new => resolved
2019-08-27 14:07 will Resolution open => fixed
2019-08-27 14:07 will Fixed in Version => dev
2019-08-27 14:07 will Note Added: 0010703
2020-06-23 15:42 will Relationship added has duplicate 0003513