MCPcopy Create free account
hub / github.com/OpenFOAM/OpenFOAM-dev / genSamples

Function genSamples

src/sampling/sampledSet/midPoint/midPointSet.C:42–99  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
41
42void Foam::midPointSet::genSamples()
43{
44 // Generate midpoints.
45
46 List<point> midPoints(2*size());
47 labelList midCells(2*size());
48 labelList midSegments(2*size());
49 scalarList midCurveDist(2*size());
50
51 label mSamplei = 0;
52 label samplei = 0;
53
54 while (size() > 0)
55 {
56 // Calculate midpoint between samplei and samplei+1 (if in same segment)
57 while
58 (
59 (samplei < size() - 1)
60 && (segments_[samplei] == segments_[samplei+1])
61 )
62 {
63 point midPoint(0.5*(operator[](samplei) + operator[](samplei+1)));
64 label cellm = pointInCell(midPoint, samplei);
65
66 if (cellm != -1)
67 {
68 midPoints[mSamplei] = midPoint;
69 midCells[mSamplei] = cellm;
70 midSegments[mSamplei] = segments_[samplei];
71 midCurveDist[mSamplei] = mag(midPoints[mSamplei] - start());
72 mSamplei++;
73 }
74
75 samplei++;
76 }
77
78 if (samplei == size() - 1)
79 {
80 break;
81 }
82
83 samplei++;
84 }
85
86 midPoints.setSize(mSamplei);
87 midCells.setSize(mSamplei);
88 midSegments.setSize(mSamplei);
89 midCurveDist.setSize(mSamplei);
90
91 setSamples
92 (
93 midPoints,
94 midCells,
95 labelList(midCells.size(), -1),
96 midSegments,
97 midCurveDist
98 );
99}

Callers 1

midPointSet.CFile · 0.70

Calls 7

sizeFunction · 0.85
startFunction · 0.85
setSamplesFunction · 0.85
pointInCellFunction · 0.50
magClass · 0.50
setSizeMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected