File: createFields.H

package info (click to toggle)
openfoam 4.1%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 163,028 kB
  • ctags: 58,990
  • sloc: cpp: 830,760; sh: 10,227; ansic: 8,215; xml: 745; lex: 437; awk: 194; sed: 91; makefile: 77; python: 18
file content (79 lines) | stat: -rw-r--r-- 1,334 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Info<< "Reading combustion properties\n" << endl;

IOdictionary engineGeometry
(
    IOobject
    (
        "engineGeometry",
        runTime.constant(),
        mesh,
        IOobject::MUST_READ_IF_MODIFIED,
        IOobject::NO_WRITE
    )
);

vector swirlAxis
(
    engineGeometry.lookup("swirlAxis")
);

vector swirlCenter
(
    engineGeometry.lookup("swirlCenter")
);

dimensionedScalar swirlRPMRatio
(
    engineGeometry.lookup("swirlRPMRatio")
);

dimensionedScalar swirlProfile
(
    engineGeometry.lookup("swirlProfile")
);

dimensionedScalar bore
(
    engineGeometry.lookup("bore")
);

dimensionedScalar rpm
(
    engineGeometry.lookup("rpm")
);


Info<< "Reading field U\n" << endl;
volVectorField U
(
    IOobject
    (
        "U",
        runTime.timeName(),
        mesh,
        IOobject::MUST_READ,
        IOobject::AUTO_WRITE
    ),
    mesh
);

vector zT = swirlAxis;
vector yT = vector(0, zT.z(), -zT.y());
vector xT = vector
(
    zT.y()*zT.y() + zT.z()*zT.z(),
    -zT.x()*zT.y(),
    -zT.x()*zT.z()
);

// if swirl is around (1, 0, 0) we have to find another transformation
if (mag(yT) < SMALL)
{
    yT = vector(zT.y(), -zT.x(), 0);
    xT = vector(-zT.x()*zT.z(), -zT.y()*zT.z(), zT.x()*zT.x() + zT.y()*zT.y());
}

//swirlAxis doesn't have to be of unit length.
xT /= mag(xT);
yT /= mag(yT);
zT /= mag(zT);