File: USERD_get_maxsize_info.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 (102 lines) | stat: -rw-r--r-- 2,630 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
int USERD_get_maxsize_info
(
    int *max_number_of_nodes,
    int *max_number_of_elements[Z_MAXTYPE],
    int *max_ijk_dimensions[3]
)
{
    return Z_ERR;

#ifdef ENSIGHTDEBUG
    Info<< "Entering: USERD_get_maxsize_info" << endl;
#endif

    label maxNPoints = 0;
    label maxNParcels = 0;

    label nPen06Max = 0;
    label nHex08Max = 0;
    label nPyr05Max = 0;
    label nTet04Max = 0;

    Info<< "Checking all time steps for EnSight memory allocation purpose. "
        << "This can take some time." << endl;

    for (label timeI=1; timeI < timeDirs.size(); ++timeI)
    {

        label nPen06 = 0;
        label nHex08 = 0;
        label nPyr05 = 0;
        label nTet04 = 0;

        runTimePtr->setTime(timeDirs[timeI], timeI);

        Info<< "Checking time = " << runTimePtr->timeName() << endl;

        const cellShapeList& cells = meshPtr->cellShapes();

        const label nPoints = meshPtr->nPoints();
        const label nCells  = cells.size();

        maxNPoints = max(maxNPoints, nPoints);

        for (label n=0; n<nCells;n++)
        {
            label nFaces = cells[n].nFaces();
            const labelList& points = cells[n];

            if ((nFaces == 6) && (points.size() == 8))
            {
                nHex08++;
            }
            else if ((nFaces == 5) && (points.size() == 6))
            {
                nPen06++;
            }
            else if ((nFaces == 5) && (points.size() == 5))
            {
                nPyr05++;
            }
            else if ((nFaces == 4) && (points.size() == 4))
            {
                nTet04++;
            }
        }

        nPen06Max = max(nPen06Max, nPen06);
        nHex08Max = max(nHex08Max, nHex08);
        nPyr05Max = max(nPyr05Max, nPyr05);
        nTet04Max = max(nTet04Max, nTet04);

        if (Numparts_available > 1)
        {
            // Get the maximum number of spray parcels
            // and store it
            Cloud<passiveParticle> lagrangian(*meshPtr);

            if (lagrangian.size() > nMaxParcels)
            {
                nMaxParcels = lagrangian.size();
            }
        }
    }

    max_number_of_nodes[0] = maxNPoints;
    max_number_of_elements[0][Z_HEX08] = nHex08Max;
    max_number_of_elements[0][Z_PEN06] = nPen06Max;
    max_number_of_elements[0][Z_PYR05] = nPyr05Max;
    max_number_of_elements[0][Z_TET04] = nTet04Max;

    if (Numparts_available > 1)
    {
        max_number_of_nodes[1] = maxNParcels;
        max_number_of_elements[1][Z_POINT] = maxNParcels;
    }

#ifdef ENSIGHTDEBUG
    Info<< "Leaving: USERD_get_maxsize_info" << endl;
#endif

    return Z_OK;
}