Fixed URL for libccmio-2.6.1 (bug report #5 by Thomas Oliveira)
[foam-extend-3.2.git] / applications / solvers / solidMechanics / elasticIncrAcpSolidFoam / updateReference.H
blobf009939af43708c220440ae61a089563398cd3ef
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         (
17             U.boundaryField()[patchI].fixesValue()
18             ||
19             mesh.boundaryMesh()[patchI].type()
20             == processorPolyPatch::typeName
21         )
22         {
23             const unallocLabelList& curFaceCells =
24                 mesh.boundary()[patchI].faceCells();
26             forAll(curFaceCells, fI)
27             {
28                 needRef[mesh.regions()[curFaceCells[fI]]] = false;
29             }
30         }
31     }
33     // Find reference cell for each region
34     refCells = labelList(mesh.regions().nRegions(), -1);
36     forAll(refCells, regI)
37     {
38         refCells[regI] = findIndex(mesh.regions(), regI);
40         if (refCells[regI] == -1)
41         {
42             FatalErrorIn(args.executable())
43                 << "Can't find reference cell for region: "
44                 << regI << abort(FatalError);
45         }
46     }
48     // Find dead cells
49     labelHashSet deadCellsSet;
50     const labelList& regs = mesh.regions();
52     forAll(regs, cellI)
53     {
54         if (mesh.nCellsInRegion(regs[cellI]) < 0.01*mesh.nCells())
55         {
56             deadCellsSet.insert(cellI);
57         }
58     }
60     deadCells = deadCellsSet.toc();