- 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
- dependency handling relocated from cmakeFunctions to wmakeFunctions
and reused for mpi-versioned builds. This allows more checks for
configuration parameters and removes hard-code build path
information.
CONFIG: remove spurious mplibHPMPI entries
CONFIG: remove ADIOS1 rules (antiquated)
- 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.
- 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.
- 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.
- simplified templating, which cleans up code and does not appear to
break any normal user coding.
ENH: unique_ptr instead of homegrown demand-driven handling.
For a given point within a given mesh, the existing `meshWave` method gives
the orthogonal distance to a patch. In meshes with very steep terrain (e.g.
a hill of 90 [deg], this might be problematic for the fields that require
the distance to the patch associated with the terrain surface.
`directionalMeshWave` is a variant of `meshWave` distance-to-patch method,
which ignores the component in the specified direction. Can be used e.g. to
calculate the distance in the z-direction only.
TUT: add example of directionalMeshWave to mesh/moveDynamicMesh/SnakeCanyon
Requirement by CENER
Implementation by Mattijs Janssens
- takes a search string and a replacement character.
The replacement character can also be a nul char ('\0'), which
simply removes the characters.
Possible uses:
* Replace reserved characters
str.replaceAny("<>:", '_');
* Remove shell meta-characters or reserved filesystem characters
str.replaceAny("*?<>{}[]:", '\0');
- construct from dimensioned/value, defaulting name from value.
Can be convenient for these type of operations:
max(.., dimensionedScalar(somedims, 0.5))
- construct from dimensioned/one, forwarding to pTraits::one.
Can be convenient for constructors:
volScalarField( ..., dimensionedScalar(somedims, one{}))
ENH: minor updates to zero/one classes.
- add global 'One' constant for symmetry with 'Zero'.
- clearer than passing a reference to a dummy variable,
or relying on move occuring within the copy constructor
(historical, but should be deprecated)
STYLE: consistent autoPtr syntax for uncollated file operations
- can help in circumstances when an zero-sized entry is written on
some processors, but the compound-type may be useful for determining
a particular code path when re-reading the files. Ensures that the
information is consistent on all processors.
STYLE: adjust separation of includes between List.H and UList.H
1) The sign of radiative flux (qr) for modes Power and HeatFlux was
corrected.
2) Relaxation factor implementation was incomplete. Now caching
valueFraction and refValue from the previous time step.
- as a side-effect of recent changes, command-line stripping of .gz
extensions on input was lost. For example,
OK: surfaceTransformPoints file.stl ...
Fail: surfaceTransformPoints file.stl.gz ...
- restore the previous behaviour of silently stripping the '.gz'
extension on input.
ENH: add triSurface::New selector entry point
- for symmetry with MeshedSurface
Now the thermal baffle can be extrapolated from a patch which is
coupled to the bottom patch of the solid region.
The user can set the T bc on the 'top' patch of the solid.
The new keyword is 'internal' and its default is true. Check new
tutorial for an example:
tutorials/heatTransfer/buoyantSimpleFoam/roomWithThickCeiling/