CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Bugs

steadyUniversalMRFFoam Tutorial fails in MixingPlane

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 14, 2019, 05:48
Exclamation steadyUniversalMRFFoam Tutorial fails in MixingPlane
  #1
Member
 
Henrik Johansson
Join Date: Oct 2017
Location: Gothenburg
Posts: 38
Rep Power: 9
HenrikJohansson is on a distinguished road
Hi,

I have ran into a problem regarding the mixingPlane function in foam-extend.
When running the steadyUniversalMRFFoam tutorial in parallel with ten times larger mesh in all axises it fails.
Works fine in serial thus I think the fault lie within the decomposition method used.
It fails when running the Initalization of the mixing plane or GGI.
I seem to get the error when I increase the radial element count above 80.
In this case I tried with 100 elements.

I have tried foam-extend 4.1 aswell as 4.0 and booth gives the same error.

I have attached the tutorial that gives me the error.

The error I get:
Code:
Create time

Create mesh for time = 0

mixingPlane patch Master: GVOUTLET Slave: RUINLET is local parallel
mixingPlane patch Master: RUINLET Slave: GVOUTLET is local parallel
mixingPlane patch Master: RUOUTLET Slave: DTINLET is local parallel
Initializing the GGI interpolator between master/shadow patches: RUCYCLIC1/RUCYCLIC2
mixingPlane patch Master: DTINLET Slave: RUOUTLET is local parallel
Initializing the GGI interpolator between master/shadow patches: DTCYCLIC1/DTCYCLIC2
[2] 
[2] 
[2] --> FOAM FATAL IO ERROR: 
[2] Expected a '(' or a '{' while reading List, found on line 0 an error
[2] 
[2] file: IOstream at line 0.
[2] 
[2]     From function Istream::readBeginList(const char*)
[2]     in file db/IOstreams/IOstreams/Istream.C at line 130.
[2] 
FOAM parallel run exiting
[2]
Using debuggin function of the mixingPlane I can see that the code stops after this instance during the initilazation of the mixingPlane.

Code:
From function MixingPlaneInterpolation<MasterPatch, SlavePatch>::calcMixingPlanePatch() const
in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/MixingPlaneInterpolationPatches.C at line 333
minSpan from patch BB : -5.07657818944
maxSpan from patch BB : 9.27844514192

From function MixingPlaneInterpolation<MasterPatch, SlavePatch>::calcMixingPlanePatch() const
in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/MixingPlaneInterpolationPatches.C at line 354
minSpan after checking spanLimited: -180
maxSpan after checking spanLimited: 180

From function MixingPlaneInterpolation<MasterPatch, SlavePatch>::calcMixingPlanePatch() const
in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/MixingPlaneInterpolationPatches.C at line 412
mixingPatch:
After that it should go to this but it does not and I get the error shown above.

Code:
From function MixingPlaneInterpolation<SlavePatch, SlavePatch>::calcTransforms() const
in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/MixingPlaneInterpolationAddressing.C at line 361
slave face centre transformation check: (should be zero!) mag =
I tried switchin from patchConstrained to metis and the error went away.
But the solver crashed since the mixingPlane faces were not constrained to one patch as the need to.
Guess it could be something within patchConstrained method.

I can also see now that the error is not only due to the mixing plane. It also occurs from initializing the GGI interpolator.
So the fault may lie in the GGI code.

Appyling debug switches to the GGI I get the following:

Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0

mixingPlane patch Master: GVOUTLET Slave: RUINLET is local parallel
mixingPlane patch Master: RUINLET Slave: GVOUTLET is local parallel
mixingPlane patch Master: RUOUTLET Slave: DTINLET is local parallel
[0] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC1
Initializing the GGI interpolator between master/shadow patches: RUCYCLIC1/RUCYCLIC2

    From function void ggiPolyPatch::calcPatchToPatch() const
    in file meshes/polyMesh/polyPatches/constraint/ggi/ggiPolyPatch.C at line 211
    Calculating patch to patch interpolation for patchRUCYCLIC1
[2] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC1
[3] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC1
[4] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC1
[7] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC1
[1] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC1
[5] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC1
[6] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC1

    From function void GGIInterpolation<MasterPatch, SlavePatch>::calcAddressing() const
    in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/GGIInterpolationWeights.C at line 114
    Evaluation of GGI weighting factors:

    From function GGIInterpolation::findNonOverlappingFaces
    in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/GGIInterpolationWeights.C at line 829
       : Found 0 non-overlapping faces for this GGI patch

    From function GGIInterpolation::findNonOverlappingFaces
    in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/GGIInterpolationWeights.C at line 829
       : Found 0 non-overlapping faces for this GGI patch

    From function GGIInterpolation::calcPartiallyCoveredFaces
    in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/GGIInterpolationWeights.C at line 909
       : Found 0 partially overlapping faces for master GGI patch

    From function GGIInterpolation::calcPartiallyCoveredFaces
    in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/GGIInterpolationWeights.C at line 933
       : Found 0 partially overlapping faces for slave GGI patch
  Largest slave weighting factor correction : 2.22044604925e-16 average: 5.41788836017e-17
  Largest master weighting factor correction: 5.21764348393e-08 average: 1.3359972925e-08
[3] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC1
[1] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC1
[5] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC1
[4] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC1
Allocating communicator for GGI patch RUCYCLIC1 with 3(1 5 6): 1
GGI patch Master: RUCYCLIC1 Slave: RUCYCLIC2 is split between multiple processors
[0] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC1
[7] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC1
[6] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC1
[2] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC1
[5] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC2
[2] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC2
[0] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC2
[7] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC2
[6] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC2
[4] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC2
[3] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC2
[1] ggiPolyPatch::calcRemoteZoneAddressing() const for patch RUCYCLIC2
[1] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC2
[2] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC2
GGI patch Master: RUCYCLIC2 Slave: RUCYCLIC1 is split between multiple processors
[0] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC2
[7] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC2
[6] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC2
[4] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC2
[3] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC2
[5] ggiPolyPatch::calcSendReceive() const for patch RUCYCLIC2
[2] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC1
mixingPlane patch Master: DTINLET Slave: RUOUTLET is local parallel
[0] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC1
Initializing the GGI interpolator between master/shadow patches: DTCYCLIC1/DTCYCLIC2

    From function void ggiPolyPatch::calcPatchToPatch() const
    in file meshes/polyMesh/polyPatches/constraint/ggi/ggiPolyPatch.C at line 211
    Calculating patch to patch interpolation for patchDTCYCLIC1
[7] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC1
[6] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC1
[3] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC1
[5] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC1
[4] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC1
[1] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC1

    From function void GGIInterpolation<MasterPatch, SlavePatch>::calcAddressing() const
    in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/GGIInterpolationWeights.C at line 114
    Evaluation of GGI weighting factors:

    From function GGIInterpolation::findNonOverlappingFaces
    in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/GGIInterpolationWeights.C at line 829
       : Found 0 non-overlapping faces for this GGI patch

    From function GGIInterpolation::findNonOverlappingFaces
    in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/GGIInterpolationWeights.C at line 829
       : Found 0 non-overlapping faces for this GGI patch

    From function GGIInterpolation::calcPartiallyCoveredFaces
    in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/GGIInterpolationWeights.C at line 909
       : Found 0 partially overlapping faces for master GGI patch

    From function GGIInterpolation::calcPartiallyCoveredFaces
    in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/GGIInterpolationWeights.C at line 933
       : Found 0 partially overlapping faces for slave GGI patch
  Largest slave weighting factor correction : 2.22044604925e-16 average: 6.5883806347e-17
  Largest master weighting factor correction: 2.62809629614e-08 average: 9.7988954088e-09
[2] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC1
[1] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC1
[7] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC1
[5] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC1
[6] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC1
Allocating communicator for GGI patch DTCYCLIC1 with 3(1 4 5): 2
GGI patch Master: DTCYCLIC1 Slave: DTCYCLIC2 is split between multiple processors
[0] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC1
[4] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC1
[3] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC1
[3] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC2
[0] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC2
[4] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC2
[2] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC2
[1] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC2
[5] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC2
[7] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC2
[6] ggiPolyPatch::calcRemoteZoneAddressing() const for patch DTCYCLIC2
[1] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC2
[6] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC2
[3] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC2
GGI patch Master: DTCYCLIC2 Slave: DTCYCLIC1 is split between multiple processors
[0] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC2
[7] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC2
[4] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC2
[2] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC2
[5] ggiPolyPatch::calcSendReceive() const for patch DTCYCLIC2

    From function void ggiPolyPatch::calcReconFaceCellCentres() const
    in file meshes/polyMesh/polyPatches/constraint/ggi/ggiPolyPatch.C at line 279
    Calculating recon centres for patch RUCYCLIC1

    From function void ggiPolyPatch::calcReconFaceCellCentres() const
    in file meshes/polyMesh/polyPatches/constraint/ggi/ggiPolyPatch.C at line 279
    Calculating recon centres for patch DTCYCLIC1
[0] 
[0] 
[0] --> FOAM FATAL IO ERROR: 
[0] incorrect first token, expected <int> or '(', found on line 0 the word 'J'
[0] 
[0] file: IOstream at line 0.
[0] 
[0]     From function operator>>(Istream&, List<T>&)
[0]     in file /home/henrik/foam/foam-extend-4.0/src/foam/lnInclude/ListIO.C at line 149.
[0] 
FOAM parallel run exiting
So maybe the fault is when the GGI code calculates the cell centres.
It was not... But it seems like the error occures in the ggiPolyPatch.C.
Attached Files
File Type: gz axialTurbineMixingPlane.tar.gz (12.5 KB, 0 views)
__________________
/ Henrik Johansson

Last edited by HenrikJohansson; February 14, 2019 at 11:15.
HenrikJohansson is offline   Reply With Quote

Reply


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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
tutorial files KITetima FLUENT 8 November 23, 2019 17:05
AMI - Propeller Tutorial diverging kingmaker OpenFOAM Running, Solving & CFD 2 November 4, 2016 03:57
Foam-3.0-ext + MixingPlane Problems lentschi OpenFOAM Running, Solving & CFD 3 March 31, 2014 09:40
Fluent Tutorial Guide Ch. 17: Non-Premixed Combust, THTR MAE7509 FLUENT 0 January 22, 2014 21:59
STAR-CD Tutorial shekhar aryal STAR-CD 4 March 22, 2010 04:25


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