Commit Graph

44 Commits

Author SHA1 Message Date
Mattijs Janssens
46dbfabd9d ENH: primitiveMesh: make geometry calculation runtime selectable
This adds a 'geometry' scheme section to the system/fvSchemes:

geometry
{
    type            highAspectRatio;
}

These 'fvGeometryMethod's are used to calculate
- deltaCoeffs
- nonOrthoCoeffs
etc and can even modify the basic face/cellCentres calculation.
2020-12-11 10:31:34 +00:00
Mark Olesen
3e43edf056 ENH: unify use of dictionary method names
- previously introduced `getOrDefault` as a dictionary _get_ method,
  now complete the transition and use it everywhere instead of
  `lookupOrDefault`. This avoids mixed usage of the two methods that
  are identical in behaviour, makes for shorter names, and promotes
  the distinction between "lookup" access (ie, return a token stream,
  locate and return an entry) and "get" access (ie, the above with
  conversion to concrete types such as scalar, label etc).
2020-06-02 17:26:03 +02:00
Mark Olesen
841b65536b ENH: use unique_ptr for resource handling in dynamicMesh
ENH: defaulting for destructors where possible

STYLE: clear() instead of setSize(0) for plain Lists

STYLE: use bool operator instead of valid()/empty() for autoPtr tests
2020-05-14 02:16:58 +02:00
Mark Olesen
4e6caf8d61 STYLE: return Switch by value, not const-reference 2020-02-21 11:44:29 +01:00
OpenFOAM bot
e9219558d7 GIT: Header file updates 2019-10-31 14:48:44 +00:00
Mark Olesen
45590671ac ENH: for-range, forAllIters() ... in dynamicMesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
OpenFOAM bot
154029ddd0 BOT: Cleaned up header files 2019-02-06 12:28:23 +00:00
Mark Olesen
1d85fecf4d ENH: use Zero when zero-initializing types
- makes the intent clearer and avoids the need for additional
  constructor casting. Eg,

      labelList(10, Zero)    vs.  labelList(10, 0)
      scalarField(10, Zero)  vs.  scalarField(10, scalar(0))
      vectorField(10, Zero)  vs.  vectorField(10, vector::zero)
2018-12-11 23:50:15 +01:00
Mark Olesen
8eddcc072a ENH: avoid readScalar, readLabel etc from dictionary (#762, #1033)
- use the dictionary 'get' methods instead of readScalar for
  additional checking

     Unchecked:  readScalar(dict.lookup("key"));
     Checked:    dict.get<scalar>("key");

- In templated classes that also inherit from a dictionary, an additional
  'template' keyword will be required. Eg,

     this->coeffsDict().template get<scalar>("key");

  For this common use case, the predefined getXXX shortcuts may be
  useful. Eg,

     this->coeffsDict().getScalar("key");
2018-10-12 08:14:47 +02:00
Mark Olesen
02ad76df4f ENH: allow wordHashSet filter for IOobjectList::names
- simplifies usage.
  Support syncPar check on names() to detect inconsistencies.

- simplify readFields, ReadFields and other routines by using these
  new methods.
2018-07-26 14:56:52 +02:00
Mark Olesen
0304911921 STYLE: more consistent use of dimensioned Zero, scalar decimal points
- use scalar(0) instead of scalar(0.0) etc
2018-07-13 10:28:48 +02:00
Mark Olesen
dc521b95df STYLE: consistent use of '= delete' 2018-05-30 12:03:17 +02:00
Mark Olesen
f9fe71815a STYLE: consistent use of '= delete' for removed constructors/assignments
- make the purpose more explicit, and reduces some work for the
  compiler as well.
2018-05-30 12:03:17 +02:00
Mark Olesen
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
Mark Olesen
5d1fb23555 ENH: code reduction in PackedList, PackedBoolList (issue #751)
- eliminate iterators from PackedList since they were unused, had
  lower performance than direct access and added unneeded complexity.

- eliminate auto-vivify for the PackedList '[] operator.
  The set() method provides any required auto-vivification and
  removing this ability from the '[]' operator allows for a lower
  when accessing the values. Replaced the previous cascade of iterators
  with simpler reference class.

PackedBoolList:

- (temporarily) eliminate logic and addition operators since
  these contained partially unclear semantics.

- 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.

- more consistent use of PackedBoolList test(), set(), unset() methods
  for fewer operation and clearer code. Eg,

      if (list.test(index)) ...    |  if (list[index]) ...
      if (!list.test(index)) ...   |  if (list[index] == 0u) ...
      list.set(index);             |  list[index] = 1u;
      list.unset(index);           |  list[index] = 0u;

- deleted the operator=(const labelUList&) and replaced with a setMany()
  method for more clarity about the intended operation and to avoid any
  potential inadvertent behaviour.
2018-03-13 08:32:40 +01:00
Mark Olesen
53ab527b45 ENH: added constexpr, noexcept for bool, Switch
- rationalized some method naming.
  Eg, c_str() instead of asText()
2018-03-03 20:32:49 +01:00
Henry Weller
3990302a54 Updated and simplified the Doxygen documentation 2016-06-20 21:20:28 +01:00
Henry Weller
67de20df25 Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
Henry Weller
450728ea84 Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
Henry Weller
43beb06018 Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
Henry Weller
cb65ba71d7 Made all template declarations consistent using 'class' rather than 'typename' 2016-03-22 15:02:55 +00:00
Henry Weller
0e1787e44a polyMeshFilter.H: Updated indentation 2016-03-06 21:35:02 +00:00
Henry Weller
4bc77e6aff Sprucing up the tutorials folder and adding -dict to "collapseEdges"
Patch provided by Bruno Santos
Resolves patch application request http://www.openfoam.org/mantisbt/view.php?id=2015
2016-03-06 19:06:44 +00:00
Henry Weller
95d146ecdf Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
mattijs
e551bdf2db ENH: polyMeshFilter: enhanced checking (for merged points, map < -1) 2013-12-09 09:05:37 +00:00
laurence
017aee8845 ENH: polyMeshFilter: Add topoSet manipulation. Remove zone manipulation. 2013-09-25 11:10:00 +01:00
laurence
0f748f3710 BUG: polyMeshFilter: Error in initialisation of pointPriority 2013-09-18 15:48:53 +01:00
laurence
b4a742fc89 ENH: collapseEdges: Points now get a priority. The higher the number, the more likely the
collapse will be towards that point
2013-09-18 15:31:58 +01:00
laurence
86c5a3a228 ENH: foamyHexMesh: Do not allow default patch types when reading patchInfo from dictionary 2013-07-11 12:31:43 +01:00
laurence
0004dc6d12 BUG: polyMeshFilter: Reduce newBadFaces 2013-06-06 11:53:46 +01:00
laurence
0b40592ac9 BUG: polyMeshFilter: Correct logic 2013-06-06 11:00:21 +01:00
laurence
3e219bf9fc ENH: polyMeshFilter: Do not allow new bad faces to be created 2013-06-06 10:38:25 +01:00
laurence
fb52acf4be ENH: Update collapesEdges to work with any supplied face zone 2013-05-31 09:42:09 +01:00
laurence
6f9823d0de Merge branch 'master' into feature/cvMesh
Conflicts:
	src/OpenFOAM/algorithms/indexedOctree/indexedOctree.C
	src/OpenFOAM/algorithms/indexedOctree/indexedOctree.H
	src/dynamicMesh/polyMeshFilter/polyMeshFilter.C
	src/meshTools/indexedOctree/treeDataPrimitivePatch.C
	src/meshTools/indexedOctree/treeDataTriSurface.C
	src/meshTools/triSurface/triSurfaceSearch/triSurfaceSearch.C
2013-05-08 12:20:52 +01:00
andy
4435d64047 STYLE: Corrected spelling mistakes 2013-04-16 17:01:23 +01:00
laurence
821ef1e20b ENH: cvMesh: Better debugging info 2013-02-05 14:49:39 +00:00
laurence
4256e0a770 ENH: edgeCollapser: Make mesh checking optional and set default values for dictionary
Update biconic25-55Run35 tutorial with simplified collapseDict
2013-01-21 14:39:16 +00:00
laurence
76aa329546 ENH: Add debug to polyMeshFilter and edgeCollapser 2013-01-10 10:50:30 +00:00
laurence
ff3654956a STYLE: Code cleanup and add some comments 2013-01-10 10:50:05 +00:00
laurence
d722378fc4 ENH: cvMesh: detect and remove indirect patch faces
Find patch faces that do not result from point pairs and aggressively delete
2013-01-04 14:33:23 +00:00
laurence
9989b015a6 COMP/ENH: Update assignments to constructors to compile with clang. Add tensor->triad conversion. 2012-12-24 15:36:50 +00:00
mattijs
9576a43d2d COMP: polyMeshFilter: single precision build 2012-12-12 12:21:01 +00:00
laurence
845b95522a STYLE: Correct line lengths 2012-12-12 09:41:06 +00:00
laurence
e81813a9c2 ENH: Add edgeCollapser utility and libraries.
edgeCollapser collapses small edges and faces.
Works in parallel by using PointEdgeWave.
2012-12-11 17:12:27 +00:00