1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
11 OpenFOAM is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation, either version 3 of the License, or
14 (at your option) any later version.
16 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
28 A normal distribution model
31 model = strength * exp(-0.5*((x - expectation)/variance)^2 )
34 strength only has meaning if there's more than one distribution model
39 \*---------------------------------------------------------------------------*/
44 #include "distributionModel.H"
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 namespace distributionModels
53 /*---------------------------------------------------------------------------*\
54 Class normal Declaration
55 \*---------------------------------------------------------------------------*/
59 public distributionModel
64 //- Distribution minimum
67 //- Distribution maximum
81 //- Runtime type information
87 //- Construct from components
88 normal(const dictionary& dict, cachedRandom& rndGen);
91 normal(const normal& p);
93 //- Construct and return a clone
94 virtual autoPtr<distributionModel> clone() const
96 return autoPtr<distributionModel>(new normal(*this));
106 //- Sample the distributionModel
107 virtual scalar sample() const;
109 //- Return the minimum value
110 virtual scalar minValue() const;
112 //- Return the maximum value
113 virtual scalar maxValue() const;
115 virtual scalar erfInv(const scalar y) const;
119 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
121 } // End namespace distributionModels
122 } // End namespace Foam
124 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
128 // ************************************************************************* //