CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (https://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   U_.mesh() and mesh. (https://www.cfd-online.com/Forums/openfoam-programming-development/123072-u_-mesh-mesh.html)

sharonyue September 3, 2013 23:28

U_.mesh() and mesh.
 
Hi guys,

Code:

alpha1_
    (
        IOobject
        (
            found("phases") ? word("alpha" + phase1Name_) : alpha1Name,
            U_.time().timeName(),
            U_.db(),
            IOobject::MUST_READ,
            IOobject::AUTO_WRITE
        ),
        U_.mesh()// mesh
    ),

In this piece of code, can I turn it into"mesh"? Whats the dfference between U_.mesh() and mesh?
Thanks in advance.

Lieven September 4, 2013 06:43

Hi Sharonyue,

From the looks of it, this seems like a part of a constructor of a class. So if there is a mesh-object passed as argument with the constructor, then you can change U_.mesh() by mesh. But there probably isn't. Just ask yourself the question, why would you pass both U and mesh as arguments, when U already has a reference to the same mesh object...

Cheers,

Lieven

Bernhard September 4, 2013 09:34

Where is your code snippet from? Is it a default OpenFOAM piece?

Anyhow, I would guess you are just passing around pointers here, so constructing this field one way or the other does not really make a difference.

jhoepken September 10, 2013 03:24

As Lieven stated, this is part of the initialization list of a constructor. Apparently the mesh itself is not registered in this class and not passed as a parameter, either. The volVectorField U_ is of generic type GeometricField<...> and stores a reference to the mesh as a private class attribute. It can be accessed by the public mesh() member function of GeometricField<...>.

In this class itself, it is very unlikely that you can substitute U_.mesh() with mesh. Why would you like to do this?


All times are GMT -4. The time now is 15:55.