BUGFIX: Uninitialised member variables
[foam-extend-3.2.git] / applications / solvers / solidMechanics / elasticAcpSolidFoam / updateReference.H
bloba31294a84e4680ca5265fa02bce88e521b5cdf21
2     // Check which region needs reference
3     needRef = boolList(mesh.regions().nRegions(), true);
5     forAll(U.boundaryField(), patchI)
6     {
7       // philipc - this used to set a reference on
8       // processors which did not have a patch that fixesValue
9       // so processor in the centre of the domain all had
10       // a referece set causing stress peaks and resulting
11       // in an incorrect solution
12       // so a quick fix is to not set a reference on regions
13       // with a processor boundary
14       //if (U.boundaryField()[patchI].fixesValue())
15       if (
16           U.boundaryField()[patchI].fixesValue()
17           ||
18           mesh.boundaryMesh()[patchI].type()
19           == processorPolyPatch::typeName
20           )
21         {
22             const unallocLabelList& curFaceCells =
23                 mesh.boundary()[patchI].faceCells();
25             forAll(curFaceCells, fI)
26             {
27                 needRef[mesh.regions()[curFaceCells[fI]]] = false;
28             }
29         }
30     }
32     // Find reference cell for each region
33     refCells = labelList(mesh.regions().nRegions(), -1);
35     forAll(refCells, regI)
36     {
37         refCells[regI] = findIndex(mesh.regions(), regI);
39         if (refCells[regI] == -1)
40         {
41             FatalErrorIn(args.executable())
42                 << "Can't find reference cell for region: "
43                 << regI << abort(FatalError);
44         }
45     }
47     // Find dead cells
48     labelHashSet deadCellsSet;
49     const labelList& regs = mesh.regions();
51     forAll(regs, cellI)
52     {
53         if (mesh.nCellsInRegion(regs[cellI]) < 0.01*mesh.nCells())
54         {
55             deadCellsSet.insert(cellI);
56         }
57     }
59     deadCells = deadCellsSet.toc();