partialFaceAreaWeightAMI.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 | Copyright (C) 2013-2016 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::partialFaceAreaWeightAMI
26 
27 Description
28  Partial face area weighted Arbitrary Mesh Interface (AMI) method
29 
30 SourceFiles
31  partialFaceAreaWeightAMI.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef partialFaceAreaWeightAMI_H
36 #define partialFaceAreaWeightAMI_H
37 
38 #include "faceAreaWeightAMI.H"
39 
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 
42 namespace Foam
43 {
44 
45 /*---------------------------------------------------------------------------*\
46  Class partialFaceAreaWeightAMI Declaration
47 \*---------------------------------------------------------------------------*/
48 
49 template<class SourcePatch, class TargetPatch>
51 :
52  public faceAreaWeightAMI<SourcePatch, TargetPatch>
53 {
54 
55 private:
56 
57  // Private Member Functions
58 
59  //- Disallow default bitwise copy construct
61 
62  //- Disallow default bitwise assignment
63  void operator=(const partialFaceAreaWeightAMI&);
64 
65  // Marching front
66 
67  //- Set the source and target seed faces
68  virtual void setNextFaces
69  (
70  label& startSeedI,
71  label& srcFacei,
72  label& tgtFacei,
73  const boolList& mapFlag,
74  labelList& seedFaces,
75  const DynamicList<label>& visitedFaces,
76  bool errorOnNotFound = true
77  ) const;
78 
79 
80 public:
81 
82  //- Runtime type information
83  TypeName("partialFaceAreaWeightAMI");
84 
85 
86  // Constructors
87 
88  //- Construct from components
90  (
91  const SourcePatch& srcPatch,
92  const TargetPatch& tgtPatch,
93  const scalarField& srcMagSf,
94  const scalarField& tgtMagSf,
96  const bool reverseTarget = false,
97  const bool requireMatch = true
98  );
99 
100 
101  //- Destructor
102  virtual ~partialFaceAreaWeightAMI();
103 
104 
105  // Member Functions
106 
107  // Access
108 
109  //- Flag to indicate that interpolation patches are conformal
110  virtual bool conformal() const;
111 
112 
113  // Manipulation
114 
115  //- Update addressing and weights
116  virtual void calculate
117  (
118  labelListList& srcAddress,
119  scalarListList& srcWeights,
120  labelListList& tgtAddress,
121  scalarListList& tgtWeights,
122  label srcFacei = -1,
123  label tgtFacei = -1
124  );
125 };
126 
127 
128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 
130 } // End namespace Foam
131 
132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 
134 #ifdef NoRepository
135  #include "partialFaceAreaWeightAMI.C"
136 #endif
137 
138 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
139 
140 #endif
141 
142 // ************************************************************************* //
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
virtual ~partialFaceAreaWeightAMI()
Destructor.
Face area weighted Arbitrary Mesh Interface (AMI) method.
virtual void calculate(labelListList &srcAddress, scalarListList &srcWeights, labelListList &tgtAddress, scalarListList &tgtWeights, label srcFacei=-1, label tgtFacei=-1)
Update addressing and weights.
Partial face area weighted Arbitrary Mesh Interface (AMI) method.
virtual bool conformal() const
Flag to indicate that interpolation patches are conformal.
TypeName("partialFaceAreaWeightAMI")
Runtime type information.
Namespace for OpenFOAM.