View Issue Details

IDProjectCategoryView StatusLast Update
0000616OpenFOAMBugpublic2012-08-06 16:28
Reporterakidess Assigned Tohenry  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionno change required 
PlatformLinuxOSOtherOS Version(please specify)
Summary0000616: fvMatrix relaxation does not give expected behaviour
DescriptionI'd expect the results of "fvScalarMatrix.solve();" and "fvScalarMatrix.relax(1); fvScalarMatrix.solve();" to be exactly the same, as in section 4.5.2 of the user guide it is stated "0<a<=1 specifies the amount of under-relaxation, ranging from none at all for a=1".

However, if the relaxation is included the solution seems to diverge (in any case, the results differ from the solution without relax() ).
Steps To ReproduceCompile the attached solver, then blockMesh and run on the test case.
TagsNo tags attached.

Activities

akidess

2012-08-06 12:55

reporter   ~0001557

Accidental duplicate of #615

henry

2012-08-06 14:43

manager   ~0001558

fvScalarMatrix.relax(1) is not equivalent to no under-relaxation; it forces the matrix to be at least diagonally equal which is a necessary initial condition to apply an under-relaxation factor.

akidess

2012-08-06 15:33

reporter   ~0001559

Alright, well that explains the divergence for relax(1), since the resulting matrix will not be strictly diagonally dominant. However, I even get a divergent solution with relaxation factors a<<1, which should ensure diagonal dominance. The solution without relaxation is fine.

henry

2012-08-06 15:47

manager   ~0001560

Diagonal dominance should ensure that the particular matrix may be solved with the current solvers but does not guarantee anything with respect to overall convergence of the multi-equation non-linear system. The relaxation procedure currently requires the diagonal to be positive.

It is not clear that this report relates to a bug in OpenFOAM but is more likely to be a bug in the solver or the case you are working with.

akidess

2012-08-06 16:21

reporter   ~0001561

Excuse my persistence, but I think that's making things too easy. All I'm solving is a simple Laplace equation (see attached tar file), there is no inter-equation dependency, and the only thing hindering convergence to the proper solution is the relaxation itself.

akidess

2012-08-06 16:21

reporter  

relaxBugRep.tar (30,720 bytes)

henry

2012-08-06 16:28

manager   ~0001562

NOTE: The relaxation procedure currently requires the diagonal to be positive.

Issue History

Date Modified Username Field Change
2012-08-06 12:53 akidess New Issue
2012-08-06 12:55 akidess Note Added: 0001557
2012-08-06 14:43 henry Note Added: 0001558
2012-08-06 14:43 henry Status new => resolved
2012-08-06 14:43 henry Resolution open => no change required
2012-08-06 14:43 henry Assigned To => henry
2012-08-06 15:33 akidess Note Added: 0001559
2012-08-06 15:33 akidess Status resolved => feedback
2012-08-06 15:33 akidess Resolution no change required => reopened
2012-08-06 15:47 henry Note Added: 0001560
2012-08-06 15:47 henry Status feedback => closed
2012-08-06 15:47 henry Resolution reopened => fixed
2012-08-06 16:21 akidess Note Added: 0001561
2012-08-06 16:21 akidess Status closed => feedback
2012-08-06 16:21 akidess Resolution fixed => reopened
2012-08-06 16:21 akidess File Added: relaxBugRep.tar
2012-08-06 16:28 henry Note Added: 0001562
2012-08-06 16:28 henry Status feedback => closed
2012-08-06 16:28 henry Resolution reopened => no change required