Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • openfoam openfoam
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 480
    • Issues 480
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 11
    • Merge requests 11
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Model experiments
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Development
  • openfoamopenfoam
  • Issues
  • #1704

issue with refineHexMesh running in parallel with cyclic boundary conditions

Summary

When the domain is split among processors such that cells on cyclic patches are not on the same processor, refineHexMesh cannot be used.

Steps to reproduce

Use cyclic boundary conditions and set decomposeParDict such that the cells which are on cyclic boundaries are not on the same processor.

Run refineHexMesh on a cellset.

Observe the error of the form "Cannot find point in pts1 matching point ### coord:(## ## ##) in pts0 when using tolerance ##" in the refineHexMesh log file.

Example case

If your domain is a cube, and the patches perpendicular to the x axis are cyclic, then you cannot split the domain into sections along the x direction (e.g. (4 1 1) in decompseParDict). It seems like you can however split the domain along the y or z direction, since the cells with the cyclic faces will be on the same processor (e.g. (1 4 1) in decompseParDict).

What is the expected correct behavior?

It would be nice if there was either a usage warning in refineHexMesh with cyclic boundary conditions, or if the mesh splitting and cell face assignments could be worked out so that it was possible to use refineHexMesh in parallel with cyclic boundary conditions.

Relevant logs and/or images

Here is a sample of the refineHexMesh log file

[3] Cannot find point in pts1 matching point 131 coord:(0.015625 0.5 -0.0166667) in pts0 when using tolerance 2.28455e-06
[3] Searching started from:0 in pts1
[3]     Compared coord: (0.015625 -0.5 -0.0166667) at index 0 with difference to point 1
[3] Cannot find point in pts1 matching point 132 coord:(0.046875 0.5 -0.0166667) in pts0 when using tolerance 2.28455e-06
[3] Searching started from:0 in pts1
[3]     Compared coord: (0.015625 -0.5 -0.0166667) at index 0 with difference to point 1.00049
[3]     Compared coord: (0.046875 -0.5 -0.0166667) at index 1 with difference to point 1
[3] Cannot find point in pts1 matching point 15 coord:(0.015625 0.5 -0.05) in pts0 when using tolerance 2.28455e-06
[3] Searching started from:1 in pts1
[3]     Compared coord: (0.046875 -0.5 -0.0166667) at index 1 with difference to point 1.00104
[3]     Compared coord: (0.015625 -0.5 -0.05) at index 2 with difference to point 1
[3] Cannot find point in pts1 matching point 133 coord:(0.046875 0.5 -0.05) in pts0 when using tolerance 2.28455e-06
[3] Searching started from:2 in pts1
[3]     Compared coord: (0.015625 -0.5 -0.05) at index 2 with difference to point 1.00049
[3]     Compared coord: (0.046875 -0.5 -0.05) at index 3 with difference to point 1

Environment information

OpenFOAM version : v1806

OS: centos

Possible fixes

For now, if you keep the cyclic cells on the same processor it seems to work.

Assignee
Assign to
Time tracking