extendedFaceToCellStencil.H
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) 2011-2016 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::extendedFaceToCellStencil
28 
29 Description
30  Note: transformations on coupled patches not supported. Problem is the
31  positions of cells reachable through these patches.
32 
33 SourceFiles
34  extendedFaceToCellStencil.C
35  extendedFaceToCellStencilTemplates.C
36 
37 \*---------------------------------------------------------------------------*/
38 
39 #ifndef extendedFaceToCellStencil_H
40 #define extendedFaceToCellStencil_H
41 
42 #include "mapDistribute.H"
43 #include "volFields.H"
44 #include "surfaceFields.H"
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 namespace Foam
49 {
50 
51 class globalIndex;
52 
53 /*---------------------------------------------------------------------------*\
54  Class extendedFaceToCellStencil Declaration
55 \*---------------------------------------------------------------------------*/
56 
58 {
59 protected:
60 
61  // Protected data
62 
63  const polyMesh& mesh_;
64 
65 public:
66 
67  // Constructors
68 
69  //- Construct from mesh
70  explicit extendedFaceToCellStencil(const polyMesh&);
71 
72 
73  // Member Functions
74 
75  //- Use map to get the data into stencil order
76  template<class T>
77  static void collectData
78  (
79  const mapDistribute& map,
80  const labelListList& stencil,
82  List<List<T>>& stencilFld
83  );
84 
85  //- Sum surface field contributions to create cell values
86  template<class Type>
88  (
89  const mapDistribute& map,
90  const labelListList& stencil,
92  const List<List<scalar>>& stencilWeights
93  );
94 };
95 
96 
97 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
98 
99 } // End namespace Foam
100 
101 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
102 
103 #ifdef NoRepository
105 #endif
106 
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
108 
109 #endif
110 
111 // ************************************************************************* //
volFields.H
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::extendedFaceToCellStencil
Note: transformations on coupled patches not supported. Problem is the positions of cells reachable t...
Definition: extendedFaceToCellStencil.H:56
surfaceFields.H
Foam::surfaceFields.
Foam::polyMesh
Mesh consisting of general polyhedral cells.
Definition: polyMesh.H:77
Foam::extendedFaceToCellStencil::extendedFaceToCellStencil
extendedFaceToCellStencil(const polyMesh &)
Construct from mesh.
Definition: extendedFaceToCellStencil.C:34
Foam::mapDistribute
Class containing processor-to-processor mapping information.
Definition: mapDistribute.H:163
fld
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
Definition: gmvOutputLagrangian.H:23
Foam::extendedFaceToCellStencil::weightedSum
static tmp< GeometricField< Type, fvPatchField, volMesh > > weightedSum(const mapDistribute &map, const labelListList &stencil, const GeometricField< Type, fvsPatchField, surfaceMesh > &fld, const List< List< scalar >> &stencilWeights)
Sum surface field contributions to create cell values.
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::extendedFaceToCellStencil::collectData
static void collectData(const mapDistribute &map, const labelListList &stencil, const GeometricField< T, fvsPatchField, surfaceMesh > &fld, List< List< T >> &stencilFld)
Use map to get the data into stencil order.
Foam::extendedFaceToCellStencil::mesh_
const polyMesh & mesh_
Definition: extendedFaceToCellStencil.H:62
mapDistribute.H
Foam::List< labelList >
extendedFaceToCellStencilTemplates.C
Foam::GeometricField
Generic GeometricField class.
Definition: areaFieldsFwd.H:53