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 
00027 
00028 
00029 #include <finiteVolume/fv.H>
00030 #include <OpenFOAM/HashTable.H>
00031 
00032 
00033 
00034 namespace Foam
00035 {
00036 
00037 
00038 
00039 namespace fv
00040 {
00041 
00042 
00043 
00044 template<class Type>
00045 tmp<gradScheme<Type> > gradScheme<Type>::New
00046 (
00047     const fvMesh& mesh,
00048     Istream& schemeData
00049 )
00050 {
00051     if (fv::debug)
00052     {
00053         Info<< "gradScheme<Type>::New(Istream& schemeData) : "
00054                "constructing gradScheme<Type>"
00055             << endl;
00056     }
00057 
00058     if (schemeData.eof())
00059     {
00060         FatalIOErrorIn
00061         (
00062             "gradScheme<Type>::New(Istream& schemeData)",
00063             schemeData
00064         )   << "Grad scheme not specified" << endl << endl
00065             << "Valid grad schemes are :" << endl
00066             << IstreamConstructorTablePtr_->sortedToc()
00067             << exit(FatalIOError);
00068     }
00069 
00070     word schemeName(schemeData);
00071 
00072     typename IstreamConstructorTable::iterator cstrIter =
00073         IstreamConstructorTablePtr_->find(schemeName);
00074 
00075     if (cstrIter == IstreamConstructorTablePtr_->end())
00076     {
00077         FatalIOErrorIn
00078         (
00079             "gradScheme<Type>::New(Istream& schemeData)",
00080             schemeData
00081         )   << "unknown grad scheme " << schemeName << endl << endl
00082             << "Valid grad schemes are :" << endl
00083             << IstreamConstructorTablePtr_->sortedToc()
00084             << exit(FatalIOError);
00085     }
00086 
00087     return cstrIter()(mesh, schemeData);
00088 }
00089 
00090 
00091 
00092 
00093 template<class Type>
00094 gradScheme<Type>::~gradScheme()
00095 {}
00096 
00097 
00098 
00099 
00100 } 
00101 
00102 
00103 
00104 } 
00105 
00106