The meanings of diag( ), source( ), psi( )

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

 March 16, 2011, 07:25 The meanings of diag( ), source( ), psi( ) #1 New Member   Xuan Cai Join Date: Mar 2011 Location: Karlsruhe, Germany Posts: 9 Rep Power: 7 I am using the solver"porousSimpleFoam" to run simulations on a domain including porous media. In the UEqn.H, the momentum equation is implemented as follows: // Construct the Momentum equation tmp UEqn ( fvm::div(phi, U) + turbulence->divDevReff(U) ); Then in the file: /src/finiteVolume/cfdTools/general/porousMedia/porousZone.C we have the following code: ================================================== ========== scalarField& Udiag = UEqn.diag(); vectorField& Usource = UEqn.source(); const vectorField& U = UEqn.psi(); ================================================== ========== Does anyone know the exact meanings of UEqn.diag(), UEqn.source(), UEqn.psi() in details, e.g. what do these functions return? Or could anyone give some hints about that? Thank you very much gooya_kabir likes this.

 March 16, 2011, 10:46 #2 New Member   Alton Luder III Join Date: Oct 2009 Location: Michigan Posts: 22 Rep Power: 9 See the source code documentation. Here is the list of all members of fvMatrix since diag() is inheirited http://foam.sourceforge.net/docs/cpp...ix-members.php

March 16, 2011, 13:08
#3
Senior Member

Santiago Marquez Damian
Join Date: Aug 2009
Location: Santa Fe, Santa Fe, Argentina
Posts: 430
Rep Power: 16
Hi,

Quote:
 Originally Posted by cfd_explorer ================================================== ========== scalarField& Udiag = UEqn.diag(); vectorField& Usource = UEqn.source(); const vectorField& U = UEqn.psi(); ================================================== ==========
UEqn.diag(); gives you the diagonal of system matrix, UEqn.source(); the source term (both without applying BC's) and UEqn.psi(); a reference to the unknown field. Remember that UEqn is the whole linear system not only the matrix.

Regards.
__________________
Santiago MÁRQUEZ DAMIÁN, Ph.D.
Research Scientist
Research Center for Computational Methods (CIMEC) - CONICET/UNL
Tel: 54-342-4511594 Int. 7032
Colectora Ruta Nac. 168 / Paraje El Pozo
(3000) Santa Fe - Argentina.
http://www.cimec.org.ar

March 17, 2011, 05:56
#4
New Member

Xuan Cai
Join Date: Mar 2011
Location: Karlsruhe, Germany
Posts: 9
Rep Power: 7
Quote:
 Originally Posted by santiagomarquezd Hi, UEqn.diag(); gives you the diagonal of system matrix, UEqn.source(); the source term (both without applying BC's) and UEqn.psi(); a reference to the unknown field. Remember that UEqn is the whole linear system not only the matrix. Regards.

Hi Santiago.

In the openfoamwiki, I learn that disretization of PDE leads to an algebraic equation in the following form:
AΨ = B

So does
UEqn.diag() mean the diagonal of A, UEqn.source() mean B and UEqn.psi() mean Ψ ?

September 19, 2013, 13:53
#5
Member

Hassan
Join Date: Oct 2012
Location: Iran
Posts: 63
Rep Power: 5
Quote:
 Originally Posted by cfd_explorer Hi Santiago. Thanks for your reply. In the openfoamwiki, I learn that disretization of PDE leads to an algebraic equation in the following form: AΨ = B So does UEqn.diag() mean the diagonal of A, UEqn.source() mean B and UEqn.psi() mean Ψ ?
Hi,
Please attention to this post. ?

Regards,
Hassan

June 17, 2015, 14:13
#6
Senior Member

Dongyue Li
Join Date: Jun 2012
Location: Torino, Italy
Posts: 742
Rep Power: 9
Quote:
 Originally Posted by cfd_explorer So does [/B]UEqn.diag() mean the diagonal of A, UEqn.source() mean B and UEqn.psi() mean Ψ ?
Not really, this is what Im thinking:

For example, if you are discritizing velocity, u will have an symmetry matrix. After discritization, u will have Ax = B, A will be symmetric, Then OpenFOAM will do:

[A.diag()+A.offdiag()] x = B;

A.diag() x = B - A.offdiag() x;

For symmetric matrix, A.diag() will be the diagonal of A, A.offdiag() x will be the source of A. That means if your matrix equation is like this:

A x = 0;

U also have an source() term.

__________________
Im the translator of OpenFOAM User Guide Chinese Edition! But always newbie on CFD.

http://dyfluid.com/en.html

 Thread Tools Display Modes Linear Mode

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

 Similar Threads Thread Thread Starter Forum Replies Last Post GGerber OpenFOAM Installation 54 April 24, 2015 16:02 Greg Givogue OpenFOAM Programming & Development 3 March 4, 2011 18:18 allenzhao OpenFOAM Installation 127 January 30, 2009 20:08 hjasak OpenFOAM Post-Processing 69 April 24, 2008 01:24 jens_klostermann OpenFOAM Bugs 11 June 28, 2007 17:51

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