Commit Graph

4639 Commits

Author SHA1 Message Date
01ec92fd35 GIT: remove leading/trailing blank lines, trailing whitespace 2020-06-17 10:46:26 +02:00
ddfe9ae2a3 COMP: adjustments for SPDP, int64 2020-06-16 21:30:12 +02:00
8b191109b3 COMP: default copy construct for MatrixBlock 2020-06-15 12:39:41 +02:00
7dab7f91d8 STYLE: update comments for DynamicList 2020-06-15 11:42:48 +02:00
aa956f4b05 ENH: Pstream: Feed through outstanding requests more. See #1626.
This e.g. was giving a problem with using volPointInterpolation (in
functionObjects) with non-blocking global reductions.
2020-06-10 12:10:02 +01:00
237f2e1076 STYLE: accept label for version in dictionary header
- refinement of commit 33f9ae5080.

  After foamDictionary -expand, the '2.0' becomes '2', so accept that
  as a reasonable token.
2020-06-09 00:55:58 +02:00
b2467ff442 STYLE: minor code style changes 2020-06-09 00:55:01 +02:00
f5874937eb ENH: copy assignment, bool comparison for polynomialFunction 2020-06-08 21:33:31 +02:00
a5c6516e23 DOC: elaborate the usage of function objects
ENH: update libs of etc/caseDicts/postProcess items
  ENH: ensure destructor=default
  ENH: ensure constness
  ENH: ensure no 'copy construct' and 'no copy assignment' exist
  TUT: add examples of function objects with full set
       of settings into a TUT if unavailable
  TUT: update pisoFoam/RAS/cavity tutorial in terms of usage
2020-06-08 15:43:47 +01:00
0f27a540be COMP: initialization order 2020-06-08 12:47:43 +02:00
636d2688a5 COMP: corrected code removed in 51c2329f97 2020-06-08 08:07:34 +01:00
1b45599b26 ENH: enable user to control re-writing of function object output file headers. See #1556 2020-06-05 14:37:21 +01:00
ef9ee7a8b1 ENH: add iterative eigen decomposition solver, EigenMatrix
ENH: add Test-EigenMatrix application

  The new iterative eigen decomposition functionality is
  derived from:

    Passalacqua et al.'s OpenQBMM (openqbmm.org/),
    which is mostly derived from JAMA (math.nist.gov/javanumerics/jama/).
2020-06-05 14:35:36 +01:00
153f847ad2 BUG: fix pinv() for single-element input matrices
ENH: return zero-valued matrix when input zero-valued matrix in pinv()
2020-06-05 14:35:36 +01:00
af22163492 ENH: improve Matrix classes and tests 2020-06-05 14:35:36 +01:00
5c220a9e2d Merge remote-tracking branch 'origin/master' into develop 2020-06-04 22:30:12 +02:00
ea4c8f4bea ENH: boolVector for specialized bundling of boolean values
- bundled of boolean values as a vector of 3 components with
  element access using x(), y() and z() member functions.
  It also has some methods similar to bitSet.

- Not derived from Vector or VectorSpace since it does not share very
  many vector-like characteristics.
2020-06-04 16:56:21 +02:00
bc9e97cf36 ENH: additional polynomial constructors, improved I/O
- support construct from initializer_list, which can help simplify
  code with constant coefficients.

- add default constructor for polynomialFunction and Istream reading
  to support resizable lists of polynomialFunction.

  A default constructed polynomialFunction is simply equivalent to
  a constant zero.

- no special IO handling for Polynomial required,
  it is the same as VectorSpace anyhow.
2020-06-04 15:02:21 +02:00
3e43edf056 ENH: unify use of dictionary method names
- previously introduced `getOrDefault` as a dictionary _get_ method,
  now complete the transition and use it everywhere instead of
  `lookupOrDefault`. This avoids mixed usage of the two methods that
  are identical in behaviour, makes for shorter names, and promotes
  the distinction between "lookup" access (ie, return a token stream,
  locate and return an entry) and "get" access (ie, the above with
  conversion to concrete types such as scalar, label etc).
2020-06-02 17:26:03 +02:00
31b172217c ENH: support predicate checks for argList (similar to dictionary methods)
- Favour use of argList methods that are more similar to dictionary
  method names with the aim of reducing the cognitive load.

  * Silently deprecate two-parameter get() method in favour of the
    more familiar getOrDefault.
  * Silently deprecate opt() method in favour of get()

  These may be verbosely deprecated in future versions.
2020-06-02 13:51:18 +02:00
695766af16 COMP: no constexpr methods for older gcc (nullObject) 2020-05-31 20:44:12 +02:00
1d7d5b2d26 ENH: provide lightweight labelFwd, scalarFwd headers
- centralizes sizing information and typedefs
  without dependencies beyond <cstdint>

COMP: ensure label typedef exists for nullObject.H
2020-05-29 15:56:08 +02:00
727ea48e0c STYLE: include scalar.H instead of floatScalar.H/doubleScalar.H separately
STYLE: adjust code comments
2020-05-29 15:55:56 +02:00
1d2391e0b4 ENH: add swallow assignment to nullObject
- similar to the behaviour of std::ignore and consistent with the
  no input / no output nature of nullObject. Similarly accept a
  const reference for its Istream operator.

- make most nullObject methods constexpr
2020-05-29 15:55:27 +02:00
e3367dbdc1 ENH: inline and extend clockValue, clockTime
- mostly wraps std::chrono so can inline much of it, which is potentially
  helpful when used for inner timings.

- add elapsedTime() method for direct cast to double and for
  naming similarity with wall-clock method.

Potential breaking change (minor):

- clockValue construct with a bool parameter is now simply tagged
  dispatch (value is ignored) and always queries the current clock
  value. This avoids needless branching.
  Since this constructor form has primarily been used internally (eg,
  clockTime), breakages in user code are not expected.
2020-05-29 15:48:21 +02:00
5eebe5050b ENH: reduce dependencies for foamVersion.H
- have printBuildInfo output to std::ostream
- removed extraneous include "stdFoam.H"

ENH: revert to pre-processor defines for hard-coded paths (#1712)

- redundant information, but more robust at run-time without relying
  on initialization order
2020-05-29 15:48:20 +02:00
be417c9841 COMP: erroneous return from void method (fixes #1716) 2020-05-26 10:40:26 +02:00
997c9a232c STYLE: use compact form for libs () entries 2020-05-23 18:42:47 +02:00
5105154b88 ENH: expression versions of Function1 and PatchFunction1 (#1709) 2020-05-23 18:42:47 +02:00
51c2329f97 ENH: additional step function, cleanup autoPtr use in Function1 2020-05-23 18:42:41 +02:00
2659c48f36 COMP: change foamVersion::configuredProjectDir to function (#1712)
- exhibited apparent issues with initialization order (on some
  installations of gcc-4.8.5) when a variable was used.
2020-05-23 15:56:25 +02:00
a5a504693a ENH: support disable libs when constructing Time from argList (#1714)
- previously relied on presence/absence of command-line options.
  Can now explicitly disable individually

- provide shorter constructors for dealing with these types of cases.
  Make construction with non-default names for "system" and "constant"
  lengthier so there is no ambiguity.
2020-05-23 15:28:32 +02:00
06ae8dca14 ENH: output Warning messages to stderr when banners are suppressed (#1713) 2020-05-23 13:07:48 +02:00
7a063c58ce BUG: processorCyclic: patch face ordering. Fixes #1704. 2020-05-20 09:29:19 +01:00
c156125669 ENH: construct fixed-length items as a fixed-length subset (#1708)
For example,

    const edge meshE(patch.meshPoints(), patch.edges()[edgei]);
2020-05-18 20:01:18 +02:00
836dc16f30 ENH: support an 'arg()' pseudo-function for fv-based expressions 2020-05-18 18:42:14 +02:00
2b8af776b4 Merge remote-tracking branch 'origin/master' into develop 2020-05-15 15:32:43 +02:00
dd4b8cf30d BUG: incorrect startLineNumber for primitiveEntry (fixes #1706) 2020-05-14 17:27:56 +02:00
2530bb77ae COMP: add copy assign List from FixedList (was missing) 2020-05-13 21:21:23 +02:00
44b225604d ENH: add blockMeshDict "mergeType" keyword (#1589)
- enumerated values are (points | topology) which can be optionally
  specified in the blockMeshDict. Default is 'topology'.

  If the command-line option `blockMesh -merge-points` is specified,
  this has absolute priority over any blockMeshDict entry.

STYLE: changed blockMesh "-blockTopology" option to "-write-obj"

- this is more specific to what it does. Potentially wish to add a
  "-write-vtk" option in the future.

TUT: adjust tutorials to use preferred or necessary merge strategies:

  * channel395DFSEM - topology
  * nozzleFlow2D - points
  * pipeCyclic - points
2020-05-13 20:59:03 +02:00
1584f28e91 ENH: blockMesh: generate duplicate boundary faces. Fixes #1516 2020-05-13 11:59:47 +01:00
9e3d06853e ENH: add 'subcommand' handling to wmake (#1693)
- initial split of wmake-related commands into "plumbing" and
  "porcelain" akin to how git handles things.

- wmakeBuildInfo (very low-level), now relocated to the wmake/scripts
  and accessible for the user as "wmake -build-info".

  This satisfies a long-standing desire to access build information
  in a fashion similar to the api/patch information.

CONFIG: avoid git information when building with a debian/ directory

- when a 'debian/' directory exists, there is a high probability that
  the '.git/' directory is from debian and not from OpenFOAM (ie,
  useless here). This corresponds to an implicit '-no-git', which has
  no effect when building from pristine sources.

ENH: wmakeCheckPwd becomes scripts/wmake-check-dir

- accessible for the user as "wmake -check-dir" and with 1 or 2
  directory names. A wmakeCheckPwd symlink left for compatibility.
2020-05-12 10:05:24 +02:00
a577f8e006 BUG: Pair sort on construct did the opposite (fixes #1701) 2020-05-11 20:37:19 +02:00
8395d69cdb BUG: Pair sort on construct did the opposite (fixes #1701) 2020-05-11 20:23:19 +02:00
435957ac87 ENH: exposed access to compile-time project, etc directories
- less frequently used, but the information was previously inaccessible
  under etcFiles.C.

  Now exposed within the foamVersion namespace and defined under
  <global.Cver> to improve configuration possibilities.
2020-05-11 14:14:59 +02:00
6a16db3708 ENH: use hasEnv() instead of env() for naming symmetry with getEnv, setEnv
- less confusing than the env() name, which could look like a
  setter/getter instead of a test
2020-05-11 10:12:26 +02:00
77a2c1b578 ENH: support token conversion of scalar to label (#1696)
- this specifically arises in the case we have used the `#eval` syntax
  to generate a value.
  However, since the expressions produce scalar/vector/tensor etc, the
  tokenized value will *not* be introduced into the dictionary as a
  label, even if it appears to be an integer value.

  Eg, eval "2*5", eval "sqrt(100)" both yield `scalar(100)`, which
  will not be suitable for any consumer expecting a label value.

  With the `#calc` version, this problem is glossed over since it uses a
  string buffer for the output (which can suppress the decimal)
  and re-parses the string into tokens, which causes a label to be
  recognized.

- Since we obviously already support implicit handling of ints as
  floats (when reading), now also allow conversion of float
  representations of integral values.

  Uses the ad hoc value of 1e-4 for deciding if the value deviates too
  far from being integral.

- As a side-effect, can now also support scientific notation when
  specifying integers.  Eg, (10 100 1e+3) for cell counts.
2020-05-04 14:54:45 +02:00
8cfb483054 STYLE: some general spelling fixes 2020-05-04 09:15:21 +02:00
0680416b59 COMP: tag lookupObjectPtr and lookupObjectRefPtr as deprecated
- were deprecated via comments (2018-10).
  Now mark with compilation warning
2020-05-01 16:42:55 +02:00
a1ccd1b716 STYLE: use DebugInFunction macro 2020-05-01 16:11:18 +02:00