File: checkFaceAddressingComp.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 (48 lines) | stat: -rw-r--r-- 1,615 bytes parent folder | download | duplicates (5)
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
{
    // Foam version 2.1 changes the addressing of faces in faceProcAddressing
    // The following code checks and modifies the addressing for cases where
    // the decomposition has been done with the foam2.0 and earlier tools, but
    // the reconstruction is attempted with version 2.1 or later

    label minFaceIndex = labelMax;

    PtrList<labelIOList>& faceProcAddressing = procMeshes.faceProcAddressing();

    forAll(faceProcAddressing, proci)
    {
        const labelList& curFaceAddr = faceProcAddressing[proci];

        forAll(curFaceAddr, facei)
        {
            if (mag(curFaceAddr[facei]) < minFaceIndex)
            {
                minFaceIndex = mag(curFaceAddr[facei]);
            }
        }
    }

    if (minFaceIndex < 1)
    {
        WarningInFunction
            << "parallel decomposition addressing." << endl
            << "It looks like you are trying to reconstruct the case "
            << "decomposed with an earlier version of FOAM, which could\n"
            << "potentially cause compatibility problems.  The code will "
            << "attempt to update the addressing automatically; in case of\n"
            << "failure, please repeat the decomposition of the case using "
            << "the current version fo decomposePar"
            << endl;

        forAll(faceProcAddressing, proci)
        {
            labelList& curFaceAddr = faceProcAddressing[proci];

            forAll(curFaceAddr, facei)
            {
                curFaceAddr[facei] += sign(curFaceAddr[facei]);
            }

            faceProcAddressing[proci].write();
        }
    }
}