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 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 
00045 
00046 
00047 
00048 
00049 
00050 
00051 
00052 
00053 
00054 
00055 
00056 
00057 
00058 
00059 
00060 
00061 
00062 
00063 #include <finiteVolume/fvCFD.H>
00064 
00065 
00066 
00067 int main(int argc, char *argv[])
00068 {
00069     timeSelector::addOptions();
00070 
00071 #   include <OpenFOAM/setRootCase.H>
00072 #   include <OpenFOAM/createTime.H>
00073 
00074     instantList timeDirs = timeSelector::select0(runTime, args);
00075 
00076 #   include <OpenFOAM/createMesh.H>
00077 
00078     forAll(timeDirs, timeI)
00079     {
00080         runTime.setTime(timeDirs[timeI], timeI);
00081 
00082         Info<< "Time = " << runTime.timeName() << endl;
00083 
00084         IOobject pheader
00085         (
00086             "p",
00087             runTime.timeName(),
00088             mesh,
00089             IOobject::MUST_READ
00090         );
00091 
00092         IOobject Uheader
00093         (
00094             "U",
00095             runTime.timeName(),
00096             mesh,
00097             IOobject::MUST_READ
00098         );
00099 
00100 
00101         
00102         if (pheader.headerOk() && Uheader.headerOk())
00103         {
00104             mesh.readUpdate();
00105 
00106             Info<< "    Reading p" << endl;
00107             volScalarField p(pheader, mesh);
00108 
00109             Info<< "    Reading U" << endl;
00110             volVectorField U(Uheader, mesh);
00111 
00112             Info<< "    Calculating ptot" << endl;
00113             if (p.dimensions() == dimensionSet(0, 2, -2, 0, 0))
00114             {
00115                 volScalarField ptot
00116                 (
00117                     IOobject
00118                     (
00119                         "ptot",
00120                         runTime.timeName(),
00121                         mesh,
00122                         IOobject::NO_READ
00123                     ),
00124                     p + 0.5*magSqr(U)
00125                 );
00126                 ptot.write();
00127             }
00128             else
00129             {
00130                 IOobject rhoheader
00131                 (
00132                     "rho",
00133                     runTime.timeName(),
00134                     mesh,
00135                     IOobject::MUST_READ
00136                 );
00137 
00138                 
00139                 if (rhoheader.headerOk())
00140                 {
00141                     Info<< "    Reading rho" << endl;
00142                     volScalarField rho(rhoheader, mesh);
00143 
00144                     volScalarField ptot
00145                     (
00146                         IOobject
00147                         (
00148                             "ptot",
00149                             runTime.timeName(),
00150                             mesh,
00151                             IOobject::NO_READ
00152                         ),
00153                         p + 0.5*rho*magSqr(U)
00154                     );
00155                     ptot.write();
00156                 }
00157                 else
00158                 {
00159                     Info<< "    No rho" << endl;
00160                 }
00161             }
00162         }
00163         else
00164         {
00165             Info<< "    No p or U" << endl;
00166         }
00167 
00168         Info<< endl;
00169     }
00170 
00171     return 0;
00172 }
00173 
00174 
00175