Loading...
Searching...
No Matches
cyclicFvsPatchField.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-2015 OpenFOAM Foundation
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26\*---------------------------------------------------------------------------*/
27
28#include "cyclicFvsPatchField.H"
29
30// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
31
32template<class Type>
34(
35 const fvPatch& p,
37)
39 coupledFvsPatchField<Type>(p, iF),
40 cyclicPatch_(refCast<const cyclicFvPatch>(p))
41{}
42
43
44template<class Type>
46(
47 const fvPatch& p,
49 const dictionary& dict
50)
51:
52 coupledFvsPatchField<Type>(p, iF, dict),
53 cyclicPatch_(refCast<const cyclicFvPatch>(p, dict))
54{
56 {
58 << "patch " << this->patch().index() << " not cyclic type. "
59 << "Patch type = " << p.type()
61 }
62}
63
64
65template<class Type>
67(
68 const cyclicFvsPatchField<Type>& ptf,
69 const fvPatch& p,
70 const DimensionedField<Type, surfaceMesh>& iF,
71 const fvPatchFieldMapper& mapper
72)
73:
74 coupledFvsPatchField<Type>(ptf, p, iF, mapper),
75 cyclicPatch_(refCast<const cyclicFvPatch>(p))
76{
77 if (!isA<cyclicFvPatch>(this->patch()))
78 {
80 << "Field type does not correspond to patch type for patch "
81 << this->patch().index() << "." << endl
82 << "Field type: " << typeName << endl
83 << "Patch type: " << this->patch().type()
84 << exit(FatalError);
85 }
86}
87
88
89template<class Type>
91(
92 const cyclicFvsPatchField<Type>& ptf
93)
95 coupledFvsPatchField<Type>(ptf),
96 cyclicPatch_(ptf.cyclicPatch_)
97{}
98
99
100template<class Type>
102(
103 const cyclicFvsPatchField<Type>& ptf,
105)
106:
107 coupledFvsPatchField<Type>(ptf, iF),
108 cyclicPatch_(ptf.cyclicPatch_)
109{}
110
111
112// ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Abstract base class for coupled patches.
coupledFvsPatchField(const fvPatch &, const DimensionedField< Type, surfaceMesh > &)
Construct from patch and internal field.
Cyclic-plane patch.
This boundary condition enforces a cyclic condition between a pair of boundaries.
cyclicFvsPatchField(const fvPatch &, const DimensionedField< Type, surfaceMesh > &)
Construct from patch and internal field.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
A FieldMapper for finite-volume patch fields.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition fvPatch.H:71
label index() const noexcept
The index of this patch in the boundary mesh.
Definition fvPatch.H:218
const fvPatch & patch() const noexcept
Return the patch.
volScalarField & p
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Definition error.H:629
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Definition error.H:600
Type & refCast(U &obj)
A dynamic_cast (for references) to Type reference.
Definition typeInfo.H:172
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition Ostream.H:519
const Type * isA(const U &obj)
Attempt dynamic_cast to Type.
Definition typeInfo.H:87
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
errorManipArg< error, int > exit(error &err, const int errNo=1)
Definition errorManip.H:125
dictionary dict