Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / OpenFOAM / fields / pointPatchFields / derived / fixedNormalSlip / fixedNormalSlipPointPatchField.C
blob02a3c1f229aef976c4857204335420caec4b5b83
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2010 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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.
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.
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/>.
24 \*---------------------------------------------------------------------------*/
26 #include "fixedNormalSlipPointPatchField.H"
28 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
30 template<class Type>
31 Foam::fixedNormalSlipPointPatchField<Type>::fixedNormalSlipPointPatchField
33     const pointPatch& p,
34     const DimensionedField<Type, pointMesh>& iF
37     slipPointPatchField<Type>(p, iF),
38     n_(vector::max)
42 template<class Type>
43 Foam::fixedNormalSlipPointPatchField<Type>::fixedNormalSlipPointPatchField
45     const pointPatch& p,
46     const DimensionedField<Type, pointMesh>& iF,
47     const dictionary& dict
50     slipPointPatchField<Type>(p, iF, dict),
51     n_(dict.lookup("n"))
55 template<class Type>
56 Foam::fixedNormalSlipPointPatchField<Type>::fixedNormalSlipPointPatchField
58     const fixedNormalSlipPointPatchField<Type>& ptf,
59     const pointPatch& p,
60     const DimensionedField<Type, pointMesh>& iF,
61     const pointPatchFieldMapper& mapper
64     slipPointPatchField<Type>(ptf, p, iF, mapper),
65     n_(ptf.n_)
69 template<class Type>
70 Foam::fixedNormalSlipPointPatchField<Type>::fixedNormalSlipPointPatchField
72     const fixedNormalSlipPointPatchField<Type>& ptf,
73     const DimensionedField<Type, pointMesh>& iF
76     slipPointPatchField<Type>(ptf, iF),
77     n_(ptf.n_)
81 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
83 template<class Type>
84 void Foam::fixedNormalSlipPointPatchField<Type>::evaluate
86     const Pstream::commsTypes
89     tmp<Field<Type> > tvalues =
90         transform(I - n_*n_, this->patchInternalField());
92     // Get internal field to insert values into
93     Field<Type>& iF = const_cast<Field<Type>&>(this->internalField());
95     this->setInInternalField(iF, tvalues());
99 template<class Type>
100 void Foam::fixedNormalSlipPointPatchField<Type>::write(Ostream& os) const
102     slipPointPatchField<Type>::write(os);
103     os.writeKeyword("n")
104         << n_ << token::END_STATEMENT << nl;
108 // ************************************************************************* //