OpenFOAM: API Guide
v2006
The open source CFD toolbox
boundaryAdjointContributionIncompressibleTemplates.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) 2007-2019 PCOpt/NTUA
9
Copyright (C) 2013-2019 FOSS GP
10
Copyright (C) 2019 OpenCFD Ltd.
11
-------------------------------------------------------------------------------
12
License
13
This file is part of OpenFOAM.
14
15
OpenFOAM is free software: you can redistribute it and/or modify it
16
under the terms of the GNU General Public License as published by
17
the Free Software Foundation, either version 3 of the License, or
18
(at your option) any later version.
19
20
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
21
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
23
for more details.
24
25
You should have received a copy of the GNU General Public License
26
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
27
28
\*---------------------------------------------------------------------------*/
29
30
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
31
32
template
<
class
returnType,
class
sourceType,
class
castType>
33
Foam::tmp<Foam::Field<returnType>
>
34
Foam::boundaryAdjointContributionIncompressible::sumContributions
35
(
36
PtrList<sourceType>
& sourceList,
37
const
fvPatchField<returnType>
&(castType::*boundaryFunction)(
const
label)
38
)
39
{
40
// Objective function contribution
41
auto
tdJtotdvar =
tmp<Field<returnType>
>
::New
(patch_.size(),
Zero
);
42
auto
& dJtotdvar = tdJtotdvar.ref();
43
44
// Get weighthed contribution
45
for
(sourceType& funcI : sourceList)
46
{
47
castType& cfuncI = refCast<castType>(funcI);
48
const
fvPatchField<returnType>
& dJdvar =
49
(cfuncI.*boundaryFunction)(patch_.index());
50
dJtotdvar += cfuncI.weight()*dJdvar;
51
}
52
53
return
tdJtotdvar;
54
}
55
56
57
// ************************************************************************* //
Foam::fvPatchField
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition:
volSurfaceMapping.H:50
Foam::tmp
A class for managing temporary objects.
Definition:
PtrList.H:59
Foam::Zero
static constexpr const zero Zero
Global zero (0)
Definition:
zero.H:131
Foam::PtrList
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
Definition:
List.H:62
Foam::New
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
Definition:
DimensionedFieldReuseFunctions.H:105
Foam::boundaryAdjointContributionIncompressible::sumContributions
tmp< Field< returnType > > sumContributions(PtrList< sourceType > &sourceList, const fvPatchField< returnType > &(castType::*boundaryFunction)(const label))
src
optimisation
adjointOptimisation
adjoint
boundaryAdjointContributions
boundaryAdjointContributionIncompressible
boundaryAdjointContributionIncompressibleTemplates.C
Generated by
1.8.17
OPENFOAM® is a registered
trademark
of OpenCFD Ltd.