|
[Sponsors] |
September 6, 2010, 08:44 |
For loops in OpenFoam
|
#1 |
Senior Member
Balkrishna Patankar
Join Date: Mar 2009
Location: Pune
Posts: 123
Rep Power: 17 |
I am generalising the twoPhase Euler Foam to handle n Phases . In the file pEqn.H I want to sum up the phase fraction of all the dispersed phases to get the dispersed phase . To do so I programmed the following :
Code:
PtrList<surfaceScalarField>alphaf(nPhases); //just an initialization surfaceScalarField af ; surfaceScalarField betaf = scalar(1) - af; forAll(alphaf,aPh) { alphaf.set(aPh,fvc::interpolate(phases[aPh].alpha())); af= af + alphaf[aPh]; } betaf = scalar(1) - af ; Code:
error: no matching function for call to ‘Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>::GeometricField()’ /home/ifmg/OpenFOAM/OpenFOAM-1.7.0/src/OpenFOAM/lnInclude/GeometricField.C:652: note: candidates are: Foam::GeometricField<Type, PatchField, GeoMesh>::GeometricField(const Foam::IOobject&, const Foam::GeometricField<Type, PatchField, GeoMesh>&, const Foam::wordList&) [with Type = double, PatchField = Foam::fvsPatchField, GeoMesh = Foam::surfaceMesh] |
|
September 6, 2010, 17:46 |
|
#2 |
Senior Member
David Gaden
Join Date: Apr 2009
Location: Winnipeg, Canada
Posts: 437
Rep Power: 22 |
The problem isn't the for loop, it's your PtrList .set command:
Code:
alphaf.set(aPh,fvc::interpolate(phases[aPh].alpha())); Code:
alphaf.set ( aPh, new surfaceScalarField ( IOobject ( // IOobject constructor parameters - you decide ), mesh, fvc::interpolate(phases[aPh].alpha()) ) ); |
|
September 7, 2010, 01:37 |
|
#3 |
Senior Member
Balkrishna Patankar
Join Date: Mar 2009
Location: Pune
Posts: 123
Rep Power: 17 |
The error wasnt for the alphaf.set line . It was for the "surfaceScalarField alphaf ; " line
|
|
September 7, 2010, 05:06 |
|
#4 |
Senior Member
Anton Kidess
Join Date: May 2009
Location: Germany
Posts: 1,377
Rep Power: 30 |
||
September 7, 2010, 12:54 |
|
#5 |
Super Moderator
Niklas Nordin
Join Date: Mar 2009
Location: Stockholm, Sweden
Posts: 693
Rep Power: 29 |
there is no default constructor for the surfaceScalarField.
it needs to know about its size, take any available surfaceScalarField available and use that. For instance phi and surfaceScalarField alphaf(phi.size()); |
|
September 7, 2010, 13:01 |
|
#6 |
Senior Member
Balkrishna Patankar
Join Date: Mar 2009
Location: Pune
Posts: 123
Rep Power: 17 |
Thanks evry1 .... my problem was solved ... i initialized af in createFields.H and that solved the problem as suggested by alberto here ...
Last edited by balkrishna; September 8, 2010 at 03:29. Reason: accurate reference |
|
Tags |
error, multiphase flow |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Superlinear speedup in OpenFOAM 13 | msrinath80 | OpenFOAM Running, Solving & CFD | 18 | March 3, 2015 06:36 |
Modified OpenFOAM Forum Structure and New Mailing-List | pete | Site News & Announcements | 0 | June 29, 2009 06:56 |
64bitrhel5 OF installation instructions | mirko | OpenFOAM Installation | 2 | August 12, 2008 19:07 |
Adventure of fisrst openfoam installation on Ubuntu 710 | jussi | OpenFOAM Installation | 0 | April 24, 2008 15:25 |
OpenFOAM Debian packaging current status problems and TODOs | oseen | OpenFOAM Installation | 9 | August 26, 2007 14:50 |