|
[Sponsors] |
June 8, 2010, 04:51 |
Continuity equation in coupledFvMatrix
|
#1 |
Senior Member
BastiL
Join Date: Mar 2009
Posts: 530
Rep Power: 20 |
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) ) ); Regards Bastian |
|
June 9, 2010, 05:07 |
|
#2 |
Senior Member
Laurence R. McGlashan
Join Date: Mar 2009
Posts: 370
Rep Power: 23 |
Just make it of type fvScalarMatrix:
Code:
coupledFvScalarMatrix coupledEqns(1); coupledEqns.set ( 0, new fvScalarMatrix ( fvm::ddt(rho) fvc::div(phi) ) );
__________________
Laurence R. McGlashan :: Website |
|
June 9, 2010, 10:40 |
|
#3 |
Senior Member
BastiL
Join Date: Mar 2009
Posts: 530
Rep Power: 20 |
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) ) ); 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<double>::fvMatrix(Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> >)’ /opt/OpenFOAM/OpenFOAM-1.5-dev/src/finiteVolume/lnInclude/fvMatrix.C:327: note: candidates are: Foam::fvMatrix<Type>::fvMatrix(Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh>&, Foam::Istream&) [with Type = double] /opt/OpenFOAM/OpenFOAM-1.5-dev/src/finiteVolume/lnInclude/fvMatrix.C:266: note: Foam::fvMatrix<Type>::fvMatrix(const Foam::tmp<Foam::fvMatrix<Type> >&) [with Type = double] /opt/OpenFOAM/OpenFOAM-1.5-dev/src/finiteVolume/lnInclude/fvMatrix.C:235: note: Foam::fvMatrix<Type>::fvMatrix(const Foam::fvMatrix<Type>&) [with Type = double] /opt/OpenFOAM/OpenFOAM-1.5-dev/src/finiteVolume/lnInclude/fvMatrix.C:188: note: Foam::fvMatrix<Type>::fvMatrix(Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh>&, 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 |
|
June 9, 2010, 13:15 |
|
#4 |
Senior Member
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,907
Rep Power: 33 |
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, 18:33 |
|
#5 |
Senior Member
BastiL
Join Date: Mar 2009
Posts: 530
Rep Power: 20 |
||
February 10, 2012, 08:40 |
|
#6 |
Member
Join Date: Jun 2011
Posts: 42
Rep Power: 15 |
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: 42
Rep Power: 15 |
another question - how is this possible? divergence of a scalar?
fvc::div(phi) |
|
October 13, 2014, 10:05 |
Hi
|
#8 |
Senior Member
Join Date: Sep 2010
Posts: 226
Rep Power: 17 |
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. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to write k and epsilon before the abnormal end | xiuying | OpenFOAM Running, Solving & CFD | 8 | August 27, 2013 16:33 |
Convergence moving mesh | lr103476 | OpenFOAM Running, Solving & CFD | 30 | November 19, 2007 15:09 |
IcoFoam parallel woes | msrinath80 | OpenFOAM Running, Solving & CFD | 9 | July 22, 2007 03:58 |
continuity equation | Rafal | Main CFD Forum | 4 | November 29, 2006 10:27 |
Could anybody help me see this error and give help | liugx212 | OpenFOAM Running, Solving & CFD | 3 | January 4, 2006 19:07 |