Merge remote-tracking branch 'origin/BUGFIX/radiationBCConstructor'
[foam-extend-3.0.git] / applications / solvers / coupled / conjugateHeatFoam / conjugateHeatTransfer / fvPatchFields / externalRadiation / externalRadiationSource / externalRadiationSource.H
blob8df431444c903f54d71107b497cca443a80a33f2
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     |
5     \\  /    A nd           | For copyright notice see file Copyright
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::externalRadiationSource
27 Description
28     Virtual base class for external radiation sources
30       
31 SourceFiles
32     externalRadiationSource.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef externalRadiationSource_H
37 #define externalRadiationSource_H
39 #include "scalarField.H"
40 #include "tmp.H"
41 #include "fvPatch.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 namespace Foam
48 /*---------------------------------------------------------------------------*\
49                   Class wallHeatTransferFvPatch Declaration
50 \*---------------------------------------------------------------------------*/
52 class externalRadiationSource
54     // Private data
56         //- name
57         word name_;
60 public:
62     //- Runtime type information
63     TypeName("externalRadiationSource");
65     // Declare run-time constructor selection table
67         declareRunTimeSelectionTable
68         (
69             autoPtr,
70             externalRadiationSource,
71             dictionary,
72             (
73                 const word& name,
74                 const dictionary& dict,
75                 const fvPatch& p
76             ),
77             (name, dict, p)
78         );
81     // Destructor
83         virtual ~externalRadiationSource()
84         {};
86     // Selectors
88         //- Return a reference to the selected thermal model
89         static autoPtr<externalRadiationSource> New
90         (
91             const word& name,
92             const dictionary& dict,
93             const fvPatch& p
94         );
97         //- Construct and return a clone
98         virtual autoPtr<externalRadiationSource> clone() const
99         {
100             notImplemented("autoPt<externalRadiationSource> clone() const");
101             return autoPtr<externalRadiationSource>(NULL);
103             return autoPtr<externalRadiationSource>
104             (
105                 new externalRadiationSource(*this)
106             );
107         };
109     // Constructors
111         //- Construct from components
112         explicit externalRadiationSource
113         (
114             const word& name
115         );
118     // Member functions
120         // Access
122         const word& name() const
123         {
124             return name_;
125         }
127         // Mapping functions
129         // Evaluation functions
131             //- Return heat flux
132             virtual tmp<scalarField> q(const scalarField& Tw) const
133             {
134                 notImplemented
135                 (
136                     type() +"::q(const scalarField& Tw) const"
137                 );
139                 return tmp<scalarField>(NULL);
140             };
143         //- Write
145             virtual void write(Ostream&) const;
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 } // End namespace Foam
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 #endif
157 // ************************************************************************* //