faPatchFaMeshTemplates.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2016-2017 Wikki Ltd
9  Copyright (C) 2021-2025 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 \*---------------------------------------------------------------------------*/
28 
29 #include "faPatch.H"
30 
31 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
32 
33 template<class GeometricField, class AnyType>
34 const typename GeometricField::Patch&
35 Foam::faPatch::lookupPatchField(const word& fldName) const
36 {
37  return
38  boundaryMesh().mesh().thisDb().template
39  lookupObject<GeometricField>(fldName)
40  .boundaryField()[this->index()];
41 }
42 
43 
44 template<class GeometricField>
45 const typename GeometricField::Patch*
46 Foam::faPatch::cfindPatchField(const word& fldName) const
47 {
48  const auto* fldptr =
49  boundaryMesh().mesh().thisDb().template
50  cfindObject<GeometricField>(fldName);
51 
52  if (fldptr)
53  {
54  return &(fldptr->boundaryField()[this->index()]);
55  }
56  else
57  {
58  return nullptr;
59  }
60 }
61 
62 
63 // ************************************************************************* //
const GeometricField::Patch & lookupPatchField(const word &fldName) const
Lookup the named field from the local registry and return the patch field corresponding to this patch...
Addressing for all faces on surface of mesh. Can either be read from polyMesh or from triSurface...
Definition: boundaryMesh.H:58
virtual const objectRegistry & thisDb() const
Reference to the mesh database.
Definition: faMesh.H:1203
A class for handling words, derived from Foam::string.
Definition: word.H:63
const GeometricField::Patch * cfindPatchField(const word &fldName) const
Lookup the named field (if any) from the local registry and return the patch field corresponding to t...
const faMesh & mesh() const noexcept
Return the mesh reference.
PatchField< Type > Patch
The patch field type for the GeometricBoundaryField.
const bMesh & mesh() const
Definition: boundaryMesh.H:259
label index() const noexcept
The index of this patch in the boundaryMesh.
const faBoundaryMesh & boundaryMesh() const noexcept
Return boundaryMesh reference.
Definition: faPatch.C:174