Commit Graph

22562 Commits

Author SHA1 Message Date
43cdc8fac1 ENH: lazy evaluation of subRegion in regionFunctionObject (#1202)
- delay dereferencing of optional subRegion entries until an
  objectRegistry is required.

  This improves usabilty when reference objects do not yet exist
  at the time of construction.
2019-02-12 13:54:02 +01:00
2aca6b35ce ENH: delay evaluation of surfaces for fluxSummary (issue #1202)
- complete any pending initialisation on write().
  Allows lazier evaluation until when surfaces are actually available.
2019-02-12 12:39:49 +01:00
63389af16f ENH: delay evaluation of surfaces for surfaceFieldValue (issue #1202)
- complete any pending initialisation on write().
  Allows lazier evaluation until when the surfaces are actually needed.
2019-02-12 12:39:49 +01:00
a16f21c6f3 SUBMODULES: catalyst updated to use vtk::vtuAdaptor 2019-02-12 17:56:11 +01:00
0b1ab539ba ENH: additional vtk::Tools methods for handling faces, points etc.
- includes initial relocation of low-level vtu handling.
  Extracted, refactored from the Catalyst function object.
2019-02-03 17:24:26 +01:00
3ea900b54c TUT: add missing fields 2019-02-12 16:46:40 +01:00
64f795ed51 ENH: for-range, forAllIters() ... in sampling/, surfMesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
6b6e5b8ea2 ENH: for-range, forAllIters() ... in parallel/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
6eaa8d9ea4 ENH: for-range, forAllIters() ... in dynamicMesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
15c53a2ef1 ENH: for-range, forAllIters() ... in genericPatchFields/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
b771fbb09d ENH: for-range, forAllIters() ... in conversion/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
1fea357294 ENH: add possibility to change const reference in tmp.
- previously it was only possible to reset a pointer, but not to
  change a const-reference directly (needed a swap() to do this).
2019-02-11 18:23:06 +01:00
b29c5c1cc9 STYLE: consolidate 'clear' when initialising surfaceFieldValue 2019-02-11 15:59:14 +01:00
cb1d41cd75 ENH: add Ensight output support for a labelField (treat like scalarField) 2019-02-11 16:03:10 +01:00
8a99afd271 ENH: derivedFields functionObject to create some predefined, calculated fields
- currently supports pTotal, rhoU.
2019-02-08 17:47:45 +01:00
7c21f42b6d ENH: add remove objects handling in timeFunctionObject and regionFunctionObject
- makes it easier to implement functionObject or field object removal
2019-02-08 17:47:45 +01:00
42f1470bb4 ENH: write/clear on all components (issue #1199)
- use registry checkOut for removeRegisteredObject function object
2019-02-11 10:12:17 +01:00
cc86eae5ed STYLE: make objectRegistry::cfindIOobject() protected instead of public 2019-02-11 10:58:18 +01:00
ca1d442f44 STYLE: derive surface sampling from fvMeshFunctionObject 2019-02-11 09:47:13 +01:00
57d0540c8a ENH: generic: add genericFvsPatchField 2019-02-11 17:02:14 +00:00
4d8f5220ee COMP: polyMeshTetDecomposition: vGreat vs VGREAT 2019-02-11 12:11:59 +00:00
a3abdc5e16 ENH: Function1: better error message. Fixes #1200. 2019-02-11 12:10:47 +00:00
c50ea3cb83 isoSurface: Fix for isoSurface 'eroding' surfaces down to nothing
The occurrence is from cells with vertices that are shared between two faces
only (these vertices can originate from hex refinement). Decomposing both faces
can occasionally produce triangles with identical vertices and this results in a
non-manifold edge which triggers the erosion procedure.

Avoided by detecting cells with these special vertices and making sure the tet-decomposition
never uses the same points on the faces using them.

Patch contributed by Mattijs Janssens
2019-02-08 14:45:54 +00:00
b59fbe72c3 STYLE: DFSEM inlet - updated messages when checking validity of the stress tensors 2019-02-11 10:23:45 +00:00
cad01fea73 ENH: forces function object - made user selection clearer when running 2019-02-11 09:22:26 +00:00
2243efa9aa STYLE: missing space in warning message 2019-02-08 18:53:27 +01:00
6db9acc163 TUT: use coarser grid for gasMixing tutorial and run in parallel 2019-02-08 18:43:08 +01:00
49615340d4 ENH: add failsafe version of Enum::get() 2019-02-08 16:51:54 +01:00
59cb856f00 STYLE: provide boolList, boolUList typedefs directly in container
- move declaration of emptyLabelList (now deprecated) out of List.H
2019-02-08 16:35:53 +01:00
eff74413be COMP: resolved compiler warnings 2019-02-08 09:32:53 +00:00
f38c0f7a27 STYLE: Header clean-up 2019-02-08 09:30:46 +00:00
f76136f97e ENH: restart: save/restore cumulative continuity error. See #1172. 2019-02-07 14:28:30 +00:00
0c1c075c5b ENH: uniformFixedValue: adapt point bc. See #1046. 2019-02-07 14:08:03 +00:00
1e772411f6 ENH: code adjustments for updated NullObject
- can now safely use labelList::null() instead of emptyLabelList for
  return values. No special treatment required for lists.

  Possible replacements:

      if (notNull(list) && list.size())  ->  if (list.size())
      if (isNull(list) || list.empty())  ->  if (list.empty())

  The receiver may still wish to handle differently to distinguish
  between a null list and an empty list, but no additional special
  protection is required when obtaining sizes, traversing, outputting
  etc.
2019-02-07 13:04:24 +01:00
55cebb47ef ENH: improved handling of zone allocation in surfMesh
- relocate zone IO from Detail::MeshedSurfaceIOAllocator into surfMesh
  directly to allow re-purposing of MeshedSurfaceIOAllocator

- provide meshedSurf::emptySurface zero-sized placeholder implementation

- add concrete implementation of meshedSurf::zoneIds() to simplify
  overloading
2019-01-22 09:44:18 +01:00
b9e801ce91 ENH: extend size of NullObject for safer reinterpret cast
- previously had a single pointer/value zeros (8 bytes), this meant
  that the reinterpret cast to a List would yield a reference that
  could be unsafe under certain conditions.

  Eg,
     const labelList& myList = labelList::null();

     Info<< myList.size() << nl; // OK since size is the first parameter

     SubList<label>(myList, 0);  // Unsafe

  The SubList usage is unsafe since it passes in pointer and size into
  the underlying UList. However, the pointer from the labelList::null()
  will be whatever happens to be around in memory immediately after the
  NullObject singleton. This is mostly not a problem if the List size
  is always checked, but does mean that the data pointer is rather
  dubious.

- Increase the size of the nullObject singleton to 32 bytes of zeros
  to ensure that most reinterpret casting will not result in objects
  that reference arbitrary memory.

  The 32-byte data size is rather arbitrary, but covers most basic
  containers.
2019-02-07 11:13:13 +01:00
800ef8f815 ENH: use vtk::surfaceWriter in shortestPathSet debugging 2019-02-07 09:45:13 +01:00
a7bb3e014c STYLE: indentation 2019-02-05 09:06:24 +01:00
9461d950d2 ENH: PatchFunction1: work with points. See 1046. 2019-02-07 10:33:46 +00:00
c6cf671d28 ENH: restart: save/restore cumulative continuity error. See #1172. 2019-02-07 10:27:03 +00:00
97c8ca83a4 Merge branch 'feature-object-registry-search' into 'develop'
Feature object registry search

See merge request Development/OpenFOAM-plus!232
2019-02-07 08:59:07 +00:00
988e4cad7f BOT: Added OpenCFD copyright prior to transfer - moved files 2019-02-06 14:22:42 +00:00
4f6bea3264 BOT: Added OpenCFD copyright prior to transfer - same file locations 2019-02-06 12:49:44 +00:00
b921ae298e BOT: Cleaned up header files 2019-02-06 12:28:23 +00:00
4d82589841 ENH: exact restart. Fixes #1172. 2019-02-06 12:13:52 +00:00
6922deb9fb STYLE: relax working about patch level 2019-02-06 12:48:13 +01:00
b5ee515afc CONFIG: bump API version number to 1901 to register recent changes
- objectRegistry search, erase methods
  - clip, minMax
  - function object triggering
  ...
2019-02-06 12:01:29 +01:00
cce0d45dfe ENH: refactored regIOobject searching in object registry
- The findObject() methods are template-typed and used to locate a
  particular Type/name combination.

  Eg,

      volScalarField* ptr = obr.findObject<volScalarField>("xyz");

- The findIOobject() methods are un-typed and use the name only.

  Eg,

      regIOobject* ptr = obr.findIOobject("xyz");

The typed versions will be most commonly used, but the un-typed lookup
can be useful in a templating.

- Simplified findObject* methods to use findIOobject* as the backend.
2019-02-06 12:01:29 +01:00
0767409988 ENH: support objectRegistry::checkOut(const word& name)
- similar to what erase() does, but as a mutable operation (#1180)

- replace basicThermo lookupAndCheckout (commit 880c98757d) with
  the new objectRegistry::checkOut() method.
2019-02-06 12:01:29 +01:00
8f572a5e71 ENH: improve volRegion handling of moving meshes (#1194)
- implemented as lazy evaluation with an additional update() method.
  This avoids unnecessary changes until the values are actually
  required.

- apply mesh motion changes for momentum, volFieldValue,
  specieReactionRates function objects
2019-02-06 10:25:47 +01:00