Commit Graph

15257 Commits

Author SHA1 Message Date
e7c1d46904 ENH: avoid raw dictionary lookup in fvOptions (issue #762)
Style changes:
    - use lookupObjectRef instead of using const_cast
    - use tmp::New factory
2018-08-04 00:23:18 +02:00
de2eed3e7d ENH: additional methods and improvements to plane
- signedDistance() method is like distance() but retains
  the positive/negative sign for the side of the plane.

- the sign() method returns the sign as -1,0,+1 integer for
  classification purposes where it is important to distinguish between
  a zero value and a positive value (eg, for cutting). Optional
  tolerance can be supplied to round for zero.

- refactor and inlined simple and frequently used methods.

- add boundBox faceCentre() method, which can be useful for creating
  clipping planes from a bounding box.
  Relocated treeBoundBox faceNormals to boundBox since they apply
  equally there - the meaning of the faces (x-min, x-max, etc)
  is the same, even if the point addressing for the faces differs.
2018-08-03 23:17:49 +02:00
84e2df4994 ENH: added ZoneMesh indices(), selection() with wordRes matcher
- rationalized code dealing with extraction of name or indices from
  coordinateSystems, polyBoundaryMesh, faBoundaryMesh, fvBoundaryMesh,
  ZoneMesh to use internal implementations that allow direct
  searching/matching without building an intermediate list of names.

- simpler and more efficient handling of patch group matching.
2018-08-03 22:40:19 +02:00
c0c59b9abd ENH: force tetBasePtIs() into existence before isoSurfaceCell cutting loop
- ensures that things stay synchronized when the processor domains
  have unequal looping.
2018-08-03 19:34:26 +02:00
91e2fc4dc7 ENH: add isAOp, isTypeOp functors
- can be used in predicate matching

- getNameOp, getTypeOp for accessing the name() and type() of objects
2018-08-03 15:19:22 +02:00
319e09e32f ENH: avoid blockMesh removal of files for special cases (issue #963)
- do not remove if the dictionary failed to load.
- do not remove if -blockTopology was used.
2018-08-03 14:30:41 +02:00
88e5334a9f ENH: IOobject::selectIO helper method
- centralizes IOobject handling and treatment of alternative locations.
  If an alternative file location is specified, it will be used instead.

- provide decompositionMethod::canonicalName instead of using
  "decomposeParDict" in various places.
2018-08-02 17:39:17 +02:00
0e996431b7 STYLE: relocate STRING_QUOTE macro to macros.H 2018-08-02 16:26:25 +02:00
b056202ecf STYLE: simplify bitSet use in Foam::PatchTools::subsetMap 2018-08-02 09:54:59 +02:00
bafddd77c7 ENH: use binary search for polyBoundaryMesh::whichPatch() (issue #801) 2018-08-02 08:51:49 +02:00
32565b4b39 ENH: make findLower more flexible (issue #960)
- a second template parameter for the comparison value type instead of
  ListType::const_reference allows more generic comparison predicates.
2018-08-02 08:48:27 +02:00
a1345b7e83 ENH: improve syncTools handling of PackedList and bitSet
- create a subset copy for sending on the processor patches instead of
  a List of unsigned ints. Reduces memory overhead and data transfer
  amount.
2018-08-01 21:55:45 +02:00
d8c0167ea8 STYLE: ensure that emptyLabelList is known from List.H
- treat as a List constant without requiring inclusion of ListOps.H

- replace use of emptyList<label>() with emptyLabelList directly.
  The emptyList<T>() casting is disallowed with many modern compilers
  and now marked as deprecated (expect early removal).

- relocate labelList typedef to List.H for more general access.
  Similar reasoning to having labelUList defined in UList.H
2018-08-01 21:27:46 +02:00
edb0d1dd97 ENH: add range method to polyBoundaryMesh
- makes for easier extraction of boundary values since it encapsulates
  start/size directly.

Eg,
    SubList<T>(allValues, patches.range());
or
    bitSet(blocked, patches.range(patchi));
2018-08-01 19:22:06 +02:00
9be9f02a12 ENH: bitSet, PackedList copy construct a subset
Eg,
    processorPolyPatch pp = ...;

    UOPstream toNbr(pp.neighbProcNo(), pBufs);
    toNbr << PackedList<Width>(faceValues, pp.range());
2018-08-01 17:54:53 +02:00
51c32360cd ENH: use bitSet operations in syncTools
- concise and more efficient
2018-08-01 15:22:19 +02:00
49d9589d26 STYLE: update iterator access and looping in syncTools 2018-08-01 14:34:34 +02:00
640aac95bd STYLE: remove dead code from syncTools (unused since 2014 or earlier) 2018-08-01 13:38:37 +02:00
80f4ff87dd ENH: allow use of FixedList<label,N> for bitSet construct/set/unset
- allows direct 'hashing' of fixed lists. Eg, triFace
2018-08-01 13:01:43 +02:00
35facb8208 ENH: add PackedList::unpack() method
- allows for simpler unpacking of a full list, or list range into any
  sufficiently large integral type.

  For example,
    processorPolyPatch pp = ...;

    UOPstream toNbr(pp.neighbProcNo(), pBufs);
    toNbr << faceValues.unpack<char>(pp.range());
2018-08-01 12:48:35 +02:00
8917b94444 ENH: add labelRange labels() method (for a labelList source)
- add range support in globalIndex and SubField, SubDimensionedField
2018-08-01 10:36:05 +02:00
dd67b3386a ENH: add fileName /= operator (similar to std::filesystem::path) 2018-07-27 07:15:08 +02:00
0b70301136 ENH: overset: disallow hole donors. See #810. 2018-08-02 12:22:39 +01:00
cb919a6c41 ENH: tag some options as 'advanced' (only shown with -help-full)
General:
    * -roots, -hostRoots, -fileHandler

Specific:
    * -to <coordinateSystem> -from <coordinateSystem>

- Display -help-compat when compatibility or ignored options are available

STYLE: capitalization of options text
2018-07-31 11:54:15 +02:00
f00c7a655c COMP: rename dictionary::read<T> to dictionary::readEntry<T>
- avoids compiler ambiguity when virtual methods such as
  IOdictionary::read() exist.

- the method was introduced in 1806, and was thus not yet widely used
2018-07-30 15:52:40 +02:00
215570915e ENH: explicit convert to bool operator for autoPtr
- behaves the same as the valid() method, but can be queried directly
  like a normal raw pointer and as per std::unique_ptr.
  Eg,

      autoPtr<T> ptr = ...

      if (ptr) ...
2018-07-30 14:33:22 +02:00
ef52e11d2c COMP: include Constant.H for clang-5 2018-07-30 12:17:08 +02:00
a5e5ba3179 ENH: add bitSet-type of methods for boolList
- test(), get(), set(), unset() with behaviour as per bitSet,
  to allow easier swapping out of boolList <-> bitSet.
2018-07-27 15:51:19 +02:00
c89e13f82f ENH: allow command-line options to be tagged as "advanced"
- advanced options are not displayed with -help, but only with
  -help-full, which helps retain a better overview of the standard
  options.  Replaces previous ad hoc suppression of -listSwitches,
  -listRegisteredSwitches etc.
2018-07-30 08:58:36 +02:00
db9cd2bc85 ENH: add IOobjectList append() method for building larger lists
- supports copy append and move append
2018-07-27 15:38:32 +02:00
fd2b72891c ENH: added HashPtrTable remove(const Key&) method
- already had remove() by iterator, but not by key.
  As per erase() which already worked by iterator or by key.
2018-07-27 15:17:14 +02:00
27bbb516a3 STYLE: return nullptr instead of tmp<...>() for NotImplemented methods
- as per 018124e3bf
2018-07-27 14:20:01 +02:00
8aa7b1353f ENH: refCast: give better error messages. Fixes #953. 2018-07-26 16:55:49 +01:00
b2be9fa3ff STYLE: snappyHexMesh: unused option 2018-07-26 16:55:11 +01:00
d7d4a6e834 Merge remote-tracking branch 'origin/develop' into develop 2018-07-26 17:40:52 +02:00
f17e486801 ENH: decompositionMethod: check dimensions. See #937.
Changed into warning since e.g. tutorials/combustion/fireFoam/LES/compartmentFire
uses columns of 1D stacks so they've got empty but are still 3D.
2018-07-26 16:21:51 +01:00
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
9e345c5820 BUG: surfaceIntersection: access out of bounds. Fixes #955 2018-07-26 12:07:54 +01:00
ba64ca8a5b ENH: localPointRegion: improved error message 2018-07-26 11:50:47 +01:00
8adac99d7c ENH: tetDecomposer: decompose selected cells. 2018-07-26 10:11:39 +01:00
a8ef5610d0 STYLE: renamed meshSubsetHelper -> fvMeshSubsetProxy 2018-07-26 01:57:16 +02:00
dbe0db1d9a ENH: fvMeshSubset improvements (issue #951)
- what was previously termed 'setLargeCellSubset()' is now simply
  'setCellSubset()' and supports memory efficient interfaces.

  The new parameter ordering avoids ambiguities caused by default
  parameters.

  Old parameter order:

      setLargeCellSubset
      (
          const labelList& region,
          const label currentRegion,
          const label patchID = -1,
          const bool syncCouples = true
      );

  New parameter order:

      setCellSubset
      (
          const label regioni,
          const labelUList& regions,
          const label patchID = -1,
          const bool syncCouples = true
      );

   And without ambiguity:

      setCellSubset
      (
          const labelUList& selectedCells,
          const label patchID = -1,
          const bool syncCouples = true
      );

- support bitSet directly for specifying the selectedCells for
  memory efficiency and ease of use.

- Additional constructors to perform setCellSubset() immediately,
  which simplifies coding.

  For example,

      meshParts.set
      (
          zonei,
          new fvMeshSubset(mesh, selectedCells)
      );

  Or even

      return autoPtr<fvMeshSubset>::New(mesh, selectedCells);
2018-07-25 18:58:00 +02:00
7446d30fbd ENH: additional labelHashSet -> bitSet conversion
- BitSetOps::create(len, locations, on) that generates a bitSet with
  the specified length. The optional 'on' bool can be used to flip the
  logic.
2018-07-25 17:50:38 +02:00
3218b3dee3 ENH: allow bitSet selector for removeCells (issue #951) 2018-07-25 16:01:43 +02:00
a6b84927e4 STYLE: use sortedToc() instead of toc() followed by sort() 2018-07-25 10:29:20 +02:00
8610a95ad8 ENH: expose subset name in meshSubsetHelper 2018-07-25 00:14:30 +02:00
e7b82aad9e STYLE: segregate older-style access methods with preprocessor define
- enclosed with a #ifdef Foam_argList_1712 .. #endif pair
  (defined by default).
  In a later release, this can be disabled by default.

ENH: add input length check for -hostRoots option
2018-07-25 07:56:29 +02:00
adb90ef655 STYLE: remove fvMeshSubset::setCellSubset (issue #951)
- unused, does not run in parallel

- avoid enclosing namespace in fvMeshSubset
2018-07-25 00:13:13 +02:00
638b6b2cf1 ENH: add get() dereferencing for PtrList iterators
- gets the pointer within the list.
2018-07-26 00:10:51 +02:00
d25dd342fa STYLE: spurious reading of int instead of label 2018-07-24 09:52:11 +02:00