Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • openfoam openfoam
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 381
    • Issues 381
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 5
    • Merge requests 5
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Development
  • openfoamopenfoam
  • Issues
  • #2462
Closed
Open
Created May 09, 2022 by Sunag R A@rasunag27

Unable to set source and target faces (coupled boundary condition)

Summary

Hi,

I am trying to work on patch to patch coupled boundary condition. I came across coupled boundary condition namely AMI, CyclicAMI. I am new to this part.

  1. Does AMI and CyclicAMI work only for dynamic meshes?
  2. I am trying to interpolate the dirichlet boundary conditon values on one patch to adjacent patch using AMI boundary condition. (The mesh does not move and still I have tried to use it).
  3. I am facing an issue stating as mentioned in title as "Unable to set source and target faces".

My boundary file is as follows as present in constant/polymesh/boundary:

3
(
    AMI_patch1
    {
        type            cyclicAMI;
	inGroups	  1(cyclicAMI);
	matchTolerance 0.001;
	transform	   noOrdering;
	neighbourPatch	AMI_patch2;
        nFaces          7113;
        startFace       730746;
	separationVector (0.005 0 0);
    }
    chestwall
    {
        type            patch;
        nFaces          5196;
        startFace       737859;
    }
    AMI_patch2
    {
        type            cyclicAMI;
	inGroups	   1(cyclicAMI);
	matchTolerance	0.001;
	transform	   noOrdering;
	neighbourParch	AMI_patch1;
        nFaces          9334;
        startFace       743055;
	separationVector (-0.005 0 0);
    }
)

I am working with chtMultiRegionSimpleFoam, due to this, the region boundary corresponding to the AMI patches are also same.

What is the current bug behaviour?

Error:

AMI: Creating addressing and weights between 7113 source faces and 9334 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 lnInclude/AMIMethod.C at line 57
    Source and target patch bounding boxes are not similar
    source box span     : (0.163847 0.1670128 0.08645282)
    target box span     : (0.2068839 0.1798336 0.08224967)
    source box          : (0.003686016 -0.0002872496 0) (0.167533 0.1667256 0.08645282)
    target box          : (0.07743542 -0.006471181 0) (0.2843193 0.1733624 0.08224967)
    inflated target box : (0.0631258 -0.0207808 -0.01430962) (0.2986289 0.187672 0.09655929)


--> 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 lnInclude/faceAreaWeightAMI.C at line 287.

FOAM aborting

What is the expected correct behavior?

I need to have patch to patch interpolated field flow after each iteration.

Other

How does this AMI work and what are the changes need to be made.? For reference, I have attached the surface image for reference, where the left patch contains the dirichlet boundary condition and right patch is the one where the interpolation from dirichlet boundary condition showed happen.

Is there a possibility of interpolating one surface patch to another for a static mesh? Open to give the case files.

image_ami

Environment information

  • OpenFOAM version : 5
  • Operating system : Ubuntu 18.04.6 LTS
Edited May 09, 2022 by Sunag R A
Assignee
Assign to
Time tracking