CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Pre-Processing (https://www.cfd-online.com/Forums/openfoam-pre-processing/)
-   -   cyclicAMI bc with two neighbouring patches (https://www.cfd-online.com/Forums/openfoam-pre-processing/205181-cyclicami-bc-two-neighbouring-patches.html)

Thecomebackkid August 11, 2018 04:22

cyclicAMI bc with two neighbouring patches
 
hi all,


I have a case with domain and two separate rotating mrfs within it. I want to use cyclicAMI bc for interfaces:

mrf1 to domain
mrf2 to domain
domain to mrf1 and mrf2.

In order to I would like to know if I can specify two neighbouring patches somehow?

Code:

boundaryField
 {
    DOMAIN
    {
        type            cyclicAMI;
        inGroups        1(cyclicAMI);  ///also what is this for?
        matchTolerance  0.1;
        //transform      rotational;
        neighbourPatch  mrf1, mrf2 ------<< here is my problem it wont take two?
        rotationAxis    (0 0 1);
        rotationCentre  (0 0 0);
        nFaces          1628;
        startFace      171370;
    }
 }

does anyone know how I can do this?

thanks,
Zeshan

simrego August 11, 2018 09:30

Hi!


I don't know if this is the same for cyclicAMI but as i know for example in CHT if you try to create an interface like this, AMI will complain.
Try to create two different patches in the domain like this:
couple domain1 with mrf1 and domain2 with mrf2.
It should works then.

Thecomebackkid August 11, 2018 10:10

Quote:

Originally Posted by simrego (Post 702318)
Hi!


I don't know if this is the same for cyclicAMI but as i know for example in CHT if you try to create an interface like this, AMI will complain.
Try to create two different patches in the domain like this:
couple domain1 with mrf1 and domain2 with mrf2.
It should works then.

hey thanks for the reply, I will try that out...and come back to you.

Thecomebackkid August 16, 2018 04:29

Quote:

Originally Posted by simrego (Post 702318)
Hi!


I don't know if this is the same for cyclicAMI but as i know for example in CHT if you try to create an interface like this, AMI will complain.
Try to create two different patches in the domain like this:
couple domain1 with mrf1 and domain2 with mrf2.
It should works then.


Hi i am still having problems. i have tried the way you said but now i get a error with the AMI bc's


Code:

$ pimpleFoam.exe
/*---------------------------------------------------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  5.x                                  |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
/*  Windows 32 and 64 bit porting by blueCAPE: http://www.bluecape.com.pt  *\
|  Based on Windows porting (2.0.x v4) by Symscape: http://www.symscape.com  |
\*---------------------------------------------------------------------------*/
Build  : 5.x-963176928289
Exec  : C:/PROGRA~1/BLUECF~1/OpenFOAM-5.x/platforms/mingw_w64GccDPInt32Opt/bin/pimpleFoam.exe
Date  : Aug 16 2018
Time  : 09:22:09
Host  : "SWNPC5003"
PID    : 2244
I/O    : uncollated
Case  : C:/PROGRA~1/BLUECF~1/ofuser-of5/run/new/test/DOMAIN
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0

--> FOAM Warning :
    From function virtual Foam::label Foam::cyclicAMIPolyPatch::neighbPatchID() const
    in file AMIInterpolation/patches/cyclicAMI/cyclicAMIPolyPatch/cyclicAMIPolyPatch.C at line 720
    Patch GEARDVN specifies neighbour patch INTERFACE
 but that in return specifies GEARDRV

PIMPLE: no residual control data found. Calculations will employ 2 corrector loops

Reading field p

AMI: Creating addressing and weights between 33370 source faces and 17392 target faces
--> FOAM Warning :
    From function void Foam::AMIMethod<SourcePatch, TargetPatch>::checkPatches() const [with SourcePatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>; TargetPatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>]
    in file ./AMIInterpolation/AMIInterpolation/AMIMethod/AMIMethod/AMIMethod.T.C at line 57
    Source and target patch bounding boxes are not similar
    source box span    : (0.0213595 0.0384635 0.0192317)
    target box span    : (0.0213595 0.0213595 0.0192317)
    source box          : (0.263241 0.215276 0.000925333) (0.2846 0.25374 0.020157)
    target box          : (0.263241 0.23238 0.000925333) (0.2846 0.25374 0.020157)
    inflated target box : (0.261451 0.23059 -0.000865135) (0.286391 0.25553 0.0219475)


--> FOAM FATAL ERROR:
Unable to set source and target faces

    From function void Foam::faceAreaWeightAMI<SourcePatch, TargetPatch>::setNextFaces(Foam::label&, Foam::label&, Foam::label&, const boolList&, Foam::labelList&, const Foam::DynamicList<int>&, bool) const [with SourcePatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>; TargetPatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>; Foam::label = int; Foam::boolList = Foam::List<bool>; Foam::labelList = Foam::List<int>]
    in file ./AMIInterpolation/AMIInterpolation/AMIMethod/faceAreaWeightAMI/faceAreaWeightAMI.C at line 287.

FOAM aborting

Generating stack trace...


Backtrace:
        ZN10StackTraceC1Ev [0x705c1465+0x25]
                module: C:\PROGRA~1\BLUECF~1\ThirdParty-5.x\platforms\mingw_w64GccDPInt32\lib\libstack_trace.dll
        ZN4Foam5error10printStackERNS_7OstreamE [0x931c88+0x218]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libOpenFOAM.dll
        ZN4Foam5error5abortEv [0x6e5b5d+0x12d]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libOpenFOAM.dll
        ZN4Foam17faceAreaWeightAMIINS_14PrimitivePatchINS_4faceENS_7SubListERKNS_5FieldINS_6VectorIdEEEES6_EESA_E14calcAddressingERNS_4ListINS_11DynamicListIiLj0ELj2ELj1EEEEERNSC_INSD_IdLj0ELj2ELj1EEEEESG_SJ_ii [0x63318052+0x1e2]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libmeshTools.dll
        ZN4Foam17faceAreaWeightAMIINS_14PrimitivePatchINS_4faceENS_7SubListERKNS_5FieldINS_6VectorIdEEEES6_EESA_E9calculateERNS_4ListINSC_IiEEEERNSC_INSC_IdEEEESF_SI_ii [0x63318cb4+0xf4]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libmeshTools.dll
        ZN4Foam16AMIInterpolationINS_14PrimitivePatchINS_4faceENS_7SubListERKNS_5FieldINS_6VectorIdEEEES6_EESA_E6updateERKSA_SD_ [0x6330e6a9+0x339]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libmeshTools.dll
        ZN4Foam16AMIInterpolationINS_14PrimitivePatchINS_4faceENS_7SubListERKNS_5FieldINS_6VectorIdEEEES6_EESA_E20constructFromSurfaceERKSA_SD_RKNS_7autoPtrINS_17searchableSurfaceEEE [0x6330d83a+0x5ba]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libmeshTools.dll
        ZNK4Foam18cyclicAMIPolyPatch8resetAMIERKNS_16AMIInterpolationINS_14PrimitivePatchINS_4faceENS_7SubListERKNS_5FieldINS_6VectorIdEEEES7_EESB_E19interpolationMethodE [0x632cb8ff+0x71f]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libmeshTools.dll
        ZNK4Foam18cyclicAMIPolyPatch3AMIEv [0x632c6203+0x93]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libmeshTools.dll
        ZNK4Foam18cyclicAMIPolyPatch24applyLowWeightCorrectionEv [0x632c62a9+0x29]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libmeshTools.dll
        ZNK4Foam21cyclicAMIFvPatchFieldIdE19patchNeighbourFieldEv [0x6651da40+0x80]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libfiniteVolume.dll
        ZN4Foam19coupledFvPatchFieldIdE8evaluateENS_8UPstream10commsTypesE [0x660bf6da+0x3a]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libfiniteVolume.dll
        ZN4Foam21cyclicAMIFvPatchFieldIdEC1ERKNS_7fvPatchERKNS_16DimensionedFieldIdNS_7volMeshEEERKNS_10dictionaryE [0x660db52b+0x18b]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libfiniteVolume.dll
        ZN4Foam12fvPatchFieldIdE31adddictionaryConstructorToTableINS_21cyclicAMIFvPatchFieldIdEEE3NewERKNS_7fvPatchERKNS_16DimensionedFieldIdNS_7volMeshEEERKNS_10dictionaryE [0x660172c9+0x39]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\lib\libfiniteVolume.dll
        (No symbol) [0x407ef6]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\bin\pimpleFoam.exe
        (No symbol) [0x41098c]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\bin\pimpleFoam.exe
        (No symbol) [0x40f8e6]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\bin\pimpleFoam.exe
        (No symbol) [0x40fb4c]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\bin\pimpleFoam.exe
        (No symbol) [0x41193c]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\bin\pimpleFoam.exe
        (No symbol) [0x44eda4]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\bin\pimpleFoam.exe
        (No symbol) [0x4013f7]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\bin\pimpleFoam.exe
        (No symbol) [0x40152b]
                module: C:\PROGRA~1\BLUECF~1\OpenFOAM-5.x\platforms\mingw_w64GccDPInt32Opt\bin\pimpleFoam.exe
        BaseThreadInitThunk [0x76f359cd+0xd]
                module: C:\Windows\system32\kernel32.dll
        RtlUserThreadStart [0x7709383d+0x1d]
                module: C:\Windows\SYSTEM32\ntdll.dll

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

is there anyway to resolve this issue?




here's my boundary file:
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  5.x                                  |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
/*  Windows 32 and 64 bit porting by blueCAPE: http://www.bluecape.com.pt  *\
|  Based on Windows porting (2.0.x v4) by Symscape: http://www.symscape.com  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      binary;
    class      polyBoundaryMesh;
    location    "constant/polyMesh";
    object      boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

10
(
    INLET
    {
        type            patch;
        nFaces          1860;
        startFace      661476;
    }
    OUTLET
    {
        type            patch;
        nFaces          1842;
        startFace      663336;
    }
    BR
    {
        type            patch;
        nFaces          4131;
        startFace      665178;
    }
    BL
    {
        type            patch;
        nFaces          4131;
        startFace      669309;
    }
    UP
    {
        type            patch;
        nFaces          4830;
        startFace      673440;
    }
    LW
    {
        type            patch;
        nFaces          5072;
        startFace      678270;
    }
    INTERFACE
    {
        type            cyclicAMI;
      inGroups        1(cyclicAMI);
        matchTolerance  0.1;
        transform      noOrdering;
    rotationAxis ( 0 0 1 );
    rotationCentre ( 0.273932 0.234316 0.0103284 );
        neighbourPatch  GEARDRV;
        nFaces          33370;
        startFace      683342;
    }
    GEARDRV
    {
        type            cyclicAMI;
      inGroups        1(cyclicAMI);
        matchTolerance  0.1;
        transform      noOrdering;
    rotationAxis  ( 0 0 1 );
    rotationCentre ( 0.273932 0.243851 0.0103284 );
        neighbourPatch  INTERFACE;
        nFaces          17392;
        startFace      716712;
    }
    GEARDVN
    {
        type            cyclicAMI;
      inGroups        1(cyclicAMI);
        matchTolerance  0.1;
        transform      noOrdering;
    rotationAxis  ( 0 0 1 );
    rotationCentre ( 0.273932 0.224781 0.0103284 );
        neighbourPatch  INTERFACE;
        nFaces          15816;
        startFace      734104;
    }
   
    INTERFACE
{
type cyclicAMI
  inGroups        1(cyclicAMI);
        matchTolerance  0.1;
        transform      noOrdering;
    rotationAxis  ( 0 0 1 );
    rotationCentre ( 0.273932 0.234316 0.0103284 );
        neighbourPatch  GEARDVN;
nFaces 33370;
startFace 683342;
}
)

// ************************************************************************* //


RobertHB August 16, 2018 07:40

Quote:

Originally Posted by Thecomebackkid (Post 702300)
Code:

boundaryField
 {
    DOMAIN
    {
        type            cyclicAMI;
        inGroups        1(cyclicAMI);  ///also what is this for?
        matchTolerance  0.1;
        //transform      rotational;
        neighbourPatch  mrf1, mrf2 ------<< here is my problem it wont take two?
        rotationAxis    (0 0 1);
        rotationCentre  (0 0 0);
        nFaces          1628;
        startFace      171370;
    }
 }


Don't bother with the content of the boundary file. You will not have to change it manually.

inGroups 1(cyclicAMI); - OpenFoam groups patches of a similar type. Your DOMAIN patch is part of one group, namely cyclicAMI
neighbourPatch mrf1, mrf2 - In your blockMeshDict, when creating your domain, you have to give a neighbourPatch to each cyclic patch. E.g. if you have an inlet and an outlet connected by a cyclic boundary condition, you would write for the inlet patch neighbourPatch outlet; and for the outlet patch neighbourPatch inlet;.


As for you latest error:
Quote:

--> FOAM FATAL ERROR:
Unable to set source and target faces
i'd guess its because your two cyclic patches are not lining up propperly. Maybe the is because you commented out the transform command.

Thecomebackkid August 16, 2018 09:12

Quote:

Originally Posted by RobertHB (Post 702851)
Don't bother with the content of the boundary file. You will not have to change it manually.

inGroups 1(cyclicAMI); - OpenFoam groups patches of a similar type. Your DOMAIN patch is part of one group, namely cyclicAMI
neighbourPatch mrf1, mrf2 - In your blockMeshDict, when creating your domain, you have to give a neighbourPatch to each cyclic patch. E.g. if you have an inlet and an outlet connected by a cyclic boundary condition, you would write for the inlet patch neighbourPatch outlet; and for the outlet patch neighbourPatch inlet;.


As for you latest error: i'd guess its because your two cyclic patches are not lining up propperly. Maybe the is because you commented out the transform command.


THANKS FOR YOUR REPLY.....I will check this later and may come back to you.


All times are GMT -4. The time now is 13:43.