- Recursive searching for objects within a registry is now optional
(previous it was always done).
A recursive search effectively blocks the construction of sub-sub-registries
if their names are 'masked' by some parent level sub-registry with
the same name! (BUG)
- Recursive search is now turned OFF by default, which makes it consistent
with dictionary and probably causes the least number of surprises.
----
Various new convenience methods added:
lookupObjectRef()
- returns a non-const reference.
For example,
volScalarField& U = mesh().lookupObjectRef<volScalarField>("U");
Instead of
volScalarField& U = const_cast<volScalarField&>
(
mesh().lookupObject<volScalarField>("U")
);
--
lookupObjectPtr()
- returns a const pointer, and nullptr on failure.
For example,
const volScalarField* Uptr = mesh().lookupObjectPtr<volScalarField>("U");
if (Uptr)
{
const volScalarField& U = *Uptr;
...
}
Instead of
if (mesh().foundObject<volScalarField>("U"))
{
const volScalarField& U = mesh().lookupObject<volScalarField>("U");
...
}
--
lookupObjectRefPtr()
- returns a non-const pointer, and nullptr on failure.
For example,
volScalarField* Uptr = mesh().lookupObjectRefPtr<volScalarField>("U");
if (Uptr)
{
volScalarField& U = *Uptr; // use as reference
(*Uptr) = ...; // or use directly
}
Instead of
if (mesh().foundObject<volScalarField>("U"))
{
volScalarField& U = const_cast<volScalarField&>
(
mesh().lookupObject<volScalarField>("U")
);
}
--
sortedNames()
- now works with template parameters and with regular expression
matching as well.
For example,
wordList names = mesh().sortedNames();
wordList fields = mesh().sortedName<volScalarField>();
Instead of
wordList names = mesh().sortedNames();
wordList fields = mesh().names<volScalarField>();
Foam::sort(fields);
--
- all sampled surface types now consistently use the same storage,
which allows some more simplifications in the future.
- before/after comparison of the sampledTriSurfaceMesh tested with
motorbike passenger helmet (serial and parallel). Use the newly added
'keepIds' functionality to retain the original ids, and can also
compare them to the original obj file with "GenerateIds" in paraview.
- this makes it easier to reuse the code, and sampledSurface expect
a face (not a labelledFace), so this also eliminates a translation
level and simplifies memory management.
- before/after comparison of the sampled iso-surfaces tested with
iso-surfaces from interFoam/RAS/angledDuct tutorial (serial and
parallel)
For example,
surfaces
(
helmet
{
type sampledTriSurfaceMesh;
surface motorBike-passenger-helmet.obj;
source cells;
keepIds true; <<-- NEW
}
);
This will create an additional "Ids" field that can be used to sort
or as a faceMap to recover the original face order.
Generates discrete particle data from multiphase calculations by
interrogating the phase fraction field at a faceZone.
Data is written in raw form, i.e. per particle collected, with
as an optional binned distribution
STYLE: only use paraview settings when actually available
- this means executing makeParaView prior to building OpenFOAM itself,
but is consistent with the instructions given by makeParaView,
and elminates anticipating the source location from the paraview
config file, which increases the build flexibilty for ThirdParty
- Removed the camera 'mode'
- The (old) static camera was only appropriate when parallel
projection was inactive, and the view was centred at (0 0 0)
- Camera input now always requires 'position' and 'focalPoint'
- Clip box is now optional. Note that this is applied after the
camera
set-up and so will override the camera position
- View angle is only appropriate when not using parallel projection
- Zoom now required, applied after all other operations
- 1 = do nothing, >1 = zoom in, <1 = zoom out
Example input:
camera
{
// Total number of frames to generate
nFrameTotal 1;
// Parallel projection flag
parallelProjection no;
// Optional clippling box
clipBox (-0.0206 -0.0254 -0.0005) (0.29 0.0254 0.0005);
focalPoint (0 0 0);
up (0 1 0);
position (0 0 1);
viewAngle 20;
zoom 1.1;
}
Feature noise multiple files
Enabled pointNoise and surfaceNoise models to operate on multiple input files
- For each model, the files should be specified by the `inputFiles` keyword
- When applied to pointNoise, the file is no longer required when specifying the CSV input data
- the singular `inputFile` entry is still available to the surfaceNoise model for backwards compatibilty
See merge request !80
to avoid duplicate instantiation of the thermodynamics package.
The 'zoneCombustion' model is now selected in constant/combustionProperties by
either
combustionModel zoneCombustion<psiCombustionModel>;
or
combustionModel zoneCombustion<rhoCombustionModel>;
as appropriate.
Resolves bug-report http://bugs.openfoam.org/view.php?id=2354
- support gperftools-none, gperftools-system configurations
as per other third-party packages.
STYLE: clean up more environment variables
CONFIG: testing adios rule