Commit Graph

22402 Commits

Author SHA1 Message Date
ad0709b832 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
90ff1dfa5c ENH: additional constructors for IjkField 2019-02-27 08:01:19 +01:00
eae53be0c7 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
e1be36b7bb 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
c0192d7417 GIT: remove backup file 2019-03-01 08:05:13 +01:00
33f60df264 ENH: potentialFoam: add region functionality. Fixes #1223.
Also implements combination of -region and -dry-run
2019-02-28 17:04:46 +00:00
30201801d3 BUG: snappyHexMesh: deal with non-compact regions. Fixes #1221. 2019-02-28 15:09:32 +00:00
6297f7b0fd ENH: use cellPoint interpolation directly for surfaceFieldValue (#1212)
- prior to sampledSurface supporting different interpolation schemes a
  workaround means was used to simulate cellPoint -> face
  interpolation, with averaging of vertex interpolation.

  We instead now use cellPoint interpolation directly for the face
  values when 'interpolate=true'.
2019-02-25 18:40:35 +01:00
4547796ae9 BUG: dereference invalid autoPtr in XiEngineFoam (fixes #1250) 2019-03-26 09:42:27 +01:00
154d1f001b ENH: improve findInstance handling of negative times (#1112)
- normally findInstance will 'bottom out' with the constant directory
  while doing its reverse time search. This mechanism however fails
  when searching for negative start values (if there are none in the
  list). Add additional logic for this so that constant will also be
  used in these situations.

Note: to have decomposePar work for all times, may need the -constant option
to trigger the proper time list.
2019-03-26 09:16:57 +01:00
21caf7c5f9 STYLE: add 'coeffs' to annotated decomposeParDict 2019-03-26 08:27:33 +01:00
c44b46d9fb STYLE: minor adjustments for fan tables (#1229) 2019-03-26 08:17:53 +01:00
e998e9fdfd STYLE: avoid nullptr when writing fan RPM 2019-03-26 07:59:44 +01:00
ea95202c95 ENH: additional constructor and methods for PDRblock (#1216)
- construct from positions

- reset positions, minEdgeLen, find grid index

ENH: add accessor for obtaining the size of a single i-j-k dimension

- eg, obtain the 'i' dimension with any of these methods:

      ijkAddr.size(vector::X)
      ijkAddr.sizes().x()
      ijkAddr.sizes()[0]
2019-03-25 12:53:45 +01:00
3ab5dec91f 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
c98f7fd9f6 GIT: added PDRblockMesh to Allwmake 2019-02-25 07:46:21 +01:00
b4938cec59 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
eb9d4f9b55 STYLE: use finiteVolume in Make/options placeholder 2019-02-24 17:32:13 +01:00
2d26655a19 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
9d5edd161c STYLE: mention -doc-source option under -help-full instead of under -help 2019-02-24 11:40:09 +01:00
b3e061525b ENH: add directory support for foamCleanTutorials 2019-02-23 19:59:04 +01:00
36fa4b546f ENH: add labelVector2D definition
- can be useful for 2D mesh dimensioning or possibly for matrices
2019-02-22 18:11:00 +01:00
cd31a868ff ENH: support addPatches with PtrList 2019-02-22 18:11:00 +01:00
b5e4924eec 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
f0ff7627b1 BUG: incorrect increment introduced by c508da8f37 2019-02-22 13:36:39 +01:00
4f3e88c164 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
9703e195da ENH: avoid updating sampled surfaces unless necessary 2019-02-22 12:51:23 +01:00
7844f3ffad ENH: avoid references to temporaries in surfaceWriter
- previously wrapped raw points/faces with a meshedSurfRef on input,
  but now handle the raw -> meshedSurf logic directly within
  surfaceWriter to avoid holding references to temporaries

  Since the updated meshedSurfRef is now modifiable, it can be used
  directly as a redirection mechanism within surfaceWriter.

- add explicit close() in destructor
2019-02-22 11:40:58 +01:00
a6e4e4b8f4 ENH: additional constructors and methods for meshedSurfRef
- construct null, clear() and reset() methods
2019-02-22 11:10:53 +01:00
4f18978f02 STYLE: pass points, faces instead of meshedSurfRef in surfaceFieldValue
- removes a layer of opacity and may help with future restructuring
2019-02-22 11:08:07 +01:00
3390103285 BUG: new surface writer loses serial/parallel preference (fixes #1214) 2019-02-22 10:21:01 +01:00
b1679a4081 STYLE: improved layout and bool vs Switch for some CloudFunctionObjects
- add output verbosity in debug mode
2019-02-22 09:29:08 +01:00
54b5afa385 ENH: minor improvements to fvMeshDistribute (#1211)
- sorted field names for consistency, remove some local variables
2019-02-20 15:02:59 +01:00
9d3f936311 ENH: trap negative blockMesh expansions and treat as their inverse
- A negative expansion ratio is geometrically invalid and will
  normally cause issues (FatalError).
  However, we can trap this type of input and interpret it as the
  inverse expansion ratio - ie, the expansion ratio in the opposite
  direction. This can be especially convenient when generating a blockMesh
  with a symmetrical expansion. It permits using the same expansion
  ratio (with a sign change) instead of providing the reciprocal values
  manually.

COMP: revert demand-driven point creation in blockMesh (db9b35b50d)

- appears to have caused a dangling reference on some systems

ENH: add a lightweight ijkAddressing class

- it can be used for an i-j-k to linear lookup of meshes or fields,
  where applicable.
2019-02-21 19:04:22 +01:00
c8e44e69b8 BUG: Fixing entry consistency in PhaseMixtureEThermo.C
and reading dpdt in one basicThermo constructor
2019-02-20 16:45:12 -08:00
b99033c5dc Merge branch 'feature-postpro' into 'develop'
Feature postpro

See merge request Development/OpenFOAM-plus!236
2019-02-20 19:43:43 +00:00
db9b35b50d ENH: minor blockMesh improvements
- avoid potential ambiguities in naming of mesh faces/edges
  vs. block faces/edges

- additional methods characterizing the number of faces
  (internal, boundary, total) associated with a blockDescriptor

- cellLabel() accessor and checkIndex() methods

- restore demand-driven behaviour of block, cache the calculated cells
  and refactor generation of block boundary faces to improve potential
  reuse.
2019-02-17 19:29:22 +01:00
448310ea83 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
5e286a85eb STYLE: declare edge::operator[]
- already available from the FixedList inheritance, but provide
  explicitly in edge to allow future adjustment of the inheritance
  (#1205)
2019-02-16 16:21:59 +01:00
d5edd174b2 ENH: improvements to label/scalar ranges
- construct from MinMax, optional start index for identity factory
  method to match Foam::identity()

- use GREAT instead of VGREAT in inverted scalarRange.
  Consistent with boundBox - to reduce the potential of overflow
  if calculating the span.

- add min()/max() methods to labelRange
2019-02-16 16:08:43 +01:00
69b55bf26d ENH: exact: new patchDistMethod 2019-02-18 15:31:42 +00:00
77e51249c7 ENH: distributedTriSurfaceMesh: auto-decomposition; inside/outside support 2019-02-18 13:29:01 +00:00
c3a4648452 COMP: Removed unused variable 2019-02-18 12:42:38 +00:00
e3786b888b COMP: Updated for 64 bit labels 2019-02-18 11:20:40 +00:00
833a8c130b COMP: Added randomProcesses-based function objects to build 2019-02-18 11:20:18 +00:00
f4b6738458 GIT: turn off fvsPatchField debug
- seems to have slipped into an earlier commit
2019-02-15 16:36:46 +01:00
65ea231e9d GIT: missing tutorial file 2019-02-15 16:17:47 +01:00
ebd9ae6677 ENH: added foamGetDict utility (#1074)
- adapted from the 'foamGet' utility authored by Chris Greenshields
2019-02-15 14:47:46 +01:00
805f0076b3 SUBMODULES: catalyst updated to use vtk::Tools::Vertices 2019-02-15 12:20:00 +01:00
7390849652 ENH: extended runTimePostProcessing (#1206)
- Extended runTimePostProcessing to include access to "live"
  simulation objects such a geometry patches and sampled surfaces
  stored on the "functionObjectObjects" registry.

- Add 'live' runTimePostProcessing of cloud data.
  Extracts position and fields from the cloud via its objectRegistry writer

- For the "live" simulation objects, there are two new volume filters
  that work directly with the OpenFOAM volume fields:
      * iso-surface
      * cutting planes
  Both use the VTK algorithms directly and support multiple values.
  Eg, can make multiple iso-levels or multiple planes parallel to each
  other.

- When VTK has been compiled with MPI-support, parallel rendering will
  be used.

- Additional title text properties (shadow, italic etc)

- Simplified handling of scalar-bar and visibility switches

- Support multiple text positions. Eg, for adding watermark text.
2019-02-13 11:22:46 +01:00