Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / applications / utilities / postProcessing / graphics / newEnsightFoamReader / USERD_get_maxsize_info.H
blobe6681dc9c65e630329288bef9d807d8de33ee31f
1 int USERD_get_maxsize_info
3     int *max_number_of_nodes,
4     int *max_number_of_elements[Z_MAXTYPE],
5     int *max_ijk_dimensions[3]
8 #ifdef ENSIGHTDEBUG
9     Info << "Entering: USERD_get_maxsize_info" << endl << flush;
10 #endif
12     return Z_ERR;
14     label maxNPoints = 0;
15     label maxNParcels = 0;
17     label nPen06Max = 0;
18     label nHex08Max = 0;
19     label nPyr05Max = 0;
20     label nTet04Max = 0;
22     Info << "Checking all time steps for EnSight memory allocation purpose. This can take some time." << endl;
24     for (label t=1; t < TimeList.size(); t++)
25     {
26         label nPen06 = 0;
27         label nHex08 = 0;
28         label nPyr05 = 0;
29         label nTet04 = 0;
31         runTimePtr->setTime(TimeList[t], t);
33         Info << "Checking time = " << TimeList[t].value() << endl << flush;
35         const cellShapeList& cells = meshPtr->cellShapes();
37         label nPoints = meshPtr->nPoints();
38         label nCells = cells.size();
40         maxNPoints = max(maxNPoints, nPoints);
42         for (label n=0; n<nCells;n++)
43         {
44             label nFaces = cells[n].nFaces();
45             labelList points = cells[n];
47             if ((nFaces == 6) && (points.size() == 8))
48             {
49                 nHex08++;
50             }
51             else if ((nFaces == 5) && (points.size() == 6))
52             {
53                 nPen06++;
54             }
55             else if ((nFaces == 5) && (points.size() == 5))
56             {
57                 nPyr05++;
58             }
59             else if ((nFaces == 4) && (points.size() == 4))
60             {
61                 nTet04++;
62             }
63         }
65         nPen06Max = max(nPen06Max, nPen06);
66         nHex08Max = max(nHex08Max, nHex08);
67         nPyr05Max = max(nPyr05Max, nPyr05);
68         nTet04Max = max(nTet04Max, nTet04);
70         if (Numparts_available > 1)
71         {
73             // Get the maximum number of spray parcels
74             // and store it
75             Cloud<passiveParticle> lagrangian(*meshPtr);
77             if (lagrangian.size() > nMaxParcels)
78             {
79                 nMaxParcels = lagrangian.size();
80             }
82         }
83     }
85     max_number_of_nodes[0] = maxNPoints;
86     max_number_of_elements[0][Z_HEX08] = nHex08Max;
87     max_number_of_elements[0][Z_PEN06] = nPen06Max;
88     max_number_of_elements[0][Z_PYR05] = nPyr05Max;
89     max_number_of_elements[0][Z_TET04] = nTet04Max;
91     if (Numparts_available > 1)
92     {
93         max_number_of_nodes[1] = maxNParcels;
94         max_number_of_elements[1][Z_POINT] = maxNParcels;
95     }
97 #ifdef ENSIGHTDEBUG
98     Info << "Leaving: USERD_get_maxsize_info" << endl << flush;
99 #endif
101     return Z_OK;