Commit Graph

15257 Commits

Author SHA1 Message Date
2ce944a748 STYLE: documentation/comment typo 2019-01-02 16:16:45 +01:00
e2bc0b55b9 COMP: use std::move() explicitly to avoid copying 2019-01-02 15:56:54 +01:00
f67f36c63a COMP: avoid some static analysis warnings 2019-01-02 13:49:39 +01:00
c13199d3ce STYLE: make chemistryReader private inheritance (issue #1144)
- The chemistryReader is only used during construction of reactingMixture
  and thus does not require public visibility.
2019-01-02 14:44:21 +01:00
10da897275 ENH: snappyHexMesh: limit printing in dry-run. See #972. 2018-12-24 08:55:42 +00:00
3560884abe ENH: allow direct testing of HashTable iterator as a bool
- can be used as a more natural test on the iterator.
  For example, with

     HashTable<..> table;
     auto iter = table.find(...);

  Following are now all equivalent:

    1.  if (iter != table.end()) ...
    2.  if (iter.found()) ...
    3.  if (iter) ...
2018-12-20 18:03:16 +01:00
08335beb6f ENH: add get() accessor to tmp classes
- similar to autoPtr and unique_ptr. Returns the pointer value without
  any checks. This provides a simple way for use to use either
  an autoPtr or a tmp for local memory management without accidentally
  stealing the pointer.

  Eg,

     volVectorField* ptr;
     tmp<volVectorField> tempField;

     if (someField.valid())
     {
         ptr = someField.get();
     }
     else
     {
         tempField.reset(new volVectorField(....));
         ptr = tmpField.get();
     }

     const volVectorField& withField = *ptr;

STYLE: make more tmp methods noexcept
2018-12-20 17:29:51 +01:00
17419209a7 STYLE: return a pointer instead of bool for isA<>
- in some cases this means you could avoid an isA<> followed by
  second dynamicCast<>
2018-12-20 18:02:16 +01:00
2444e0f964 Merge branch 'release-v1812' 2018-12-20 16:12:59 +00:00
9231534efa STYLE: Updating version to v1812 2018-12-19 18:07:52 +00:00
df58bb96a8 BUG: swirlFanVelocity: preserve pressure name. Fixes #1138. 2018-12-20 14:33:49 +00:00
e22606756b BUG: meanVelictyForce: missing correctBoundaryConditions. Fixes #1136. 2018-12-20 09:23:10 +00:00
b476b56afb BUG: meanVelictyForce: missing correctBoundaryConditions 2018-12-19 16:29:10 +00:00
4910dbc995 STYLE: particle: improved warning message 2018-12-19 11:31:44 +00:00
e8f25b1385 BUG: foamToVTK, vtkWrite stopped by processorCyclic (closes #1135)
- they had an isType<> instead of isA<>() check
2018-12-19 13:56:20 +01:00
485523eab5 ENH: Added new columnAverage function object
Averages columns of cells for layered meshes.

    For each patch face, calculates the average value of all cells attached in
    the patch face normal direction, and then pushes the average value back
    to all cells in the column.

    Useful for channel-like cases where we want to average fields in the
    spanwise direction.

    Example of function object specification:
    columnAverage1
    {
        type        columnAverage;
        libs        ("libfieldFunctionObjects.so");
        ...
        patches     (front side);
        fields      (U p);
    }

    Where the entries comprise:
    \table
        Property     | Description               | Required    | Default value
        type         | type name: fieldMinMax    | yes         |
        patches      | list of patches to collapse onto | yes  |
        fields       | list of fields to process | yes         |
    \endtable
2018-12-18 10:35:34 +00:00
e145034a6d STYLE: Code clean-up 2018-12-17 12:02:55 +00:00
b0eeea8365 STYLE: fix doc for patchTo.. topo sources 2018-12-18 16:28:27 +01:00
a85fb097ef ENH: Allowing negative pressure drop in fan BC (EP 815) 2018-12-17 08:34:10 -08:00
3f4289c238 COMP: scalarRanges construct null for gcc-48 2018-12-17 13:36:50 +01:00
c4ec41218b ENH: allow "none" as time range specification (issue #1128)
- this corresponds to 'never match', which may be useful in combination
  with -constant selection.

  Eg,

      surfaceMeshTriangulate -constant -time none

  selects only the constant entry and suppresses any automatic time loop

STYLE: adjust help for the standard -times option

- indicate that times can be comma or space separated, since this is
  otherwise not apparent. Don't mention semicolon separators in the help
  since that just adds even more clutter.
2018-12-17 01:25:07 +01:00
c594d0ae91 STYLE: carp() method is const 2018-12-16 22:07:56 +01:00
7c556ec275 ENH: support text shadow, italic, opacity in runTimePostProcessing 2018-12-16 21:50:27 +01:00
c3507f74f2 ENH: improve file reader support for runTimePostProcessing (#1091)
- support .vtp format for geometry, surface, line, cloud.

- use native reader for handling vtk, vtp, obj, stl surface files.
  For other formats, use the MeshedSurface (the surfMesh lib) to
  handle reading and Foam::vtk::Tools::Patch to handle the
  conversion to vtkPolyData. This combination is more memory efficient.

- update tutorial case to include vtp surface geometry
2018-12-16 19:14:22 +01:00
24c8f5a597 ENH: arbitrary face types for vtk::Tools::Patch::faces()
- the patch could use face or triFace (labelledTriFace)

- avoid trigger patch faceNormals unnecessarily
2018-12-16 13:52:16 +01:00
dc8179f5e0 ENH: add some storage queries to PrimitivePatch
- for quantities such as face area/normals etc, it can be useful to
  calculate directly and avoid the overhead of caching all the values.

STYLE: comments, use HashTable lookup() method in whichPoint()
2018-12-16 14:21:45 +01:00
d1caaa0529 ENH: build dummy runTimePostProcessing if VTK/ParaView are not available
- this allows more use of the runTimePostProcessing functionObject
  that will fail more gracefully if the proper version could not be
  built.

  The dummy functionObject simply emits a message that it is not available.
2018-12-15 18:08:51 +01:00
9076f5b21b ENH: provide argList::envGlobalPath() static method
- this is identical to either of these solutions:

     * getEnv("FOAM_CASE")
     * stringOps::expand("<case>")

  but with a closer resemblance to argList or Time globalPath(),
  which makes the intent clearer.
  Avoids using raw strings in the caller, which improves compile-time checks.

  Used in situations where a class has no derivation path or other
  access to a time registry or command args.
2018-12-15 14:39:12 +01:00
455c8ef540 ENH: simplify use of case-relative paths
- provide relativePath() for argList and for Time.
  These are relative to the case globalPath().
  Eg,

     Info<< "output: " << runTime.relativePath(outputFile) << nl;
2018-12-15 13:26:55 +01:00
2f9c511be5 ENH: make "file" property in functionObjects a relative path (issue #1125)
- partial solution for issue #1091

  This generates file properties that are case-relative,
  Eg,

      plane0
      {
          p
          {
              file "<case>/postProcessing/plane0/1/p_plane0.vtk";
          }
          U
          {
              file "<case>/postProcessing/plane0/1/U_plane0.vtk";
          }
      }

   This allows the case to be moved elsewhere and still find its files.

   This functionality was previously added for vtkCloud, but now also
   applies to streamLine, sampledSets and sampledSurfaces
2018-12-14 18:03:12 +01:00
2617c326d8 ENH: extend fileName::relative() method
- optionally replace stripped parent directory with the \<case\> shortcut

    "/this/path/and/subdirs/name"

    relative("/this/path")        -> "and/subdirs/name"
    relative("/this/path", true)  -> "\<case\>/and/subdirs/name"
2018-12-14 17:44:07 +01:00
4696a96fec STYLE: option consistency for acousticDampingSource
- accept origin or centre, as per other geometric entities
2018-12-14 11:42:00 +01:00
e761570986 ENH: reduce number of warnings emitted by hierarchGeomDecomp
- it is sufficient to provide the total number of times that findBinary()
  failed instead of flooding the screen with messages

  Full verbose warnings still emitted when debugging is on.
2018-12-13 18:26:30 +01:00
1d85fecf4d ENH: use Zero when zero-initializing types
- makes the intent clearer and avoids the need for additional
  constructor casting. Eg,

      labelList(10, Zero)    vs.  labelList(10, 0)
      scalarField(10, Zero)  vs.  scalarField(10, scalar(0))
      vectorField(10, Zero)  vs.  vectorField(10, vector::zero)
2018-12-11 23:50:15 +01:00
6e8cf684d1 STYLE: reduce else/if levels for return 2018-12-21 09:38:16 +01:00
a9f5f181c6 STYLE: remove extra '(' in usage information, doubled ';;' 2018-12-21 09:22:06 +01:00
fc13c20cc8 ENH: sampledPatch: access to patchIDs. 2018-12-10 15:21:48 +00:00
2db0db3006 BUG: stringOps etc expansion fails for directories (issue #1121)
- now use findEtcEntry() instead to handle file or directory.

  Added findEtcEntries(), which provides provides a common code basis
  for findEtcDirs(), findEtcFiles() ...
2018-12-13 12:48:31 +01:00
3d95f56589 ENH: add optional checkGzip parameter to fileName::type(..) method
- this simplifies use of a unified test for directory or file.

      fileName::Type what = myfile.type(true, true);
      if (what == FILE) ...
      if (what == DIRECTORY) ...

- Use distinct bit values for fileName::Type, for possible use in
  the future.

- related to issue #1121, since we need a more flexible way of
  expanding file or directory.

  An alternative would be to add checkGzip to Foam::exists() and
  Foam::type() functions, but that would make the code there more
  confusing and in the fileHandler classes.
2018-12-13 09:40:54 +01:00
5d9e278e92 ENH: consolidate handling of mandatory/optional command arguments
- for some special cases we wish to mark command-line arguments as
  being optional, in order to do our own treatment. For example,
  when an arbitrary number of arguments should be allowed.

  Now tag this situation with argList::noMandatoryArgs().
  The argList::argsMandatory() query can then be used in any further
  logic, including the standard default argument checking.

- with the new default check, can consolidate the special-purpose

      "setRootCaseNonMandatoryArgs.H"

  into the regular

      "setRootCase.H"

- revert to a simple "setRootCase.H" and move all the listing related
  bits to a "setRootCaseLists.H" file. This leaves the information
  available for solvers, or whoever else wishes, without being
  introduced everywhere.

- add include guards and scoping to the listing files and rename to
  something less generic.

     listOptions.H -> setRootCaseListOptions.H
     listOutput.H  -> setRootCaseListOutput.H
2018-12-13 01:45:09 +01:00
00ec58a141 ENH: extend flexibility of abort function object (#1119)
- Now also responds to the contents of the trigger file,
  processing action= contents similar to used with external coupling.

  Previously it only handled an action that was defined in the
  dictionary. With this update, the user can chose a diferent action
  simply by echoing the appropriate action string into the trigger
  file.
2018-12-12 15:39:49 +01:00
172c36c29a ENH: support search modes for etcFiles()
- similar to the foamEtcFile script -mode=... option, the specific
  search location (user/group/other) can now also specified for
  string expansions and as a numerical value for etcFile()

  For example, if searching for group or other (project) controlDict,
  but not wishing to see the user controlDict:

    1.  foamEtcFile -mode=go controlDict

    2.  fileName dictFile("<etc:go>/controlDict");
        dictFile.expand();

    3.  etcFile(controlDict, false, 0077);

  The default behaviour for searching all contexts is unchanged.

    1.  foamEtcFile controlDict

    2.  fileName dictFile("<etc>/controlDict");
        dictFile.expand();

    3.  etcFile(controlDict);
2018-12-12 13:45:32 +01:00
67140f6b07 STYLE: update documentation about central controlDict 2018-12-12 13:38:14 +01:00
29a5793b5b STYLE: argList::opt method instead of the longer argList::lookupOrDefault
- also replaced a few instances of readIfPresent with opt<> for
  constant values.
2018-12-12 12:10:39 +01:00
f38190213c ENH: support usage descriptions for command arguments 2018-12-12 11:58:56 +01:00
c3b6c787a7 BUG: sampledSurface::originalIds not virtual 2018-12-12 10:52:11 +01:00
a66e9c7468 ENH: adjust completion parser
- restrict to text between "^[Oo]ptions:" and "-help-full" to avoid
  potential issues when more text is introduced in the usage output.
2018-12-12 03:07:14 +01:00
d29388f1c5 STYLE: use foamVersion::api instead of OPENFOAM define
- for referencing the etc locations, or reporting the current API
  value.
2018-12-12 03:02:49 +01:00
99b85e3b3d COMP: disambiguate for 64-bit label 2018-12-11 19:36:23 +01:00
a93a1abec7 COMP: define Scotch and Zoltan include dirs before mpi directories
- the local third-party headers are to be searched before any MPI
  include directories. This stops the situation where an mpi-specific
  version of ptscotch.h is installed into the MPI directories.

  This "system" version may well have a different SCOTCH_Num size
  (32 bit vs 64 bit) from the third-party library etc.
2018-12-11 18:50:19 +01:00