CFD Online Logo CFD Online URL
Home > Forums > OpenFOAM Post-Processing

Accessing phi field for sampling plane

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

LinkBack Thread Tools Display Modes
Old   March 17, 2011, 14:01
Default Accessing phi field for sampling plane
New Member
Francesco Balduzzi
Join Date: Feb 2010
Posts: 4
Rep Power: 9
francesco85 is on a distinguished road
Hi all,

I'm trying to modify the "sampledPlane" function. I need to calculate the mean value of the sampled field by both an area-weighted average and a massflow-weighted average. In the first case everything works fine, while for calculating the mass flow I need to access to the "phi" field.

I've tried something like this:

const surfaceScalarField& phi=db().lookupObject<surfaceScalarField>("phi");

but I got the error:

sampledSurface/sampledPlane/sampledPlaneTemplates.C:52: error: there are no arguments to ‘db’ that depend on a template parameter, so a declaration of ‘db’ must be available

Then I tried to modify it as follows:

const surfaceScalarField& phi=vField().db().lookupObject<surfaceScalarField> ("phi");

and I got a different error:

sampledSurface/sampledPlane/sampledPlaneTemplates.C:52: error: expected primary-expression before ‘>’ token
sampledSurface/sampledPlane/sampledPlaneTemplates.C: In member function ‘Foam::tmp<Foam::Field<Type> > Foam::sampledPlane::sampleField(const Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh>&) const [with Type = double]’:

Which is the primary-expression needed for? Is it correct to call the db() function?
Any help would be appreciated!

francesco85 is offline   Reply With Quote

Old   August 5, 2011, 05:49
Cedric Van Holsbeke
Join Date: Dec 2009
Location: Belgium
Posts: 81
Rep Power: 9
CedricVH is on a distinguished road
The database is not needed when working on top level code (like a utility or a solver). However, in lower level code, one should access the database and fetch the phi object with:

const objectRegistry& db = mesh.db();
const surfaceScalarField& phi=db.lookupObject<surfaceScalarField>("phi");
Normally, it should also work without a database:

const surfaceScalarField& phi=mesh.lookupObject<surfaceScalarField>("phi");
CedricVH is offline   Reply With Quote


sampling lookupobject phi

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
read scalar field phi, get flux through faces peterwy OpenFOAM Programming & Development 5 April 28, 2017 19:40
Problem with Gmsh nishant_hull Open Source Meshers: Gmsh, Netgen, CGNS, ... 23 August 5, 2015 02:09
Moving mesh Niklas Wikstrom (Wikstrom) OpenFOAM Running, Solving & CFD 122 June 15, 2014 06:20
Problem with rhoSimpleFoam matteo_gautero OpenFOAM Running, Solving & CFD 0 February 28, 2008 07:51
Calculation of phi if velocity field is known ankgupta8um OpenFOAM Running, Solving & CFD 5 October 15, 2006 03:46

All times are GMT -4. The time now is 07:14.