bac943e6fc
ENH: new bitSet class and improved PackedList class ( closes #751 )
...
- The bitSet class replaces the old PackedBoolList class.
The redesign provides better block-wise access and reduced method
calls. This helps both in cases where the bitSet may be relatively
sparse, and in cases where advantage of contiguous operations can be
made. This makes it easier to work with a bitSet as top-level object.
In addition to the previously available count() method to determine
if a bitSet is being used, now have simpler queries:
- all() - true if all bits in the addressable range are empty
- any() - true if any bits are set at all.
- none() - true if no bits are set.
These are faster than count() and allow early termination.
The new test() method tests the value of a single bit position and
returns a bool without any ambiguity caused by the return type
(like the get() method), nor the const/non-const access (like
operator[] has). The name corresponds to what std::bitset uses.
The new find_first(), find_last(), find_next() methods provide a faster
means of searching for bits that are set.
This can be especially useful when using a bitSet to control an
conditional:
OLD (with macro):
forAll(selected, celli)
{
if (selected[celli])
{
sumVol += mesh_.cellVolumes()[celli];
}
}
NEW (with const_iterator):
for (const label celli : selected)
{
sumVol += mesh_.cellVolumes()[celli];
}
or manually
for
(
label celli = selected.find_first();
celli != -1;
celli = selected.find_next()
)
{
sumVol += mesh_.cellVolumes()[celli];
}
- When marking up contiguous parts of a bitset, an interval can be
represented more efficiently as a labelRange of start/size.
For example,
OLD:
if (isA<processorPolyPatch>(pp))
{
forAll(pp, i)
{
ignoreFaces.set(i);
}
}
NEW:
if (isA<processorPolyPatch>(pp))
{
ignoreFaces.set(pp.range());
}
2018-03-07 11:21:48 +01:00
450728ea84
Standardized cell, patch, face and processor loop index names
2016-04-25 12:00:53 +01:00
2d5ff31649
boundaryField() -> boundaryFieldRef()
2016-04-24 22:07:37 +01:00
56fa7c0906
Update code to use the simpler C++11 template syntax removing spaces between closing ">"s
2016-01-10 22:41:16 +00:00
9688b6ccdc
BUG: decomposePar - updated to handle multiple processor cyclic patches - mantis 879
2014-02-21 16:18:00 +00:00
8558af2cdf
COMP: 64bit label changes
2011-11-28 11:10:46 +00:00
c2dd153a14
Copyright transfered to the OpenFOAM Foundation
2011-08-14 12:17:30 +01:00
eaef8d482b
STYLE: Updated 1991 start copyright year to 2004
2011-01-14 16:08:00 +00:00
099cc39e2e
Revert "STYLE: 2011 copyright date."
...
This reverts commit b18f6cc1ce .
2011-01-05 18:24:29 +00:00
b18f6cc1ce
STYLE: 2011 copyright date.
2011-01-05 11:14:26 +00:00
d5acd22a63
STYLE: use labelUList typedef instead of UList<label> or unallocLabelList
2010-11-02 09:32:32 +01:00
012494fdb5
STYLE: Fixing code style requirements for all apps.
...
Exception: applyWallFunctionBoundaryConditions.C cannot split #include
directives.
2010-07-27 15:27:05 +01:00
59c0e8e24d
STYLE: fix 'forAll (' -> 'forAll(' format (again)
2010-06-02 09:13:48 +02:00
a5c29da27a
BUG: decomposePar : was using the non-compact index for patch info
2010-05-19 16:32:56 +01:00
cff2580336
Merge branch 'master' into splitCyclic
...
Conflicts:
applications/utilities/mesh/manipulation/splitMeshRegions/splitMeshRegions.C
applications/utilities/parallelProcessing/decomposePar/domainDecompositionMesh.C
src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H
src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointPatchField.C
src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/interfaces/cyclicGAMGInterface/cyclicGAMGInterface.C
src/OpenFOAM/meshes/pointMesh/pointPatches/constraint/processor/processorPointPatch.H
src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.H
src/OpenFOAM/meshes/polyMesh/syncTools/syncTools.C
src/OpenFOAM/meshes/polyMesh/syncTools/syncToolsTemplates.C
src/meshTools/sets/topoSets/faceSet.C
src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C
2010-04-16 12:09:34 +01:00
874120350c
STYLE: use forAllIter, forAllConstIter in more places
...
ENH: change some iterator -> const_iterator access
BUG: found some places with forAllIter and ::iterator !
2010-04-13 09:10:36 +02:00
a50f01b079
STYLE: use forAllIter, forAllConstIter instead of long-hand version
...
STYLE: use 'forAll(' NOT 'forAll (', as per coding guide
2010-04-12 11:18:38 +02:00
d29c438657
STYLE: use url for FSF license instead of postal address, switch to GPL v3
2010-03-29 14:07:56 +02:00
89c7523c72
Merge branch 'master' into splitCyclic
...
Conflicts:
src/OpenFOAM/meshes/polyMesh/polyPatches/basic/coupled/coupledPolyPatch.C
src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C
src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.H
src/dynamicMesh/polyTopoChange/polyTopoChange/addPatchCellLayer.C
src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C
src/parallel/decompose/scotchDecomp/scotchDecomp.C
src/parallel/parMetisDecomp/parMetisDecomp.C
src/sampling/sampledSurface/isoSurface/isoSurfaceCell.C
2010-03-25 13:54:12 +00:00
49fb39e8f3
Merge commit 'origin/master' into splitCyclic
...
Conflicts:
applications/utilities/parallelProcessing/decomposePar/decomposePar.C
applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C
applications/utilities/parallelProcessing/decomposePar/domainDecomposition.H
applications/utilities/parallelProcessing/decomposePar/domainDecompositionMesh.C
src/OpenFOAM/fields/pointPatchFields/constraint/processor/processorPointPatchField.C
src/OpenFOAM/fields/pointPatchFields/pointPatchField/pointPatchField.C
src/OpenFOAM/meshes/pointMesh/pointPatches/derived/coupled/coupledFacePointPatch.H
src/OpenFOAM/meshes/polyMesh/globalMeshData/globalPoints.C
src/OpenFOAM/meshes/polyMesh/polyPatches/basic/coupled/coupledPolyPatch.C
src/OpenFOAM/meshes/polyMesh/polyPatches/basic/coupled/coupledPolyPatch.H
src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C
2010-03-09 21:28:53 +00:00
5ece14ec6f
BUG: finite volume did not work before.
2010-03-03 10:12:35 +00:00
62637d8471
ENH: initial overhaul of volPointInterpolation.
...
- removed globalPointPatch*
- removed pointPatchInterpolate*
since all is now inside volPointInterpolation.
2010-02-17 14:01:44 +00:00
d7d97f1f36
ENH: Removed the -filterPatches option.
...
Option was not used anymore. Cleans up the code a bit.
2010-02-05 10:32:47 +00:00
46ad2e55d6
Merge branch 'master' into splitCyclic
...
Conflicts:
applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C
applications/utilities/parallelProcessing/decomposePar/domainDecomposition.H
applications/utilities/parallelProcessing/decomposePar/domainDecompositionMesh.C
src/OpenFOAM/algorithms/MeshWave/FaceCellWave.C
src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterfaceFields/cyclicLduInterfaceField/cyclicLduInterfaceField.C
src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C
src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.H
src/OpenFOAM/meshes/polyMesh/syncTools/dummyTransform.H
src/OpenFOAM/meshes/polyMesh/syncTools/syncTools.C
src/edgeMesh/edgeFormats/vtk/VTKedgeFormat.H
src/mesh/blockMesh/curvedEdges/spline.H
src/meshTools/PointEdgeWave/PointEdgeWave.C
src/meshTools/sets/topoSets/faceSet.C
2010-01-26 17:11:18 +00:00
c091d856ae
pedantic changes: 'forAll (' -> 'forAll(' in applications/
...
- to match coding guidelines
2009-12-03 14:12:08 +01:00
fa93ce8cd7
coding style adherence
...
- markup codingStyleGuide.org examples so they actually indent correctly
- use 'Info<<' as per codingStyleGuide instead of 'Info <<'
2009-11-27 15:39:14 +01:00
2c52705cf7
move reconstructPar 'guts' to src/parallel/reconstruct
...
- in preparation for adding an optional '-reconstruct' to a few utilities
re-use as -lreconstruct library
- move related stuff there too
src/decompositionMethods/decompositionMethods
-> src/parallel/decompositionMethods
- added missing namespace qualifiers
2009-11-20 14:37:56 +01:00