Loading...
Searching...
No Matches
fixedNormalSlipPointPatchField.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) 2011-2016 OpenFOAM Foundation
9 Copyright (C) 2025 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
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
30
31// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
32
33template<class Type>
35(
36 const pointPatch& p,
38)
40 slipPointPatchField<Type>(p, iF),
41 n_(vector::max)
42{}
43
44
45template<class Type>
47(
48 const pointPatch& p,
50 const dictionary& dict
51)
53 slipPointPatchField<Type>(p, iF, dict),
54 n_(dict.get<vector>("n"))
55{}
56
57
58template<class Type>
60(
62 const pointPatch& p,
64 const pointPatchFieldMapper& mapper
65)
67 slipPointPatchField<Type>(ptf, p, iF, mapper),
68 n_(ptf.n_)
69{}
70
71
72template<class Type>
74(
77)
78:
79 slipPointPatchField<Type>(ptf, iF),
80 n_(ptf.n_)
81{}
82
83
84// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
85
86template<class Type>
88(
90)
91{
93 {
94 // Rotational-invariant type : no-op
95 }
96 else
97 {
98 tmp<Field<Type>> tvalues
99 (
100 transform(I - n_*n_, this->patchInternalField())
101 );
102
103 // Get internal field to insert values into
104 auto& iF = const_cast<Field<Type>&>(this->primitiveField());
106 this->setInInternalField(iF, tvalues());
107 }
108}
109
110
111template<class Type>
113{
114 slipPointPatchField<Type>::write(os);
115 os.writeEntry("n", n_);
116}
117
118
119// ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
Definition Field.H:172
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition Ostream.H:59
commsTypes
Communications types.
Definition UPstream.H:81
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
fixedNormalSlipPointPatchField(const pointPatch &, const DimensionedField< Type, pointMesh > &)
Construct from patch and internal field.
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::buffered)
Update the patch field.
Foam::pointPatchFieldMapper.
void patchInternalField(const UList< Type1 > &internalData, const labelUList &addressing, UList< Type1 > &pfld) const
Extract field using specified addressing.
void setInInternalField(Field< Type1 > &iF, const Field< Type1 > &pF, const labelUList &meshPoints) const
Given the internal field and a patch field, set the patch field in the internal field.
const Field< Type > & primitiveField() const noexcept
Return const-reference to the internal field values.
virtual void write(Ostream &os) const
Write.
Basic pointPatch represents a set of points from the mesh.
Definition pointPatch.H:67
Foam::slipPointPatchField.
slipPointPatchField(const pointPatch &, const DimensionedField< Type, pointMesh > &)
Construct from patch and internal field.
A class for managing temporary objects.
Definition tmp.H:75
volScalarField & p
OBJstream os(runTime.globalPath()/outputName)
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
Definition hashSets.C:40
refinementData transform(const tensor &, const refinementData val)
No-op rotational transform for base types.
static const Identity< scalar > I
Definition Identity.H:100
constexpr bool is_rotational_vectorspace_v
The is_rotational_vectorspace value of Type.
Definition pTraits.H:251
Vector< scalar > vector
Definition vector.H:57
dictionary dict