initialPointsMethod.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2012-2017 OpenFOAM Foundation
9  Copyright (C) 2019-2021 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 \*---------------------------------------------------------------------------*/
28 
29 #include "initialPointsMethod.H"
31 
32 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33 
34 namespace Foam
35 {
36 defineTypeNameAndDebug(initialPointsMethod, 0);
37 defineRunTimeSelectionTable(initialPointsMethod, dictionary);
38 }
39 
40 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
41 
42 Foam::initialPointsMethod::initialPointsMethod
43 (
44  const word& type,
45  const dictionary& initialPointsDict,
46  const Time& runTime,
47  Random& rndGen,
48  const conformationSurfaces& geometryToConformTo,
49  const cellShapeControl& cellShapeControls,
50  const autoPtr<backgroundMeshDecomposition>& decomposition
51 )
52 :
53  dictionary(initialPointsDict),
54  runTime_(runTime),
55  rndGen_(rndGen),
56  geometryToConformTo_(geometryToConformTo),
57  cellShapeControls_(cellShapeControls),
58  decomposition_(decomposition),
59  detailsDict_(optionalSubDict(type + "Coeffs")),
60  minimumSurfaceDistanceCoeffSqr_
61  (
62  sqr
63  (
64  initialPointsDict.get<scalar>("minimumSurfaceDistanceCoeff")
65  )
66  ),
67  fixInitialPoints_(initialPointsDict.get<bool>("fixInitialPoints"))
68 {}
69 
70 
71 // * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * //
72 
74 (
75  const dictionary& dict,
76  const Time& runTime,
77  Random& rndGen,
78  const conformationSurfaces& geometryToConformTo,
79  const cellShapeControl& cellShapeControls,
80  const autoPtr<backgroundMeshDecomposition>& decomposition
81 )
82 {
83  const word modelType(dict.get<word>("initialPointsMethod"));
84 
85  Info<< nl << "Selecting initialPointsMethod " << modelType << endl;
86 
87  auto* ctorPtr = dictionaryConstructorTable(modelType);
88 
89  if (!ctorPtr)
90  {
92  (
93  dict,
94  "initialPointsMethod",
95  modelType,
96  *dictionaryConstructorTablePtr_
97  ) << exit(FatalIOError);
98  }
99 
100  return
101  autoPtr<initialPointsMethod>
102  (
103  ctorPtr
104  (
105  dict,
106  runTime,
107  rndGen,
108  geometryToConformTo,
109  cellShapeControls,
110  decomposition
111  )
112  );
113 }
114 
115 
116 // ************************************************************************* //
runTime
engineTime & runTime
Definition: createEngineTime.H:13
Foam::defineRunTimeSelectionTable
defineRunTimeSelectionTable(reactionRateFlameArea, dictionary)
Foam::FatalIOError
IOerror FatalIOError
Foam::endl
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:369
Foam::dictionary::get
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Definition: dictionaryTemplates.C:107
FatalIOErrorInLookup
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
Definition: error.H:478
Foam::Info
messageStream Info
Information stream (stdout output on master, null elsewhere)
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::initialPointsMethod::New
static autoPtr< initialPointsMethod > New(const dictionary &initialPointsDict, const Time &runTime, Random &rndGen, const conformationSurfaces &geometryToConformTo, const cellShapeControl &cellShapeControls, const autoPtr< backgroundMeshDecomposition > &decomposition)
Return a reference to the selected initialPointsMethod.
addToRunTimeSelectionTable.H
Macros for easy insertion into run-time selection tables.
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::exit
errorManipArg< error, int > exit(error &err, const int errNo=1)
Definition: errorManip.H:130
Foam::autoPtr< Foam::initialPointsMethod >
Foam::sqr
dimensionedSymmTensor sqr(const dimensionedVector &dv)
Definition: dimensionedSymmTensor.C:51
initialPointsMethod.H
Foam::nl
constexpr char nl
Definition: Ostream.H:404
bool
bool
Definition: EEqn.H:20
Foam::roots::type
type
Types of root.
Definition: Roots.H:54
Foam::PtrListOps::get
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
rndGen
Random rndGen
Definition: createFields.H:23
Foam::defineTypeNameAndDebug
defineTypeNameAndDebug(combustionModel, 0)