00001 /*---------------------------------------------------------------------------*\ 00002 ========= | 00003 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox 00004 \\ / O peration | 00005 \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. 00006 \\/ M anipulation | 00007 ------------------------------------------------------------------------------- 00008 License 00009 This file is part of OpenFOAM. 00010 00011 OpenFOAM is free software: you can redistribute it and/or modify it 00012 under the terms of the GNU General Public License as published by 00013 the Free Software Foundation, either version 3 of the License, or 00014 (at your option) any later version. 00015 00016 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT 00017 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00018 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00019 for more details. 00020 00021 You should have received a copy of the GNU General Public License 00022 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. 00023 00024 Application 00025 pdfPlot 00026 00027 Description 00028 Generates an .obj file to plot a probability distribution function 00029 00030 Usage 00031 00032 - pdfPlot [OPTIONS] 00033 00034 @param -case <dir>\n 00035 Case directory. 00036 00037 @param -parallel \n 00038 Run in parallel. 00039 00040 @param -help \n 00041 Display help message. 00042 00043 @param -doc \n 00044 Display Doxygen API documentation page for this application. 00045 00046 @param -srcDoc \n 00047 Display Doxygen source documentation page for this application. 00048 00049 \*---------------------------------------------------------------------------*/ 00050 00051 #include <finiteVolume/fvCFD.H> 00052 #include <pdf/pdf.H> 00053 #include <OpenFOAM/OFstream.H> 00054 00055 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00056 // Main program: 00057 00058 int main(int argc, char *argv[]) 00059 { 00060 00061 # include <OpenFOAM/setRootCase.H> 00062 # include <OpenFOAM/createTime.H> 00063 # include "createFields.H" 00064 00065 OFstream objFileNew("s.m"); 00066 00067 Random rndGen(label(0)); 00068 00069 autoPtr<pdfs::pdf> p 00070 ( 00071 pdfs::pdf::New(pdfDictionary, rndGen) 00072 ); 00073 00074 scalar xMin = p->minValue(); 00075 00076 scalar xMax = p->maxValue(); 00077 00078 for(label i=0;i<nSamples;i++) 00079 { 00080 scalar ps = p->sample(); 00081 label n = label((ps-xMin)*nIntervals/(xMax-xMin)); 00082 //Info << "p[" << i << "] = " << ps << ", n = " << n << endl; 00083 samples[n]++; 00084 } 00085 00086 for(label i=0;i<nIntervals;i++) 00087 { 00088 scalar x = xMin + i*(xMax-xMin)/(nIntervals-1); 00089 objFileNew << x << " \t" << samples[i] << endl; 00090 } 00091 Info << "End\n" << endl; 00092 00093 return 0; 00094 } 00095 00096 00097 // ************************ vim: set sw=4 sts=4 et: ************************ //