BUGFIX: Uninitialised member variables
[foam-extend-3.2.git] / applications / utilities / postProcessing / viscoelastic / stressDifferences / stressDifferences.C
blobad6de831658bffca1cc7142bcb050c9a2acf342e
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     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
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Application
26     stressDifferences
28 Description
29     Calculates and writes the first (N1) and second (N2) stress difference
30     for each time.
32 Author
33     Jovani L. Favero.  All rights reserved
35 \*---------------------------------------------------------------------------*/
37 #include "fvCFD.H"
39 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 int main(int argc, char *argv[])
44 #   include "addTimeOptions.H"
45 #   include "setRootCase.H"
47 #   include "createTime.H"
49     // Get times list
50     instantList Times = runTime.times();
52     // set startTime and endTime depending on -time and -latestTime options
53 #   include "checkTimeOptions.H"
55     runTime.setTime(Times[startTime], startTime);
57 #   include "createMesh.H"
59     for (label i=startTime; i<endTime; i++)
60     {
61         runTime.setTime(Times[i], i);
63         Info<< "Time = " << runTime.timeName() << endl;
65         mesh.readUpdate();
67         IOobject tauHeader
68         (
69             "tau",
70             runTime.timeName(),
71             mesh,
72             IOobject::MUST_READ
73         );
75         // Check tau exists
76         if (tauHeader.headerOk())
77         {
78             mesh.readUpdate();
80             Info<< "    Reading tau" << endl;
81             volSymmTensorField tau(tauHeader, mesh);
84             Info<< "    Calculating N1"<< endl;
85             volScalarField N1
86             (
87                 IOobject
88                 (
89                     "N1",
90                      runTime.timeName(),
91                      mesh,
92                      IOobject::NO_READ
93                 ),
94                 tau.component(symmTensor::XX) - tau.component(symmTensor::YY)
95             );
96             N1.write();
98             Info<< "    Calculating N2"<< endl;
99             volScalarField N2
100             (
101                 IOobject
102                 (
103                     "N2",
104                     runTime.timeName(),
105                     mesh,
106                     IOobject::NO_READ
107                 ),
108                 tau.component(symmTensor::YY) - tau.component(symmTensor::ZZ)
109             );
110             N2.write();
111         }
112         else
113         {
114             Info<< "    No tau" << endl;
115         }
117         Info<< endl;
119     } //for time
121     Info<< endl;
122     Info<< "    End"<< nl << endl;
124     return(0);
128 // ************************************************************************* //