Forward compatibility: flex
[foam-extend-3.2.git] / src / solidModels / constitutiveModel / rheologyLaws / rheologyLaw / newRheologyLaw.C
blob6bb41fe7f71341229ef54c6bb8a5e95870ca0c78
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     rheologyLaw
27 Description
29 \*---------------------------------------------------------------------------*/
31 #include "rheologyLaw.H"
32 #include "volFields.H"
33 #include "surfaceFields.H"
35 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
37 namespace Foam
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 autoPtr<rheologyLaw> rheologyLaw::New
44     const word& name,
45     const volSymmTensorField& sigma,
46     const dictionary& dict
49     word rheoTypeName = dict.lookup("type");
51     Info<< "Selecting rheology model " << rheoTypeName << endl;
53     dictionaryConstructorTable::iterator cstrIter =
54         dictionaryConstructorTablePtr_->find(rheoTypeName);
56     if (cstrIter == dictionaryConstructorTablePtr_->end())
57     {
58         FatalIOErrorIn
59         (
60             "rheologyLaw::New(\n"
61             "    const word& name,\n"
62             "    const volSymmTensorField& sigma,\n"
63             "    const dictionary& dict\n"
64             ")",
65             dict
66         )   << "Unknown rheologyLaw type "
67             << rheoTypeName << endl << endl
68             << "Valid  rheologyLaws are : " << endl
69             << dictionaryConstructorTablePtr_->sortedToc()
70             << exit(FatalIOError);
71     }
73     return autoPtr<rheologyLaw>(cstrIter()(name, sigma, dict));
77 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
79 } // End namespace Foam
81 // ************************************************************************* //