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