OpenFOAM logo
Open Source CFD Toolkit

surfaceNormalFixedValueFvPatchVectorField.H

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   =========                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 1991-2005 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software; you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by the
00013     Free Software Foundation; either version 2 of the License, or (at your
00014     option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM; if not, write to the Free Software Foundation,
00023     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00024 
00025 Class
00026     surfaceNormalFixedValueFvPatchVectorField
00027 
00028 Description
00029     Describes a surface normal vector boundary condition by its magnitude.
00030     Note: The value is positive for outward-pointing vectors
00031 
00032 SourceFiles
00033     surfaceNormalFixedValueFvPatchVectorField.C
00034 
00035 \*---------------------------------------------------------------------------*/
00036 
00037 #ifndef surfaceNormalFixedValueFvPatchVectorField_H
00038 #define surfaceNormalFixedValueFvPatchVectorField_H
00039 
00040 #include "fvPatchFields.H"
00041 #include "fixedValueFvPatchFields.H"
00042 
00043 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00044 
00045 namespace Foam
00046 {
00047 
00048 /*---------------------------------------------------------------------------*\
00049                  Class surfaceNormalFixedValueFvPatch Declaration
00050 \*---------------------------------------------------------------------------*/
00051 
00052 class surfaceNormalFixedValueFvPatchVectorField
00053 :
00054     public fixedValueFvPatchVectorField
00055 {
00056     // Private data
00057     
00058         scalarField refValue_;
00059 
00060 
00061 public:
00062 
00063     //- Runtime type information
00064     TypeName("surfaceNormalFixedValue");
00065 
00066 
00067     // Constructors
00068 
00069         //- Construct from patch and internal field
00070         surfaceNormalFixedValueFvPatchVectorField
00071         (
00072             const fvPatch&,
00073             const vectorField&
00074         );
00075 
00076         //- Construct from patch, internal field and dictionary
00077         surfaceNormalFixedValueFvPatchVectorField
00078         (
00079             const fvPatch&,
00080             const vectorField&,
00081             const dictionary&
00082         );
00083 
00084         //- Construct by mapping given
00085         //  surfaceNormalFixedValueFvPatchVectorField
00086         //  onto a new patch
00087         surfaceNormalFixedValueFvPatchVectorField
00088         (
00089             const surfaceNormalFixedValueFvPatchVectorField&,
00090             const fvPatch&,
00091             const vectorField&,
00092             const fvPatchFieldMapper&
00093         );
00094 
00095         //- Construct and return a clone
00096         virtual tmp<fvPatchVectorField> clone() const
00097         {
00098             return tmp<fvPatchVectorField>
00099             (
00100                 new surfaceNormalFixedValueFvPatchVectorField(*this)
00101             );
00102         }
00103 
00104         //- Construct as copy setting internal field reference
00105         surfaceNormalFixedValueFvPatchVectorField
00106         (
00107             const surfaceNormalFixedValueFvPatchVectorField&,
00108             const vectorField&
00109         );
00110 
00111         //- Construct and return a clone setting internal field reference
00112         virtual tmp<fvPatchVectorField> clone(const vectorField& iF) const
00113         {
00114             return tmp<fvPatchVectorField>
00115             (
00116                 new surfaceNormalFixedValueFvPatchVectorField
00117                 (
00118                     *this,
00119                     iF
00120                 )
00121             );
00122         }
00123 
00124 
00125 
00126     // Member functions
00127 
00128         // Mapping functions
00129 
00130             //- Map (and resize as needed) from self given a mapping object
00131             virtual void autoMap
00132             (
00133                 const fvPatchFieldMapper&
00134             );
00135 
00136             //- Reverse map the given fvPatchField onto this fvPatchField
00137             virtual void rmap
00138             (
00139                 const fvPatchVectorField&,
00140                 const labelList&
00141             );
00142 
00143 
00144         //- Write
00145         virtual void write(Ostream&) const;
00146 };
00147 
00148 
00149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00150 
00151 } // End namespace Foam
00152 
00153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00154 
00155 #endif
00156 
00157 // ************************************************************************* //
For further information go to www.openfoam.org