1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
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
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/>.
25 Foam::jumpCyclicFvPatchField
28 Foam::jumpCyclicFvPatchField
31 jumpCyclicFvPatchField.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef jumpCyclicFvPatchField_H
36 #define jumpCyclicFvPatchField_H
38 #include "cyclicFvPatchField.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 /*---------------------------------------------------------------------------*\
46 Class cyclicFvPatch Declaration
47 \*---------------------------------------------------------------------------*/
50 class jumpCyclicFvPatchField
52 public cyclicFvPatchField<Type>
57 //- Runtime type information
58 TypeName("jumpCyclic");
63 //- Construct from patch and internal field
64 jumpCyclicFvPatchField
67 const DimensionedField<Type, volMesh>&
70 //- Construct from patch, internal field and dictionary
71 jumpCyclicFvPatchField
74 const DimensionedField<Type, volMesh>&,
78 //- Construct by mapping given jumpCyclicFvPatchField onto a new patch
79 jumpCyclicFvPatchField
81 const jumpCyclicFvPatchField<Type>&,
83 const DimensionedField<Type, volMesh>&,
84 const fvPatchFieldMapper&
88 jumpCyclicFvPatchField
90 const jumpCyclicFvPatchField<Type>&
93 //- Construct as copy setting internal field reference
94 jumpCyclicFvPatchField
96 const jumpCyclicFvPatchField<Type>&,
97 const DimensionedField<Type, volMesh>&
105 //- Return the interface type
106 virtual const word& interfaceFieldType() const
108 return cyclicFvPatchField<Type>::type();
111 //- Return the "jump" across the patch as a "half" field
112 virtual tmp<Field<scalar> > jump() const = 0;
115 // Evaluation functions
117 //- Return neighbour coupled given internal cell data
118 tmp<Field<Type> > patchNeighbourField() const;
120 //- Update result field based on interface functionality
121 virtual void updateInterfaceMatrix
123 const scalarField& psiInternal,
126 const scalarField& coeffs,
127 const direction cmpt,
128 const Pstream::commsTypes commsType
133 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
135 } // End namespace Foam
137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
140 # include "jumpCyclicFvPatchField.C"
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 // ************************************************************************* //