how to create a volScalarField of mesh.V() ???
I use a volScalarField with the volume of cells.
It works with the cell center but not with cell volume.
- Why the following line works
volVectorField centres = Sj.mesh().C();
- Why the following line dosn't work
volScalarField volume= Sj.mesh().V();
Sj is a volVectorField defined as follow:
Did you ever get to fix this? I have the exact same problem.
I think that mesh.V() is a scalarField, not a volscalarField ..........
Looking at the doxygen documentation on the openfoam.com website, you can see that:
Did you try using:
This is due that a volScalarField does store values on the boundary, what does not make a lot of sense for cell volumes.
So just the internalField of a volScalarField does have cell volumes
So I personally would not try to cast this into a volScalarField! What will you do on the boundaries? If you initialize the volScalarField with zero than there will be zero at the boundaries too. What happens if you divide at a point by these values?
I would just work on the internalField
volScalarField myWhatEverField =mag(U);
scalarField volumes = mesh.V();
volScalarField result(IOobject(...),mesh, 0);
result.internalField() = myWahateverField.internalField/volumes;
Do whatever you need to do on the boundaries
|All times are GMT -4. The time now is 22:49.|