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 "interpolation.H"
00027 #include <finiteVolume/volFields.H>
00028
00029
00030
00031 template<class Type>
00032 Foam::autoPtr<Foam::interpolation<Type> >
00033 Foam::interpolation<Type>::New
00034 (
00035 const word& interpolationType,
00036 const GeometricField<Type, fvPatchField, volMesh>& psi
00037 )
00038 {
00039 typename dictionaryConstructorTable::iterator cstrIter =
00040 dictionaryConstructorTablePtr_
00041 ->find(interpolationType);
00042
00043 if (cstrIter == dictionaryConstructorTablePtr_->end())
00044 {
00045 FatalErrorIn
00046 (
00047 "interpolation::New(const word&, "
00048 "const GeometricField<Type, fvPatchField, volMesh>&)"
00049 ) << "Unknown interpolation type " << interpolationType
00050 << " for field " << psi.name() << nl << nl
00051 << "Valid interpolation types : " << endl
00052 << dictionaryConstructorTablePtr_->sortedToc()
00053 << exit(FatalError);
00054 }
00055
00056 return autoPtr<interpolation<Type> >(cstrIter()(psi));
00057 }
00058
00059
00060 template<class Type>
00061 Foam::autoPtr<Foam::interpolation<Type> >
00062 Foam::interpolation<Type>::New
00063 (
00064 const dictionary& interpolationSchemes,
00065 const GeometricField<Type, fvPatchField, volMesh>& psi
00066 )
00067 {
00068 return New(word(interpolationSchemes.lookup(psi.name())), psi);
00069 }
00070
00071
00072