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 "dynamicFvMesh.H"
00027 #include <OpenFOAM/Time.H>
00028 #include <OpenFOAM/dlLibraryTable.H>
00029
00030
00031
00032 Foam::autoPtr<Foam::dynamicFvMesh> Foam::dynamicFvMesh::New(const IOobject& io)
00033 {
00034
00035
00036
00037 IOdictionary dynamicMeshDict
00038 (
00039 IOobject
00040 (
00041 "dynamicMeshDict",
00042 io.time().constant(),
00043 io.db(),
00044 IOobject::MUST_READ,
00045 IOobject::NO_WRITE,
00046 false
00047 )
00048 );
00049
00050 word dynamicFvMeshTypeName(dynamicMeshDict.lookup("dynamicFvMesh"));
00051
00052 Info<< "Selecting dynamicFvMesh " << dynamicFvMeshTypeName << endl;
00053
00054 dlLibraryTable::open
00055 (
00056 dynamicMeshDict,
00057 "dynamicFvMeshLibs",
00058 IOobjectConstructorTablePtr_
00059 );
00060
00061 if (!IOobjectConstructorTablePtr_)
00062 {
00063 FatalErrorIn
00064 (
00065 "dynamicFvMesh::New(const IOobject&)"
00066 ) << "dynamicFvMesh table is empty"
00067 << exit(FatalError);
00068 }
00069
00070 IOobjectConstructorTable::iterator cstrIter =
00071 IOobjectConstructorTablePtr_->find(dynamicFvMeshTypeName);
00072
00073 if (cstrIter == IOobjectConstructorTablePtr_->end())
00074 {
00075 FatalErrorIn
00076 (
00077 "dynamicFvMesh::New(const IOobject&)"
00078 ) << "Unknown dynamicFvMesh type " << dynamicFvMeshTypeName
00079 << endl << endl
00080 << "Valid dynamicFvMesh types are :" << endl
00081 << IOobjectConstructorTablePtr_->sortedToc()
00082 << exit(FatalError);
00083 }
00084
00085 return autoPtr<dynamicFvMesh>(cstrIter()(io));
00086 }
00087
00088
00089