FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

MarshakRadiationMixedFvPatchScalarField.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-2010 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
00013     the Free Software Foundation, either version 3 of the License, or
00014     (at your 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, see <http://www.gnu.org/licenses/>.
00023 
00024 Class
00025     Foam::MarshakRadiationFvPatchScalarField
00026 
00027 Description
00028     Marshak boundary for radiation G field
00029     - radiation temperature taken from patch value
00030 
00031 SourceFiles
00032     MarshakRadiationFvPatchScalarField.C
00033 
00034 \*---------------------------------------------------------------------------*/
00035 
00036 #ifndef MarshakRadiationMixedFvPatchField_H
00037 #define MarshakRadiationMixedFvPatchField_H
00038 
00039 #include <finiteVolume/mixedFvPatchFields.H>
00040 
00041 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00042 
00043 namespace Foam
00044 {
00045 
00046 /*---------------------------------------------------------------------------*\
00047              Class MarshakRadiationFvPatchScalarField Declaration
00048 \*---------------------------------------------------------------------------*/
00049 
00050 class MarshakRadiationFvPatchScalarField
00051 :
00052     public mixedFvPatchScalarField
00053 {
00054 
00055     // Private data
00056 
00057         //- Name of temperature field
00058         word TName_;
00059 
00060         //- Emissivity
00061         scalar emissivity_;
00062 
00063 
00064 public:
00065 
00066     //- Runtime type information
00067     TypeName("MarshakRadiation");
00068 
00069 
00070     // Constructors
00071 
00072         //- Construct from patch and internal field
00073         MarshakRadiationFvPatchScalarField
00074         (
00075             const fvPatch&,
00076             const DimensionedField<scalar, volMesh>&
00077         );
00078 
00079         //- Construct from patch, internal field and dictionary
00080         MarshakRadiationFvPatchScalarField
00081         (
00082             const fvPatch&,
00083             const DimensionedField<scalar, volMesh>&,
00084             const dictionary&
00085         );
00086 
00087         //- Construct by mapping given MarshakRadiationFvPatchField onto a new
00088         //  patch
00089         MarshakRadiationFvPatchScalarField
00090         (
00091             const MarshakRadiationFvPatchScalarField&,
00092             const fvPatch&,
00093             const DimensionedField<scalar, volMesh>&,
00094             const fvPatchFieldMapper&
00095         );
00096 
00097         //- Construct as copy
00098         MarshakRadiationFvPatchScalarField
00099         (
00100             const MarshakRadiationFvPatchScalarField&
00101         );
00102 
00103         //- Construct and return a clone
00104         virtual tmp<fvPatchScalarField> clone() const
00105         {
00106             return tmp<fvPatchScalarField>
00107             (
00108                 new MarshakRadiationFvPatchScalarField(*this)
00109             );
00110         }
00111 
00112         //- Construct as copy setting internal field reference
00113         MarshakRadiationFvPatchScalarField
00114         (
00115             const MarshakRadiationFvPatchScalarField&,
00116             const DimensionedField<scalar, volMesh>&
00117         );
00118 
00119         //- Construct and return a clone setting internal field reference
00120         virtual tmp<fvPatchScalarField> clone
00121         (
00122             const DimensionedField<scalar, volMesh>& iF
00123         ) const
00124         {
00125             return tmp<fvPatchScalarField>
00126             (
00127                 new MarshakRadiationFvPatchScalarField(*this, iF)
00128             );
00129         }
00130 
00131 
00132     // Member functions
00133 
00134         // Access
00135 
00136             //- Return the temperature field name
00137             const word& TName() const
00138             {
00139                 return TName_;
00140             }
00141 
00142             //- Return reference to the temperature field name to allow
00143             //  adjustment
00144             word& TName()
00145             {
00146                 return TName_;
00147             }
00148 
00149             //- Return the emissivity
00150             const scalar& emissivity() const
00151             {
00152                 return emissivity_;
00153             }
00154 
00155             //- Return reference to the emissivity to allow adjustment
00156             scalar& emissivity()
00157             {
00158                 return emissivity_;
00159             }
00160 
00161 
00162         // Mapping functions
00163 
00164             //- Map (and resize as needed) from self given a mapping object
00165             virtual void autoMap
00166             (
00167                 const fvPatchFieldMapper&
00168             );
00169 
00170             //- Reverse map the given fvPatchField onto this fvPatchField
00171             virtual void rmap
00172             (
00173                 const fvPatchScalarField&,
00174                 const labelList&
00175             );
00176 
00177 
00178         // Evaluation functions
00179 
00180             //- Update the coefficients associated with the patch field
00181             virtual void updateCoeffs();
00182 
00183 
00184         // I-O
00185 
00186             //- Write
00187             virtual void write(Ostream&) const;
00188 };
00189 
00190 
00191 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00192 
00193 } // End namespace Foam
00194 
00195 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00196 
00197 #endif
00198 
00199 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines