cylinderImplicitFunction.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) 2019 OpenCFD Ltd.
9  Copyright (C) 2019-2020 DLR
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 
31 
32 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33 
34 namespace Foam
35 {
36  namespace implicitFunctions
37  {
38  defineTypeNameAndDebug(cylinderImplicitFunction, 0);
40  (
41  implicitFunction,
42  cylinderImplicitFunction,
43  dict
44  );
45  }
46 }
47 
48 
49 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
50 
52 (
53  const point& origin,
54  const scalar radius,
55  const scalar scale,
56  const vector& direction
57 )
58 :
59  origin_(origin),
60  radius_(radius),
61  scale_(scale),
62  direction_(normalised(direction)),
63  project_(tensor::I - direction_*direction_) // outer product
64 {}
65 
66 
68 (
69  const dictionary& dict
70 )
71 :
72  // __INTEL_COMPILER bug with inheriting constructors?? (issue #1821)
73  origin_(dict.get<point>("origin")),
74  radius_(dict.get<scalar>("radius")),
75  scale_(dict.getOrDefault<scalar>("scale", 1)),
76  direction_(dict.get<vector>("direction").normalise()),
77  project_(tensor::I - direction_*direction_) // outer product
78 {}
79 
80 
81 // ************************************************************************* //
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
List of values generated by applying the access operation to each list item.
dictionary dict
uint8_t direction
Definition: direction.H:46
Tensor< scalar > tensor
Definition: symmTensor.H:57
quaternion normalised(const quaternion &q)
Return the normalised (unit) quaternion of the given quaternion.
Definition: quaternionI.H:673
Macros for easy insertion into run-time selection tables.
static const Identity< scalar > I
Definition: Identity.H:100
Vector< scalar > vector
Definition: vector.H:57
cylinderImplicitFunction(const point &origin, const scalar radius, const scalar scale, const vector &direction)
Construct from components.
defineTypeNameAndDebug(combustionModel, 0)
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
vector point
Point is a vector.
Definition: point.H:37
Namespace for OpenFOAM.