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

CyclicAMI: Unable to find initial target face

Register Blogs Community New Posts Updated Threads Search

Like Tree10Likes
  • 4 Post By Alasir
  • 4 Post By minzhang
  • 1 Post By Vishsel
  • 1 Post By ameyer

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   September 28, 2017, 23:31
Exclamation CyclicAMI: Unable to find initial target face
  #1
Member
 
Anders Utnes
Join Date: May 2017
Location: Norway
Posts: 34
Rep Power: 8
Alasir is on a distinguished road
Hi

Im having a channel flow with a repeating geometry inside. To simplify this I'm using a LES model where I try to use the cyclic BC.

Im using FreeCAD and SnappyHexMesh to generate the mesh, thus causing the iunlet and outlet to have a slight difference in faces. I try to compensate by using cyclicAMI.

However, I keep getting the error "Unable to find initial target face". Does anyone know what this means?

Code:
Boundary:
    inlet
    {
        type            cyclicAMI;
        nFaces          3128;
        startFace       400334;
        matchTolerance  0.01;
        transform       noOrdering;
        neighbourPatch  outlet;
    }
    outlet
    {
        type            cyclicAMI;
        nFaces          3172;
        startFace       403462;
        matchTolerance  0.01;
        transform       noOrdering;
        neighbourPatch  inlet;

U:
    inlet
    {
        type            fixedValue;
        value           uniform (0.01 0 0);

    }
    outlet
    {
        type            inletOutlet;
        inletValue      uniform (0 0 0);
        value           uniform (0.01 0 0);
    }

P:
    inlet
    {
        type            cyclicAMI;
    }
    outlet
    {
        type            cyclicAMI;
    }
Alasir is offline   Reply With Quote

Old   September 29, 2017, 00:03
Default
  #2
Member
 
Anders Utnes
Join Date: May 2017
Location: Norway
Posts: 34
Rep Power: 8
Alasir is on a distinguished road
Resolved.

Turns out that my error was using noOrdering when I should use translational.

Code:
Boundary:
    inlet
    {
        type            cyclicAMI;
        nFaces          3128;
        startFace       400334;
        matchTolerance  0.001;
        transform       translational;
        neighbourPatch  outlet;
        separationVector (0.000480 0 0);
    }
    outlet
    {
        type            cyclicAMI;
        nFaces          3172;
        startFace       403462;
        matchTolerance  0.001;
        transform       translational;
        neighbourPatch  inlet;
        separationVector (-0.000480 0 0);


P:
    inlet
    {
        type            cyclicAMI;

    }
    outlet
    {
        type            cyclicAMI;

    }
Swift, Luttappy, lukasf and 1 others like this.
Alasir is offline   Reply With Quote

Old   March 6, 2019, 10:51
Default
  #3
Member
 
Min Zhang
Join Date: Mar 2017
Posts: 81
Rep Power: 9
minzhang is on a distinguished road
Hello Alasir,

I am having similar issues with the implementation of cyclicAMI boundary condition.
Your kind help would be greatly appreciated!

My questions are as follows:
(1) My patch2 and patch3 are quite different, does it matter?
(2) What does "translational" mean here?
(3) How to set the "separationVector" value? My patch2 position in y-direction is y=0 and patch3 position is y=2.19.

Thanks in advance!!

My CFD/constant/polyMesh/boundary file is attached below:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/cellZone_0/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

5
(
patch2
{
type cyclicAMI;//symmetry;
physicalType cyclicAMI;//symmetry;
neighbourPatch patch3;
nFaces 406;
startFace 91945;
transform translational;
separationVector (0 -2.19 0);
}
patch3
{
type cyclicAMI;//symmetry;
physicalType cyclicAMI;//symmetry;
neighbourPatch patch2;
nFaces 351;
startFace 92351;
transform translational;
separationVector (0 2.19 0);
}
inlet
{
type patch;
physicalType patch;
nFaces 316;
startFace 92702;
}
outlet
{
type patch;
physicalType patch;
nFaces 160;
startFace 93018;
}
walls
{
type wall;
nFaces 42871;
startFace 93178;
}
)

My errors are here:
Number of processor faces = 3643
Max number of cells = 1156 (46.0249% above average 791.646)
Max number of processor patches = 5 (41.1765% above average 3.54167)
Max number of faces between processors = 229 (50.8647% above average 151.792)

Time = 0
AMI: Creating addressing and weights between 406 source faces and 351 target faces
--> FOAM Warning :
From function AMIMethod<SourcePatch, TargetPatch>::checkPatches()
in file lnInclude/AMIMethod.C at line 57
Source and target patch bounding boxes are not similar
source box span : (3.718 0 0.1752)
target box span : (3.9 0 0.219)
source box : (0 0 0.0219) (3.718 0 0.1971)
target box : (0 4.38 0.0219) (3.9 4.38 0.2409)
inflated target box : (-0.195307 4.18469 -0.173407) (4.09531 4.57531 0.436207)


--> FOAM FATAL ERROR:
Unable to find initial target face


From function void Foam::AMIMethod<SourcePatch, TargetPatch>::initialise(labelListList&, scalarListList&, labelListList&, scalar\
ListList&, label&, label&)
in file lnInclude/AMIMethod.C at line 149.

FOAM aborting

#0 Foam::error:rintStack(Foam::Ostream&) at ??:?
#1 Foam::error::abort() at ??:?
#2 Foam::AMIMethod<Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> \
>, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::initialise(F\
oam::List<Foam::List<int> >&, Foam::List<Foam::List<double> >&, Foam::List<Foam::List<int> >&, Foam::List<Foam::List<double> >&, int\
&, int&) at ??:?
minzhang is offline   Reply With Quote

Old   May 23, 2019, 06:13
Default
  #4
Member
 
Vishnu
Join Date: May 2019
Location: Tamilnadu, India
Posts: 55
Rep Power: 6
Vishsel is on a distinguished road
Quote:
Originally Posted by Alasir View Post
Resolved.

Turns out that my error was using noOrdering when I should use translational.

Code:
Boundary:
    inlet
    {
        type            cyclicAMI;
        nFaces          3128;
        startFace       400334;
        matchTolerance  0.001;
        transform       translational;
        neighbourPatch  outlet;
        separationVector (0.000480 0 0);
    }
    outlet
    {
        type            cyclicAMI;
        nFaces          3172;
        startFace       403462;
        matchTolerance  0.001;
        transform       translational;
        neighbourPatch  inlet;
        separationVector (-0.000480 0 0);


P:
    inlet
    {
        type            cyclicAMI;

    }
    outlet
    {
        type            cyclicAMI;

    }
How to find the value #(0 0.000480 0) for separation vector??

Anyone ?

Thankyou in advance
Vishsel
raj kumar saini likes this.
Vishsel is offline   Reply With Quote

Old   April 4, 2020, 10:22
Default
  #5
New Member
 
Join Date: Jan 2015
Location: Berlin
Posts: 5
Rep Power: 11
ameyer is on a distinguished road
For the sake of completeness and because I had the same question:


As far as I understood (and it seems to work in my case) the


separationVector (x y z)


is just the offset-vector (or translation vector) between your 2 patches - as seen from the patch where it is defined (as in the example above you have to specify it for both patches, so the second
separationVector has the opposite dir. as the first one)
openfoam_aero likes this.
ameyer is offline   Reply With Quote

Old   September 18, 2020, 20:07
Default
  #6
Member
 
Uttam
Join Date: May 2020
Location: Southampton, United Kingdom
Posts: 34
Rep Power: 5
openfoam_aero is on a distinguished road
Quote:
Originally Posted by minzhang View Post
Hello Alasir,

I am having similar issues with the implementation of cyclicAMI boundary condition.
Your kind help would be greatly appreciated!

My questions are as follows:
(1) My patch2 and patch3 are quite different, does it matter?
(2) What does "translational" mean here?
(3) How to set the "separationVector" value? My patch2 position in y-direction is y=0 and patch3 position is y=2.19.

Thanks in advance!!

My CFD/constant/polyMesh/boundary file is attached below:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/cellZone_0/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

5
(
patch2
{
type cyclicAMI;//symmetry;
physicalType cyclicAMI;//symmetry;
neighbourPatch patch3;
nFaces 406;
startFace 91945;
transform translational;
separationVector (0 -2.19 0);
}
patch3
{
type cyclicAMI;//symmetry;
physicalType cyclicAMI;//symmetry;
neighbourPatch patch2;
nFaces 351;
startFace 92351;
transform translational;
separationVector (0 2.19 0);
}
inlet
{
type patch;
physicalType patch;
nFaces 316;
startFace 92702;
}
outlet
{
type patch;
physicalType patch;
nFaces 160;
startFace 93018;
}
walls
{
type wall;
nFaces 42871;
startFace 93178;
}
)

My errors are here:
Number of processor faces = 3643
Max number of cells = 1156 (46.0249% above average 791.646)
Max number of processor patches = 5 (41.1765% above average 3.54167)
Max number of faces between processors = 229 (50.8647% above average 151.792)

Time = 0
AMI: Creating addressing and weights between 406 source faces and 351 target faces
--> FOAM Warning :
From function AMIMethod<SourcePatch, TargetPatch>::checkPatches()
in file lnInclude/AMIMethod.C at line 57
Source and target patch bounding boxes are not similar
source box span : (3.718 0 0.1752)
target box span : (3.9 0 0.219)
source box : (0 0 0.0219) (3.718 0 0.1971)
target box : (0 4.38 0.0219) (3.9 4.38 0.2409)
inflated target box : (-0.195307 4.18469 -0.173407) (4.09531 4.57531 0.436207)


--> FOAM FATAL ERROR:
Unable to find initial target face


From function void Foam::AMIMethod<SourcePatch, TargetPatch>::initialise(labelListList&, scalarListList&, labelListList&, scalar\
ListList&, label&, label&)
in file lnInclude/AMIMethod.C at line 149.

FOAM aborting

#0 Foam::error:rintStack(Foam::Ostream&) at ??:?
#1 Foam::error::abort() at ??:?
#2 Foam::AMIMethod<Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> \
>, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::initialise(F\
oam::List<Foam::List<int> >&, Foam::List<Foam::List<double> >&, Foam::List<Foam::List<int> >&, Foam::List<Foam::List<double> >&, int\
&, int&) at ??:?
Hello Min,


Did you find a solution to this? I am facing a similar problem.
openfoam_aero is offline   Reply With Quote

Old   May 12, 2021, 16:42
Default
  #7
Member
 
Gang Wang
Join Date: Oct 2019
Location: China
Posts: 64
Rep Power: 7
Gang Wang is on a distinguished road
Dear Mr. Zhang,

Have you solved this issue? I've met the same error with urs for several days but I cannot find the solution.


Best regards,
Gang


Quote:
Originally Posted by minzhang View Post
Hello Alasir,

I am having similar issues with the implementation of cyclicAMI boundary condition.
Your kind help would be greatly appreciated!

My questions are as follows:
(1) My patch2 and patch3 are quite different, does it matter?
(2) What does "translational" mean here?
(3) How to set the "separationVector" value? My patch2 position in y-direction is y=0 and patch3 position is y=2.19.

Thanks in advance!!

My CFD/constant/polyMesh/boundary file is attached below:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/cellZone_0/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

5
(
patch2
{
type cyclicAMI;//symmetry;
physicalType cyclicAMI;//symmetry;
neighbourPatch patch3;
nFaces 406;
startFace 91945;
transform translational;
separationVector (0 -2.19 0);
}
patch3
{
type cyclicAMI;//symmetry;
physicalType cyclicAMI;//symmetry;
neighbourPatch patch2;
nFaces 351;
startFace 92351;
transform translational;
separationVector (0 2.19 0);
}
inlet
{
type patch;
physicalType patch;
nFaces 316;
startFace 92702;
}
outlet
{
type patch;
physicalType patch;
nFaces 160;
startFace 93018;
}
walls
{
type wall;
nFaces 42871;
startFace 93178;
}
)

My errors are here:
Number of processor faces = 3643
Max number of cells = 1156 (46.0249% above average 791.646)
Max number of processor patches = 5 (41.1765% above average 3.54167)
Max number of faces between processors = 229 (50.8647% above average 151.792)

Time = 0
AMI: Creating addressing and weights between 406 source faces and 351 target faces
--> FOAM Warning :
From function AMIMethod<SourcePatch, TargetPatch>::checkPatches()
in file lnInclude/AMIMethod.C at line 57
Source and target patch bounding boxes are not similar
source box span : (3.718 0 0.1752)
target box span : (3.9 0 0.219)
source box : (0 0 0.0219) (3.718 0 0.1971)
target box : (0 4.38 0.0219) (3.9 4.38 0.2409)
inflated target box : (-0.195307 4.18469 -0.173407) (4.09531 4.57531 0.436207)


--> FOAM FATAL ERROR:
Unable to find initial target face


From function void Foam::AMIMethod<SourcePatch, TargetPatch>::initialise(labelListList&, scalarListList&, labelListList&, scalar\
ListList&, label&, label&)
in file lnInclude/AMIMethod.C at line 149.

FOAM aborting

#0 Foam::error:rintStack(Foam::Ostream&) at ??:?
#1 Foam::error::abort() at ??:?
#2 Foam::AMIMethod<Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> \
>, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::initialise(F\
oam::List<Foam::List<int> >&, Foam::List<Foam::List<double> >&, Foam::List<Foam::List<int> >&, Foam::List<Foam::List<double> >&, int\
&, int&) at ??:?
Gang Wang is offline   Reply With Quote

Old   May 26, 2023, 22:32
Default Unable to set source and target faces
  #8
New Member
 
Helloy
Join Date: Jul 2012
Posts: 4
Rep Power: 13
eloy_785 is on a distinguished road
Hello everyone,

I'm trying to simulate a fan by using sliding Mesh and cyclicAMI but I'm having the next error when I wanted to run with pimpleDyMFoam (v1712):

[101] --> FOAM FATAL ERROR:
[101] Unable to set source and target faces
[101]
[101] From function void Foam::faceAreaWeightAMI<SourcePatch, TargetPatch>::setNextFaces(Foam::label&, Foam::label&, Foam::label&, const boolList&, Foam::labelList&, const Foam:ynamicList<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>]
[101] in file lnInclude/faceAreaWeightAMI.C at line 287.
[101]
FOAM parallel run aborting

and this is my createPatchDict:
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location system;
object createPatchDict;
}
pointSync false;
patches
(
{
name cm_fan_region_00_940w_brose_interface_ami;
patchInfo
{
type cyclicAMI;
matchTolerance 1.0E-4;
neighbourPatch cm_fan_region_00_940w_brose_interface_slave_ami;
transform noOrdering;
}
constructFrom patches;
patches (cm_fan_region_00_940w_brose_interface);
}
{
name cm_fan_region_00_940w_brose_interface_slave_ami;
patchInfo
{
type cyclicAMI;
matchTolerance 1.0E-4;
neighbourPatch cm_fan_region_00_940w_brose_interface_ami;
transform noOrdering;
}
constructFrom patches;
patches (cm_fan_region_00_940w_brose_interface_slave);
}
);

the problem involves a rotational movement.

If someone has an idea or suggestion, I will appreciate.
eloy_785 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
Maximum number of iterations exceeded chtmultiregionsimpleFoam Moncef OpenFOAM Running, Solving & CFD 28 July 13, 2020 14:26
Problem with chtMultiregionFoam radiation boundary condition baran_foam OpenFOAM Running, Solving & CFD 10 December 17, 2019 17:36
chtMultiRegionSimpleFoam: maximum number of iterations excedeed. Nkl OpenFOAM Running, Solving & CFD 19 October 10, 2019 02:42
simpleFoam error - "Floating point exception" mbcx4jc2 OpenFOAM Running, Solving & CFD 12 August 4, 2015 02:20
calculation stops after few time steps sivakumar OpenFOAM Running, Solving & CFD 7 March 17, 2013 06:37


All times are GMT -4. The time now is 14:17.