# Continuity equation in coupledFvMatrix

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

 June 8, 2010, 03:51 Continuity equation in coupledFvMatrix #1 Senior Member   BastiL Join Date: Mar 2009 Posts: 473 Rep Power: 11 HI all, I try to write a coupled solver that uses continuity equation. I tried to do it that way: Code: ``` coupledFvScalarMatrix coupledEqns(1); coupledEqns.set ( 0, new volScalarField ( fvc::div(phi) ) );``` Does not seem to work that way. Do I need to convert to fvScalarMatrix? How? Thanks. Regards Bastian

 June 9, 2010, 04:07 #2 Senior Member   Laurence R. McGlashan Join Date: Mar 2009 Posts: 370 Rep Power: 14 Just make it of type fvScalarMatrix: Code: ```coupledFvScalarMatrix coupledEqns(1); coupledEqns.set ( 0, new fvScalarMatrix ( fvm::ddt(rho) fvc::div(phi) ) );``` where phi = rho*U interpolated to the cell faces. You can't solve what you had previously because fvc::grad calculates the gradient explicitly; there is no variable to solve for! __________________ Laurence R. McGlashan :: Website

 June 9, 2010, 09:40 #3 Senior Member   BastiL Join Date: Mar 2009 Posts: 473 Rep Power: 11 Thanks Laurence, since my code is steady-state and incompressible I do not really need fvm::ddt(rho). So I tried: Code: ```coupledFvScalarMatrix coupledEqns(1); coupledEqns.set ( 0, new fvScalarMatrix ( fvc::div(phi) ) );``` This throws an error: Code: ```Making dependency list for source file coupledFoam.C SOURCE=coupledFoam.C ; g++ -m64 -Dlinux64 -DDP -DFOAM_DEV_REVISION_NUMBER=1716 -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-40 -I/opt/OpenFOAM/OpenFOAM-1.5-dev/src/finiteVolume/lnInclude -I/opt/OpenFOAM/OpenFOAM-1.5-dev/src/turbulenceModels/RAS -I/opt/OpenFOAM/OpenFOAM-1.5-dev/src/coupledMatrix/lnInclude -I/opt/OpenFOAM/OpenFOAM-1.5-dev/src/transportModels -IlnInclude -I. -I/opt/OpenFOAM/OpenFOAM-1.5-dev/src/OpenFOAM/lnInclude -I/opt/OpenFOAM/OpenFOAM-1.5-dev/src/OSspecific/Unix/lnInclude -fPIC -c \$SOURCE -o Make/linux64GccDPOpt/coupledFoam.o In file included from coupledFoam.C:65: coupledEqn.H: In function ‘int main(int, char**)’: coupledEqn.H:14: error: no matching function for call to ‘Foam::fvMatrix::fvMatrix(Foam::tmp >)’ /opt/OpenFOAM/OpenFOAM-1.5-dev/src/finiteVolume/lnInclude/fvMatrix.C:327: note: candidates are: Foam::fvMatrix::fvMatrix(Foam::GeometricField&, Foam::Istream&) [with Type = double] /opt/OpenFOAM/OpenFOAM-1.5-dev/src/finiteVolume/lnInclude/fvMatrix.C:266: note: Foam::fvMatrix::fvMatrix(const Foam::tmp >&) [with Type = double] /opt/OpenFOAM/OpenFOAM-1.5-dev/src/finiteVolume/lnInclude/fvMatrix.C:235: note: Foam::fvMatrix::fvMatrix(const Foam::fvMatrix&) [with Type = double] /opt/OpenFOAM/OpenFOAM-1.5-dev/src/finiteVolume/lnInclude/fvMatrix.C:188: note: Foam::fvMatrix::fvMatrix(Foam::GeometricField&, const Foam::dimensionSet&) [with Type = double] /opt/OpenFOAM/OpenFOAM-1.5-dev/src/finiteVolume/lnInclude/initContinuityErrs.H:38: warning: unused variable ‘cumulativeContErr’ make: *** [Make/linux64GccDPOpt/coupledFoam.o] Error 1``` I don't really understand why.

 June 9, 2010, 12:15 #4 Senior Member   Hrvoje Jasak Join Date: Mar 2009 Location: London, England Posts: 1,768 Rep Power: 21 Easy - you are trying to make a matrix and you are only giving it a field: fvc::div(phi). That has no matrix coefficients - how do you expect to solve the system of equations that says [0] * [x] = [b] Hrv __________________ Hrvoje Jasak Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk

June 9, 2010, 17:33
#5
Senior Member

BastiL
Join Date: Mar 2009
Posts: 473
Rep Power: 11
Quote:
 Originally Posted by hjasak That has no matrix coefficients - how do you expect to solve the system of equations that says [0] * [x] = [b]
Thanks Hrv,

that makes sence. I am not yet deep enough in it. So how is the correct formulation of the continuity equation?

 February 10, 2012, 08:40 #6 Member   Join Date: Jun 2011 Posts: 35 Rep Power: 6 Hello Mr. Jasak, This is interesting. Could you also explain this code (fvm::div(phi, U) == 0) in the matrix form, similar to what you have written before as [0] * [x] = [b] ? All the best

 February 10, 2012, 10:24 #7 Member   Join Date: Jun 2011 Posts: 35 Rep Power: 6 another question - how is this possible? divergence of a scalar? fvc::div(phi)

 October 13, 2014, 09:05 Hi #8 Senior Member   Join Date: Sep 2010 Location: France Posts: 194 Rep Power: 7 Hi, fvm: (div,phi) == 0 Briefly explaining, fvm: stands for implicit. A discretization in space is done first (via the FVM) and in time if necessary and all the coeffs. are placed in a matrix form [O], then the resultant of the discretization of the source terms are placed to the right hand side of the equation in a vector [S].where the unknowns are the velocity field vector components on the mesh. All above, are such that [O]*[U] = [S] which is solved to find [U] vector field components. For the scalar issue: you should see 4.4.5 in: http://www.openfoam.org/docs/user/fvSchemes.php Regards, T.D.

 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 xiuying OpenFOAM Running, Solving & CFD 8 August 27, 2013 15:33 lr103476 OpenFOAM Running, Solving & CFD 30 November 19, 2007 15:09 msrinath80 OpenFOAM Running, Solving & CFD 9 July 22, 2007 02:58 Rafal Main CFD Forum 4 November 29, 2006 10:27 liugx212 OpenFOAM Running, Solving & CFD 3 January 4, 2006 19:07

All times are GMT -4. The time now is 12:38.