Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
0b703011
Commit
0b703011
authored
Aug 02, 2018
by
mattijs
Browse files
ENH: overset: disallow hole donors. See #810.
parent
70801d7f
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/overset/cellCellStencil/cellCellStencil/cellCellStencil.C
View file @
0b703011
...
...
@@ -170,6 +170,7 @@ void Foam::cellCellStencil::globalCellCells
(
const
globalIndex
&
gi
,
const
polyMesh
&
mesh
,
const
boolList
&
isValidDonor
,
const
labelList
&
selectedCells
,
labelListList
&
cellCells
,
pointListList
&
cellCellCentres
...
...
@@ -206,6 +207,14 @@ void Foam::cellCellStencil::globalCellCells
nbrCellCentres
);
boolList
nbrIsValidDonor
;
syncTools
::
swapBoundaryCellList
(
mesh
,
isValidDonor
,
nbrIsValidDonor
);
// 2. Collect cell and all its neighbours
...
...
@@ -224,8 +233,11 @@ void Foam::cellCellStencil::globalCellCells
label
compacti
=
0
;
// First entry is cell itself
stencil
[
compacti
]
=
globalCellIDs
[
celli
];
stencilPoints
[
compacti
++
]
=
cellCentres
[
celli
];
if
(
isValidDonor
[
celli
])
{
stencil
[
compacti
]
=
globalCellIDs
[
celli
];
stencilPoints
[
compacti
++
]
=
cellCentres
[
celli
];
}
// Other entries are cell neighbours
forAll
(
cFaces
,
i
)
...
...
@@ -235,10 +247,12 @@ void Foam::cellCellStencil::globalCellCells
label
own
=
faceOwner
[
facei
];
label
nbrCelli
;
point
nbrCc
;
bool
isValid
=
false
;
if
(
bFacei
>=
0
)
{
nbrCelli
=
nbrGlobalCellIDs
[
bFacei
];
nbrCc
=
nbrCellCentres
[
bFacei
];
isValid
=
nbrIsValidDonor
[
bFacei
];
}
else
{
...
...
@@ -246,20 +260,25 @@ void Foam::cellCellStencil::globalCellCells
{
nbrCelli
=
gi
.
toGlobal
(
own
);
nbrCc
=
cellCentres
[
own
];
isValid
=
isValidDonor
[
own
];
}
else
{
label
nei
=
faceNeighbour
[
facei
];
nbrCelli
=
gi
.
toGlobal
(
nei
);
nbrCc
=
cellCentres
[
nei
];
isValid
=
isValidDonor
[
nei
];
}
}
SubList
<
label
>
current
(
stencil
,
compacti
);
if
(
!
current
.
found
(
nbrCelli
))
if
(
isValid
)
{
stencil
[
compacti
]
=
nbrCelli
;
stencilPoints
[
compacti
++
]
=
nbrCc
;
SubList
<
label
>
current
(
stencil
,
compacti
);
if
(
!
current
.
found
(
nbrCelli
))
{
stencil
[
compacti
]
=
nbrCelli
;
stencilPoints
[
compacti
++
]
=
nbrCc
;
}
}
}
stencil
.
setSize
(
compacti
);
...
...
src/overset/cellCellStencil/cellCellStencil/cellCellStencil.H
View file @
0b703011
...
...
@@ -195,6 +195,7 @@ public:
(
const
globalIndex
&
gi
,
const
polyMesh
&
mesh
,
const
boolList
&
isValidDonor
,
const
labelList
&
selectedCells
,
labelListList
&
cellCells
,
pointListList
&
cellCellCentres
...
...
src/overset/cellCellStencil/inverseDistance/inverseDistanceCellCellStencil.C
View file @
0b703011
...
...
@@ -1434,6 +1434,16 @@ void Foam::cellCellStencils::inverseDistance::createStencil
// Special value for unused points
const
vector
greatPoint
(
GREAT
,
GREAT
,
GREAT
);
boolList
isValidDonor
(
mesh_
.
nCells
(),
true
);
forAll
(
cellTypes_
,
celli
)
{
if
(
cellTypes_
[
celli
]
==
HOLE
)
{
isValidDonor
[
celli
]
=
false
;
}
}
// Has acceptor been handled already?
bitSet
doneAcceptor
(
interpolationCells_
.
size
());
...
...
@@ -1513,6 +1523,7 @@ void Foam::cellCellStencils::inverseDistance::createStencil
(
globalCells
,
mesh_
,
isValidDonor
,
donorCells
,
donorCellCells
,
donorCellCentres
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment