These files are now searched for starting at the current time and back in time
to constant but stopping at the most recent polyMesh directory containing faces,
i.e. the most recent topological specification of the mesh. Zones which cannot
be found are set empty rather than requiring zone files to be present containing
an empty list.
This allows a remote location to be synchronised. In this case, it is
synchronised to the first valid process. This choice is abitrary. A
lastProcOp could be implemented similarly, or a more complex criteria
could be used.
This temporary change allows cases with the old incorrect zone file headers to
run without the need to update them, the warning:
--> FOAM Warning :
From function Foam::Istream& Foam::regIOobject::readStream(const Foam::word&, bool)
in file db/regIOobject/regIOobjectRead.C at line 169
Reading ".../tutorials/incompressibleVoF/floatingObject/constant/polyMesh/cellZones" at line 14
Unexpected class name regIOobject, expected cellZoneList
while reading object cellZones
is printed rather than the case stopping with a fatal error.
This change guarantees that the precision of the time written to the log file,
all functionObject logs and the time directories is sufficient to be unique
irrespective of the change in the time-step or start time of the run. If the
calculated time precision exceeds what can be represented by the floating point
resolution, e.g. by the time-step dropping to a VERY low value, the run stops.
These functions dynamic cast a reference to a type, and return a null
object reference if the cast fails. The standard dynamicCast and refCast
functions, by contrast, throw an error if the cast fails.
by printing their contents or lines which match a search string.
Usage: ${0##*/} [OPTIONS] <filename>
options:
-a | -applications search for the file from the \$FOAM_APP directory
-d | -dir <dir> specify search directory
-f | -files find wmake 'files' file associated with searched file
-h | -help help
-i | -isearch <string> searches files for a <string>, case insensitive
-m | -modules search for the file from the \$FOAM_MODULES directory
-n | -numbers print line numbers with file output
-o | -options find wmake 'options' file associated with searched file
-p | -print print the file(s)
-s | -search <string> searches files for a <string>, case sensitive
-t | -tutorials search for the file from the \$FOAM_TUTORIALS directory
Finds one or more files in OpenFOAM and optionally processes the contents by:
+ printing the file ('-print' option);
+ printing lines within the file matching a search string ('-search' option).
With source code files, can locate the 'files' and 'options' files associated
with their compilation using 'wmake'.
By default, files are searched from the src (\$FOAM_SRC) directory.
Alternatively the '-dir' option allows the user to specify the search directory
The '-applications', '-modules' and '-tutorials' options specifically set the
search path to the \$FOAM_APP, \$FOAM_MODULES and \$FOAM_TUTORIALS directories,
respectively.
Examples:
foamFind -print wallHeatFlux.C | less
+ click space bar to scroll down
+ enter line number (after ":") to jump to line
+ enter "/text" to search for "text" (or any other string)
foamFind -applications -isearch "momentumtransport" -options fluid.C
foamFind -numbers -search laminar BirdCarreau.C
So the user specification is travelInterval rather than
fractionalTravelInterval, and with the dimensions of the distance the object
travels:
- travelInterval: part of the stroke travelled after
which the cached motion scaling weights are recalculated
Unfortunately this is a lot less convenient to specify, particularly as it is
now a dimensioned input which may have to be changed if the stroke or valve lift
table are changed but it was felt by the sponsors of the project that the
automatic method to evaluate the valve lift from the Function1 was not
sufficiently robust.
This class is no longer pure virtual, and can be constructed for any
object registry. This means it can be used as a generic physical
properties dictionary, as well as being derived into more specific
contexts (i.e., finite-volume viscosity and thermodynamic models).
Corrected according to the original reference:
Marschall, H. (2011).
Towards the numerical simulation of multi-scale two-phase flows.
PhD Thesis, TU München.
The old-time field implementation has been removed from GeometricField
and put in a separate base class. This class is now used as a base of
both GeometricField and DimensionedField, thereby adding oldTime
functionality to the latter.
Care has been taken to ensure that a GeometricField never duplicates the
old-time field by storing it in both the GeometricField and
DimensionedField classes. When a GeometricField creates an old-time
field it pushes the reference down into the DimensionedField so that the
latter does not then create its own copy of the old-times.
The writeObjects functionObject has been updated to use printToc() when an
object cannot be found and now for the incompressibleFluid/pitzDailySteady case
it prints:
--> FOAM Warning : writeObjects: object hmm not found in database. Available objects:
Cc volVectorField
Cf surfaceVectorField
GAMGAgglomeration faceAreaPair
MRFProperties dictionary
Residuals<scalar> Residuals<scalar>
Residuals<sphericalTensor> Residuals<sphericalTensor>
Residuals<symmTensor> Residuals<symmTensor>
Residuals<tensor> Residuals<tensor>
Residuals<vector> Residuals<vector>
Sf surfaceVectorField
U volVectorField
Vc volScalarField::Internal
boundary polyBoundaryMesh
cellZones cellZoneList
epsilon volScalarField
faceZones faceZoneList
faces faceCompactList
fvConstraints fvConstraints
fvModels fvModels
fvSchemes dictionary
fvSolution dictionary
k volScalarField
kEpsilon:G volScalarField::Internal
magSf surfaceScalarField
momentumTransport kEpsilon
nearWallDist nearWallDist
neighbour labelList
nu volScalarField
nut volScalarField
owner labelList
p volScalarField
phi surfaceScalarField
physicalProperties constant
pointConstraints pointConstraints
pointMesh pointMesh
pointZones pointZoneList
points vectorField
solutionControl pimpleNoLoopControl
solver incompressibleFluid
tetBasePtIs labelList
volPointInterpolate(U) pointVectorField
volPointInterpolate(k) pointScalarField
volPointInterpolate(p) pointScalarField
volPointInterpolation volPointInterpolation
Renamed names and sortedNames functions to toc and sortedToc for consistency
with HashTable and all derived containers allowing reuse of the HashTable
functions.
Now the HashTable underlying PtrListDictionary is used for zone lookup by name
which is a lot faster than the linear search method used previously if there are
a large number of zones.
Now faceZones are handled directly by the applications and the new
faceZone::topoChange function so that any face can now be in any number of
zones, significantly increasing the flexibility and usefulness of faceZones.
This completes the generalisation of cellZone, faceZone and pointZone to support
multiple zones for each cell, face or point respectively. Next step will be to
make zones polymorphic and run-time selectable so that they can alter during the
run and adapt to moving meshes for example.