CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Programming & Development

do_while loop for coupling two equations (convergence criteria?)

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   February 26, 2011, 12:32
Default do_while loop for coupling two equations (convergence criteria?)
  #1
New Member
 
Muhammad reza hassani
Join Date: Apr 2010
Posts: 29
Rep Power: 7
mhassani is on a distinguished road
hi
I have a question regarding coupling two scalar transport equations. the equations are coupled through their source term.

from the programmer's guide, source term can explicitly be added to the equation: solve(fvm::laplacian(phi) == f), f being a vol<type>Field.

I want to solve them sequentially and constructing a loop to reach to converge iteratively. in order to see the convergence, I have one problem, how I can save the previous iteration result and subtract them to see if it meets the convergence tolerance.
do{
solve(equation of C1, with a source term of C2)
solve (equation of C2, with a source term of C1)
error1=C1(n-1)-C1; //n-1 represent previous iteration results
error2=C2(n-1)-C2;//n-1 represent previous iteration results
}while(error1<0.001 && error2<0.001) //0.001 is the convergence tolerance
if you can help me, it means a lot. thanks in forward.
p.s. I have declare the errors as volScalarField and I don't know is it ok, and I have faced errors using declaration of this errors and using relational operators (>=). any suggestion?
mhassani is offline   Reply With Quote

Old   February 28, 2011, 08:56
Default
  #2
Senior Member
 
santiagomarquezd's Avatar
 
Santiago Marquez Damian
Join Date: Aug 2009
Location: Santa Fe, Santa Fe, Argentina
Posts: 418
Rep Power: 14
santiagomarquezd will become famous soon enough
Muhammad, error1 and error2 will be fields and comparing them with scalar is inappropriate, I think. May be you can take the average of error1 and errors absolute values in order to have only on scalar, then compare it with your error criterion.

volScalarField C1nminus1=C1;

solve(equation of C1, with a source term of C2)
error1=Foam::average(Foam::mag(C1nminus1-C1)); //n-1 represent previous iteration results

Or something like this.


Regards
__________________
Santiago MÁRQUEZ DAMIÁN, Ph.D.
Post-doctoral Fellow
Research Center for Computational Mechanics (CIMEC) - CONICET/FICH-UNL
T.E.: 54-342-4511594 Ext. 1005
Güemes 3450 - (3000) Santa Fe
Santa Fe - Argentina
http://www.cimec.org.ar
santiagomarquezd is offline   Reply With Quote

Old   February 28, 2011, 12:13
Default
  #3
Senior Member
 
akidess's Avatar
 
Anton Kidess
Join Date: May 2009
Location: Delft, Netherlands
Posts: 919
Rep Power: 17
akidess will become famous soon enough
Why not use the residual as done in simpleFoam? Something like:

Code:
    eqnResidual = solve
    (
        CEqn()
    ).initialResidual();

    maxResidual = max(eqnResidual, maxResidual);
Edit: Thinking about it a bit more this might just give r = Ax - b, which wouldn't really help you.

Last edited by akidess; February 28, 2011 at 12:17. Reason: Probably won't work after all, sorry
akidess is offline   Reply With Quote

Old   February 28, 2011, 12:35
Default
  #4
Senior Member
 
santiagomarquezd's Avatar
 
Santiago Marquez Damian
Join Date: Aug 2009
Location: Santa Fe, Santa Fe, Argentina
Posts: 418
Rep Power: 14
santiagomarquezd will become famous soon enough
Yes, I thought in the same thing, but it supposes you're judging convergence based on residuals. Which I can understand at all is the purpose of this loop, Is this a sort of outer loop in order to better couple the solution in each time-step?

Regards.
__________________
Santiago MÁRQUEZ DAMIÁN, Ph.D.
Post-doctoral Fellow
Research Center for Computational Mechanics (CIMEC) - CONICET/FICH-UNL
T.E.: 54-342-4511594 Ext. 1005
Güemes 3450 - (3000) Santa Fe
Santa Fe - Argentina
http://www.cimec.org.ar
santiagomarquezd is offline   Reply With Quote

Reply

Thread Tools
Display Modes

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 On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem with Gmsh nishant_hull Open Source Meshers: Gmsh, Netgen, CGNS, ... 18 April 22, 2015 08:43
What value shall I set for the Convergence criteria? steventay CFX 7 May 14, 2010 12:44
Convergence Criteria edwin FLUENT 1 February 14, 2008 20:24
NACA0012 geometry/design software needed Franny Main CFD Forum 13 July 7, 2007 15:57
convergence of Euler Equations with WENO Shyam Main CFD Forum 0 June 1, 2007 00:47


All times are GMT -4. The time now is 11:02.