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
473331a6
Commit
473331a6
authored
Sep 05, 2013
by
mattijs
Browse files
ENH: fvMeshSubset: surface fields mapping coupled faces
parent
90a8332f
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/finiteVolume/fvMesh/fvMeshSubset/fvMeshSubsetInterpolate.C
View file @
473331a6
...
...
@@ -272,10 +272,8 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > fvMeshSubset::interpolate
{
// Mapped from internal face. Do what? Leave up to
// patchField. This would require also to pass in
// original internal field so for now keep original
// behaviour of mapping original patch face 0
//directAddressing[i] = -1;
directAddressing
[
i
]
=
0
;
// original internal field so for now do as postprocessing
directAddressing
[
i
]
=
-
1
;
}
}
...
...
@@ -290,27 +288,32 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > fvMeshSubset::interpolate
patchFieldSubset
(
directAddressing
)
)
);
}
}
// Map exposed internal faces. Note: Only necessary if exposed faces added
// into existing patch but since we don't know that at this point...
// Ideally the vf.internalField should be passed in to the mapper
// constructor above so it can handle this.
forAll
(
bf
,
patchI
)
{
fvsPatchField
<
Type
>&
pfld
=
bf
[
patchI
];
label
meshFaceI
=
pfld
.
patch
().
start
();
// Postprocess patch field for exposed faces
forAll
(
pfld
,
i
)
{
label
oldFaceI
=
faceMap
[
meshFaceI
++
];
fvsPatchField
<
Type
>&
pfld
=
bf
[
patchI
];
if
(
oldFaceI
<
vf
.
internalField
().
size
()
)
forAll
(
pfld
,
i
)
{
pfld
[
i
]
=
vf
.
internalField
()[
oldFaceI
];
label
baseFaceI
=
faceMap
[
subPatch
.
start
()
+
i
];
if
(
baseFaceI
<
vf
.
internalField
().
size
())
{
// Exposed internal face
pfld
[
i
]
=
vf
.
internalField
()[
baseFaceI
];
}
else
{
// Exposed face from other patch.
// Only possible in case of a coupled boundary
label
patchI
=
vf
.
mesh
().
boundaryMesh
().
whichPatch
(
baseFaceI
);
const
fvPatch
&
otherPatch
=
vf
.
mesh
().
boundary
()[
patchI
];
label
patchFaceI
=
otherPatch
.
patch
().
whichFace
(
baseFaceI
);
pfld
[
i
]
=
vf
.
boundaryField
()[
patchI
][
patchFaceI
];
}
}
}
}
...
...
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