Commit Graph

6684 Commits

Author SHA1 Message Date
ae94509f42 ENH: wrap internal POSIX directory reading as an iterator class 2019-04-03 17:34:56 +02:00
567fced30b ENH: add pTraits<complex> (#1247) 2019-04-04 19:00:29 +02:00
1c4e32fb6a ENH: add iterators to VectorSpace (#1265)
- this adds support for various STL operations including

    * sorting, filling, find min/max element etc.
    * for-range iteration

STYLE: use constexpr for VectorSpace rank
2019-04-04 17:14:27 +02:00
f3670521cd STYLE: use std:: qualifier on ::abort, ::exit
- consistent with use of <cstdlib> and makes for a stronger distinct
  from Foam::abort etc.
2019-04-03 20:24:30 +02:00
939144233c STYLE: adjusted wording and messages for wmake
- add an additional test for wmake pre-processing
2019-04-03 08:57:01 +02:00
89245fa796 ENH: allow space char in fileName is now configurable (#1008)
- having whitespace in fileName can be somewhat fragile since it means
  that the fileName components do not necessarily correspond to a
  'Foam::word'. But in many cases it will work provided that spaces
  are not present in the final portion of the simulation directory
  itself.

    InfoSwitches
    {
        // Allow space character in fileName (use with caution)
        allowSpaceInFileName    0;
    }

- now use doClean=true as default for fileName::validate(). Was false.

  Unlike fileName::clean() this requires no internal string rewrite
  since the characters are being copied.  Also handle any path
  separator transformations (ie, backslash => forward slash) at the
  same time. This makes it resemble the std::filesystem a bit more.
2019-04-01 16:40:22 +02:00
49ba6a8e94 ENH: Updating overRhoSimpleFoam and overSimpleFoam to use
oversetInterpolationSuppressed dict.
2019-04-03 12:55:33 -07:00
cb250f59f3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-04-01 08:30:41 -07:00
1a13cd273b ENH: Adding new Gaussian power profile for laser 2019-04-01 08:29:56 -07:00
a01b05b8c4 ENH: renumberMesh: renumber refinement data. Fixes #1241. 2019-04-01 09:48:23 +01:00
37819905c2 ENH: add some function support for complexField (#1247)
- operators are still incomplete, as are dimensioned fields,
  field-fields etc.

- split complexFields into separate complexField, complexVectorField files
2019-03-29 11:57:02 +01:00
fcba64913a ENH: conversion and function improvements for complex (#1247)
- add construction from and conversion to std::complex, which allows
  easier wrapping of functions

- add Foam:: functions for complex versions of sin, cos, ...
2019-03-29 11:03:48 +01:00
5ab1021211 ENH: overset: move to oversetInterpolationSuppressed. Part of #1041. 2019-03-28 15:17:13 +00:00
83e321d3e4 ENH: snappyHexMesh: allow cross-patch merging of patch faces. Fixes #1255. 2019-03-27 15:04:48 +00:00
1788bce0a2 ENH: changed definition of complex::one (#1247)
- was historically defined as (1 1), but it is more consistent with
  the concept of one to have a real component only.

  Now defined as (1 0):  1+0i

STYLE: remove obscure '!' operator for complex conjugate

- either use the member function or the '~' operator
2019-03-27 08:24:03 +01:00
f513f8bec6 ENH: extrudeMesh: -dict. See #1253 2019-03-27 10:39:35 +00:00
33894bf893 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-03-26 10:58:14 -07:00
c787edc846 ENH: Delete unused Qin_ variable on laserDTRM.H 2019-03-26 10:57:45 -07:00
a1999bc92c ENH: additional construct/assignment methods for complex (#1247)
- construct/assign from Zero
2019-03-25 15:17:58 +01:00
a33f1787b7 ENH: globalIndex: helper function to get remote values 2019-03-21 17:55:05 +00:00
4995fc5997 ENH: add findCell for PDRblockMesh 2019-03-14 16:24:20 +01:00
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
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
5f527c28aa ENH: rhoPimpleAdiabaticFoam: unused code 2019-03-14 12:45:02 +00:00
7d077626d3 ENH: moveDynamicMesh: add -overwrite option. Fixes #1233. 2019-03-13 15:43:38 +00:00
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
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
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
aafbca93b2 ENH: old-time field: avoid reading in postprocessing mode. Fixes #1228. 2019-03-06 11:35:16 +00:00
97be0673dc ENH: additional constructors for IjkField 2019-02-27 08:01:19 +01:00
f330921c74 GIT: remove backup file 2019-03-01 08:05:13 +01:00
f37942b388 ENH: potentialFoam: add region functionality. Fixes #1223.
Also implements combination of -region and -dry-run
2019-02-28 17:04:46 +00:00
8a7d8e74fe BUG: dereference invalid autoPtr in XiEngineFoam (fixes #1250) 2019-03-26 09:42:27 +01:00
c9549ba6a4 GIT: added PDRblockMesh to Allwmake 2019-02-25 07:46:21 +01:00
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
e9323ecbbb STYLE: use finiteVolume in Make/options placeholder 2019-02-24 17:32:13 +01:00
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
33edea3ea4 ENH: add directory support for foamCleanTutorials 2019-02-23 19:59:04 +01:00
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
1dc9e7c4f4 BUG: Fixing entry consistency in PhaseMixtureEThermo.C
and reading dpdt in one basicThermo constructor
2019-02-20 16:45:12 -08:00
181c974b11 ENH: improved sample surfaces and surface writers (#1206)
- The writers have changed from being a generic state-less set of
  routines to more properly conforming to the normal notion of a writer.
  These changes allow us to combine output fields (eg, in a single
  VTK/vtp file for each timestep).

  Parallel data reduction and any associated bookkeeping is now part
  of the surface writers.
  This improves their re-usability and avoids unnecessary
  and premature data reduction at the sampling stage.

  It is now possible to have different output formats on a per-surface
  basis.

- A new feature of the surface sampling is the ability to "store" the
  sampled surfaces and fields onto a registry for reuse by other
  function objects.

  Additionally, the "store" can be triggered at the execution phase
  as well
2019-02-07 18:11:34 +01:00
fe445ac516 ENH: support VTK output of point ids
- can be useful for diagnosing mesh internals and the locations of
  decomposed cells.
2019-02-17 15:09:36 +01:00
170041aaf5 ENH: for-range, forAllIters() ... in applications/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
95a33c2f68 ENH: wordRes::uniq() removes all duplicates
- previously just removed duplicate literals, but now remove any
  duplicates.

- Replace previous wordHashSet implementation with a linear search
  instead. The lists are normally fairly small and mostly just have
  unique entries anyhow. This reduces the overall overhead.
2019-02-14 11:03:04 +01:00
60234ab007 STYLE: reduced nesting on return branching 2019-02-13 08:06:36 +01:00
ff54ef8299 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
e3e0d7c8b9 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
9cb57f7fa8 ENH: restart: save/restore cumulative continuity error. See #1172. 2019-02-07 14:28:30 +00:00
078e34746e 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
eaa3da72c5 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