Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#240 "degrees false" is not transferred to boundary file by blockMesh

new
nobody
None
normal
minor
always
none
Bug
foam-extend-3.1
other
2014-06-11
2014-06-11
Håkan Nilsson
No

The setting "degree false" for coordinateSystem definition in mixingPlane is not transferred from blockMeshDict to boundary file.
See tutorials/incompressible/MRFSimpleFoam/axialTurbine_mixingPlane
Run ./Allrun
"degree false is present in blockMeshDict, but not in boundary.

Discussion

  • Henrik Rusche
    Henrik Rusche
    2014-06-11

    Are you referring to the cyclicGgi patches, e.g. GVCYCLIC1?

     
  • Håkan Nilsson
    Håkan Nilsson
    2014-06-11

    No, in the mixingPlane definition

    Boundary:
    -----------------------------------
    ŒŒŒ RUOUTLET
    ŒŒŒ {
    ŒŒŒŒŒŒŒ typeŒŒŒŒŒŒŒŒŒŒŒ mixingPlane;
    ŒŒŒŒŒŒŒ nFacesŒŒŒŒŒŒŒŒŒ 100;
    ŒŒŒŒŒŒŒ startFaceŒŒŒŒŒŒ 12920;
    ŒŒŒŒŒŒŒ shadowPatchŒŒŒŒ DTINLET;
    ŒŒŒŒŒŒŒ zoneŒŒŒŒŒŒŒŒŒŒŒ RUOUTLETZone;
    ŒŒŒŒŒŒŒ coordinateSystem
    ŒŒŒŒŒŒŒ {
    ŒŒŒŒŒŒŒŒŒŒŒ typeŒŒŒŒŒŒŒŒŒŒŒ cylindrical;
    ŒŒŒŒŒŒŒŒŒŒŒ nameŒŒŒŒŒŒŒŒŒŒŒ mixingCS;
    ŒŒŒŒŒŒŒŒŒŒŒ originŒŒŒŒŒŒŒŒŒ (0 0 0);
    ŒŒŒŒŒŒŒŒŒŒŒ e1ŒŒŒŒŒŒŒŒŒŒŒŒŒ (1 0 0);
    ŒŒŒŒŒŒŒŒŒŒŒ e3ŒŒŒŒŒŒŒŒŒŒŒŒŒ (0 0 1);
    ŒŒŒŒŒŒŒ }
    ŒŒŒŒŒŒŒ ribbonPatch
    ŒŒŒŒŒŒŒ {
    ŒŒŒŒŒŒŒŒŒŒŒ sweepAxisŒŒŒŒŒŒ Theta;
    ŒŒŒŒŒŒŒŒŒŒŒ stackAxisŒŒŒŒŒŒ R;
    ŒŒŒŒŒŒŒŒŒŒŒ discretisationŒ bothPatches;
    ŒŒŒŒŒŒŒ }

    ŒŒŒ }
    -----------------------------------

    blockMeshDict:
    -----------------------------------
    ŒŒŒ RUINLET
    ŒŒŒ {
    ŒŒŒŒŒŒŒ typeŒŒŒŒŒŒŒŒŒŒŒ mixingPlane;
    ŒŒŒŒŒŒŒ shadowPatchŒŒŒŒ GVOUTLET;
    ŒŒŒŒŒŒŒ zoneŒŒŒŒŒŒŒŒŒŒŒ RUINLETZone;
    ŒŒŒŒŒŒŒ coordinateSystem
    ŒŒŒŒŒŒŒ {
    ŒŒŒŒŒŒŒŒŒŒŒ typeŒŒŒŒŒŒŒŒŒŒŒ cylindrical;
    ŒŒŒŒŒŒŒŒŒŒŒ nameŒŒŒŒŒŒŒŒŒŒŒ mixingCS;
    ŒŒŒŒŒŒŒŒŒŒŒ originŒŒŒŒŒŒŒŒŒ (0 0 0);
    ŒŒŒŒŒŒŒŒŒŒŒ axisŒŒŒŒŒŒŒŒŒŒŒ (0 0 1);
    ŒŒŒŒŒŒŒŒŒŒŒ directionŒŒŒŒŒŒ (1 0 0);
    ŒŒŒŒŒŒŒŒŒŒŒ degreesŒŒŒŒŒŒŒŒ false; //Use radians
    ŒŒŒŒŒŒŒŒŒŒŒ //Equivalent axis/direction definition:
    ŒŒŒŒŒŒŒŒŒŒŒ //e3ŒŒŒŒŒŒŒŒŒŒŒŒŒ (0 0 1);
    ŒŒŒŒŒŒŒŒŒŒŒ //e1ŒŒŒŒŒŒŒŒŒŒŒŒŒ (1 0 0);
    ŒŒŒŒŒŒŒ }
    ŒŒŒŒŒŒŒ ribbonPatch
    ŒŒŒŒŒŒŒ {
    ŒŒŒŒŒŒŒŒŒŒŒ sweepAxisŒŒŒŒŒŒ Theta;
    ŒŒŒŒŒŒŒŒŒŒŒ stackAxisŒŒŒŒŒŒ R;
    ŒŒŒŒŒŒŒŒŒŒŒ discretisationŒ bothPatches;
    ŒŒŒŒŒŒŒ }
    ŒŒŒŒŒŒŒ faces
    ŒŒŒŒŒŒŒ (
    ŒŒŒŒŒŒŒŒŒŒŒ (23 22 30 31)
    ŒŒŒŒŒŒŒ );
    ŒŒŒ }
    -----------------------------------

    You can see that the "degrees false" is not transferred. It was actually Hrv who wanted this in yesterday, when he was here.

     
  • Henrik Rusche
    Henrik Rusche
    2014-06-11

    Ok. The coordination seems to specified by unit vectors, not rotation. So want is the degrees switch used for. Just my 2 ct on the matter.

    I just talked to Hrv and he seems to remember ;-)

     
  • Håkan Nilsson
    Håkan Nilsson
    2014-06-11

    It seems like Hrv does not remember. He's losing it... ask him about the rotational direction of a Francis turbine!

    The coordinate system for the creation of the mixingPlane ribbons is in this case defined as cylindrical, and the origin/axis/direction defines that cylindrical coordinate system. The cylindrical coordinate systemn can also be defined using origin/e3/e1, which is what blockMesh reverts this to. No problem with that.

    The degrees keyword (boolean) is passed on to the cylindrical coordinate system constructor. It determines if the cylindrical coordinate system uses degrees (degrees=true) or radians (degrees=false). Hrv discussed that the accuracy of the weighting will be improved if the faces on the interface are more square (in the cylindrical system). 3.14m is much smaller than 180m (as I understand it, the weighting will assume that the mesh dimensions are [m] in all directions). Thus, the extent in the angular direction will be closer to that in the other two directions for most cases (unless you study a geometry that has a mixingPlane interface that is 200m large), and the accurace will be improved.

    As said, it was Hrv proposing that it should be used.

    And we checked that it has exactly this effect if you look at the angular extent of the ribbons in the VTK files. But at the moment you have to manually put it into the boundary file, since blockMesh does not pass it on.

     
  • Hrvoje Jasak
    Hrvoje Jasak
    2014-06-11

    I have looked at it and it is too complex for a hot fix.ΠPlease let's do this as a bug fix after the release.
    Virtual functions required; slight rewrite of I/O for coordinate systems.