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 "solid.H"
00027
00028
00029
00030 Foam::autoPtr<Foam::solid> Foam::solid::New(Istream& is)
00031 {
00032 if (debug)
00033 {
00034 Info<< "solid::New(Istream&): "
00035 << "constructing solid"
00036 << endl;
00037 }
00038
00039 word solidType(is);
00040
00041 word coeffs(is);
00042
00043 if (coeffs == "defaultCoeffs")
00044 {
00045 ConstructorTable::iterator cstrIter =
00046 ConstructorTablePtr_->find(solidType);
00047
00048 if (cstrIter == ConstructorTablePtr_->end())
00049 {
00050 FatalErrorIn("solid::New(Istream&)")
00051 << "Unknown solid type " << solidType << nl << nl
00052 << "Valid solid types are:" << endl
00053 << ConstructorTablePtr_->sortedToc()
00054 << exit(FatalError);
00055 }
00056
00057 return autoPtr<solid>(cstrIter()());
00058 }
00059 else if (coeffs == "coeffs")
00060 {
00061 IstreamConstructorTable::iterator cstrIter =
00062 IstreamConstructorTablePtr_->find(solidType);
00063
00064 if (cstrIter == IstreamConstructorTablePtr_->end())
00065 {
00066 FatalErrorIn("solid::New(Istream&)")
00067 << "Unknown solid type " << solidType << nl << nl
00068 << "Valid solid types are:" << endl
00069 << IstreamConstructorTablePtr_->sortedToc()
00070 << exit(FatalError);
00071 }
00072
00073 return autoPtr<solid>(cstrIter()(is));
00074 }
00075 else
00076 {
00077 FatalErrorIn("solid::New(Istream&)")
00078 << "solid type " << solidType
00079 << ", option " << coeffs << " given"
00080 << ", should be coeffs or defaultCoeffs"
00081 << exit(FatalError);
00082
00083 return autoPtr<solid>(NULL);
00084 }
00085 }
00086
00087
00088