Commit Graph

22373 Commits

Author SHA1 Message Date
Mark Olesen
cdb36e08e9 COMP: provision for non-existence of bessel functions
- These are not defined in the C++ standard for cmath, so allow for
  compilation without them. Will need to provide replacements in the
  future or rework.
2019-03-15 11:19:15 +01:00
Mark Olesen
5f0714fe5b COMP: use intptr_t instead of long for hashing pointers 2019-03-15 10:03:12 +01:00
Mark Olesen
a9096858f6 COMP: update endian macros. More universal syntax, less clutter. 2019-03-15 09:10:21 +01:00
Mark Olesen
487877377d ENH: reorganize regular expressions and add C++11 regex support
- new regExpCxx wrapper for C++11 regex support with drop-in
  compatibility with existing code.

- regExpPosix (was regExp), for future phase out in favour of regExpCxx.

- The regExp header will continue to be used for defining an
  appropriate typedef corresponding to the preferred implementation.
2019-03-14 13:24:23 +01:00
Mark Olesen
e0e0414726 STYLE: relocate endian from OSspecific to OpenFOAM/primitives
- this information is more related to processor, not OS
2019-03-14 12:12:16 +01:00
Mark Olesen
931bd1d6d1 STYLE: consistent handling of fileName concatenation (POSIX) 2019-03-14 11:48:53 +01:00
Mark Olesen
d2eb50832c ENH: add handling of lib/exe file extensions in makefile (#1238)
- relocates some logic from makefiles/general into platform-specific
  overrides
2019-03-14 10:42:57 +01:00
mattijs
5f527c28aa ENH: rhoPimpleAdiabaticFoam: unused code 2019-03-14 12:45:02 +00:00
mattijs
7d077626d3 ENH: moveDynamicMesh: add -overwrite option. Fixes #1233. 2019-03-13 15:43:38 +00:00
Mark Olesen
98e8b7ffed STYLE: correct documentation for fanFvPatchField (#1229)
- for more clarity, make read/write of rpm and mean-diameter contingent
  on nonDimensional == true
2019-03-14 08:19:15 +01:00
Mark Olesen
8bd6568d05 ENH: added areaWrite function object (#1237)
- write finiteArea meshes and fields to standard surface output
  formats (Ensight, VTK, etc).
2019-03-13 19:44:51 +01:00
Mark Olesen
9e57e2120b STYLE: make some sampledSurfaces methods protected
- less used bookkeeping/convenience methods that may be phased out
  in the future
2019-03-13 17:27:33 +01:00
Mark Olesen
ef1df59fcf STYLE: checkIndex for bitSet, PackedList only on FULLDEBUG (#1235) 2019-03-13 14:40:38 +01:00
Mark Olesen
1a35a3ef0f ENH: surface writers now track their own write status
- instead of deciding beforehand if a surface format requires a separate
  geometry file (or if a geometry file should be written if no fields were
  written) now determine afterwards if something was written.

  This improves the overall reliability (consistency) and is more
  convenient for the caller as well.
2019-03-13 14:13:04 +01:00
Mark Olesen
47b0de6d68 STYLE: fix doxygen comment for vtkWrite 2019-03-13 12:54:44 +01:00
Mark Olesen
9149b3579a ENH: PtrList and PtrListOps improvements
- PtrDynList support for move append list:
  can be used to concatenate pointer lists into a single one

- include resize in PtrDynList squeezeNull as being a natural
  combination

- support sorting operations for pointer lists (PtrListOps)
2019-03-13 10:53:28 +01:00
Mark Olesen
c2f59af036 ENH: minor improvements for plane
- comparison operator, for sorting based on the position of the origin.

- allow modification of the origin.

- zero-initialise for null constructor: base components are vectors
  and cheap to initialise.

- 'unfriend' the output operator: it uses public access methods
2019-03-13 08:00:39 +01:00
Mark Olesen
a2fb1d0bdd COMP: add wmake rules for Pgi compiler (#1234) 2019-03-11 15:56:40 +01:00
Mark Olesen
8b63d63444 COMP: rename variable to avoid confusion with 'restrict' keyword
- considered an error by the PGI compiler
2019-03-11 17:52:02 +01:00
Mark Olesen
46a853bc80 ENH: add bar/Pa conversions 2019-03-11 18:37:18 +01:00
Mark Olesen
0983eae192 COMP: OSspecific dependency on pthread no longer exists (#614) 2019-03-11 15:56:40 +01:00
Mark Olesen
e46b241378 CONFIG: bump API version number to 1902 to register changes in surface writers 2019-03-11 15:28:55 +01:00
Mark Olesen
bbd8b15437 BUG: incorrect return type for T() method. Regression from 3019f30b12 2019-03-11 15:27:36 +01:00
Mark Olesen
773ec00d4b ENH: improved consistency of surface writers (#1232)
- remove writeGeometry() in favour of write() and make it pure virtual
  so that all writers must explicitly deal with it.

- establish proxy extension at construction time and treated as an
  invariant thereafter. This avoids potentially surprising changes in
  behaviour when writing.
2019-03-11 15:09:03 +01:00
Mark Olesen
7a5e72978a COMP: runTimePostProcessing build with VTP+MPI fails (#1231)
- incorrectly uses paraview include dirs instead of the more universal
  vtk include dirs for the MPI test.
2019-03-11 11:04:18 +01:00
Mark Olesen
5d445f4ed6 ENH: suppress cell/patch/proc ids for foamToVTK (#1230)
- reduces output size, consistent with vtkWrite function object

STYLE: mark some foamToVTK options as advanced (ie, visible with -help-full)
2019-03-11 11:02:58 +01:00
mattijs
aafbca93b2 ENH: old-time field: avoid reading in postprocessing mode. Fixes #1228. 2019-03-06 11:35:16 +00:00
mattijs
ebb6a0272e BUG: faMesh: support for multi-region moving meshes. See #1170. 2019-03-04 11:00:52 +00:00
Mark Olesen
ce947eeb09 STYLE: relocate -mcpu into compiler instead of compiler-flags (#1225) 2019-03-01 18:34:05 +01:00
Mark Olesen
f01849ffd4 COMP: adjust ARM compilation flags (#1225)
- with -mcpu=native for automatic detection and -armpl for linking in
  the performance libraries
2019-03-01 18:20:41 +01:00
Mark Olesen
12adfe13fa ENH: update empty sampled surfaces storage (#1217)
- also store empty sampled surfaces, otherwise we miss geometry updates.
2019-03-01 14:50:54 +01:00
Mark Olesen
97be0673dc ENH: additional constructors for IjkField 2019-02-27 08:01:19 +01:00
Mark Olesen
8a459cdba6 ENH: use 0.0-value instead of -value for inv(dimensionSet)
- the automatic rounding avoids generation of negative zero values.
  For other exponent values it has no effect.
2019-02-26 22:43:56 +01:00
Andrew Heather
d50c5ce86f ENH: DEShybrid - added robustness for case that nuEff goes negative (typically from negative denisty in compressible cals). See #1224 2019-03-01 11:30:20 +00:00
Mark Olesen
f330921c74 GIT: remove backup file 2019-03-01 08:05:13 +01:00
mattijs
f37942b388 ENH: potentialFoam: add region functionality. Fixes #1223.
Also implements combination of -region and -dry-run
2019-02-28 17:04:46 +00:00
mattijs
a3c239af84 BUG: snappyHexMesh: deal with non-compact regions. Fixes #1221. 2019-02-28 15:09:32 +00:00
Mark Olesen
b675d13490 STYLE: consistent polyMesh owner/neighbour note
- had different spacing depending if defined from faces or shapes

- reinstates commit f7413b27b7 from history repository
2019-02-25 13:11:33 +01:00
Mark Olesen
c9549ba6a4 GIT: added PDRblockMesh to Allwmake 2019-02-25 07:46:21 +01:00
Mark Olesen
4d499d3c20 ENH: basic i-j-k Field container (#1216)
- this is a simple container for fields with i-j-k addressing.

  It does not support field operations directly, but is primarily
  intended to be used when assembling field information with i-j-k
  logic. After assembly, the field can be transferred to a regular
  field for normal operations.  Eg,

      IjkField<scalar> assemble({15, 16, 200});

      // .. fill in i-j-k fields

      Field<scalar> final(std::move(assemble));
      assemble.clear();   // be pedantic
      ...
2019-02-24 18:16:17 +01:00
Mark Olesen
e9323ecbbb STYLE: use finiteVolume in Make/options placeholder 2019-02-24 17:32:13 +01:00
Mark Olesen
84270ed667 ENH: new PDRblockMesh mesh generation utility (issue #1216)
- While a rectilinear mesh can be created with blockMesh, not every mesh
  created with blockMesh will satisfy the requirements for being a
  rectilinear mesh.

  This alternative to blockMesh uses a single block that is aligned
  with the xy-z directions and specifications of the control points,
  mesh divisions and expansion ratios. For example,

    x
    {
        points  ( -13.28 -0.10 6.0 19.19 );
        nCells  (  10  12 10 );
        ratios  ( 0.2   1  5 );
    }

    y { ... }
    z { ... }

  With only one block, the boundary patch definition is simple and the
  canonical face number is used directly. For example,

    inlet
    {
        type    patch;
        faces   ( 0 );
    }
    outlet
    {
        type    patch;
        faces   ( 1 );
    }

    sides
    {
        type    patch;
        faces   ( 2 3 );
    }

    ...

- After a mesh is defined, it is trivial to retrieve mesh-related
  information such as cell-volume, cell-centres for any i-j-k location
  without an actual polyMesh.

STYLE: remove -noFunctionObjects from blockMesh

- no time loop, so function objects cannot be triggered anyhow.
2019-02-23 15:45:32 +01:00
Mark Olesen
94a3d0249b STYLE: mention -doc-source option under -help-full instead of under -help 2019-02-24 11:40:09 +01:00
Mark Olesen
33edea3ea4 ENH: add directory support for foamCleanTutorials 2019-02-23 19:59:04 +01:00
Mark Olesen
5de5ae35ba ENH: add labelVector2D definition
- can be useful for 2D mesh dimensioning or possibly for matrices
2019-02-22 18:11:00 +01:00
Mark Olesen
bdf57fb44e ENH: support addPatches with PtrList 2019-02-22 18:11:00 +01:00
Mark Olesen
7795adfcb4 ENH: additional PtrList constructor and memory management method
- PtrList::release() method.

  Similar to autoPtr and unique_ptr and clearer in purpose than
  using set(i,nullptr)

- Construct from List of pointers, taking ownership.

  Useful when upgrading code. Eg,

     List<polyPatch*> oldList = ...;
     PtrList<polyPatch> newList(oldList);
     ...

BUG: incorrect resizing method names (PtrDynList) in previously unused code
2019-02-22 15:55:17 +01:00
Mark Olesen
683817bcab BUG: incorrect increment introduced by c508da8f37 2019-02-22 13:36:39 +01:00
Mark Olesen
57d2eabc6f DEFEATURE: remove surfMesh samplers - superseded by sampledSurfaces
- this functionality was originally added to allow sampling of volume
  fields onto a surface in order to perform calculations on them.

  However, the sampling framework essentially mirrored the
  sampledSurface, but was less complete.

  It is now possible to store sampled surfaces on a registry and
  do calculation with their fields. This is the preferred method,
  and thus removing the surfMeshSample duplicate code.
2019-02-22 13:06:34 +01:00
Mark Olesen
647a86b7d1 ENH: avoid updating sampled surfaces unless necessary 2019-02-22 12:51:23 +01:00