Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <OpenFOAM/error.H>
00027 #include "radiationModel.H"
00028
00029
00030
00031 namespace Foam
00032 {
00033 namespace radiation
00034 {
00035
00036
00037
00038 autoPtr<radiationModel> radiationModel::New
00039 (
00040 const volScalarField& T
00041 )
00042 {
00043 word radiationModelTypeName;
00044
00045
00046
00047 {
00048 IOdictionary radiationPropertiesDict
00049 (
00050 IOobject
00051 (
00052 "radiationProperties",
00053 T.time().constant(),
00054 T.mesh(),
00055 IOobject::MUST_READ,
00056 IOobject::NO_WRITE,
00057 false
00058 )
00059 );
00060
00061 radiationPropertiesDict.lookup("radiationModel")
00062 >> radiationModelTypeName;
00063 }
00064
00065 Info<< "Selecting radiationModel " << radiationModelTypeName << endl;
00066
00067 dictionaryConstructorTable::iterator cstrIter =
00068 dictionaryConstructorTablePtr_->find(radiationModelTypeName);
00069
00070 if (cstrIter == dictionaryConstructorTablePtr_->end())
00071 {
00072 FatalErrorIn
00073 (
00074 "radiationModel::New(const volScalarField&)"
00075 ) << "Unknown radiationModel type " << radiationModelTypeName
00076 << nl << nl
00077 << "Valid radiationModel types are:" << nl
00078 << dictionaryConstructorTablePtr_->sortedToc()
00079 << exit(FatalError);
00080 }
00081
00082 return autoPtr<radiationModel>(cstrIter()(T));
00083 }
00084
00085
00086
00087
00088 }
00089 }
00090
00091