- redistributePar to have almost (complete) functionality of decomposePar+reconstructPar
- low-level distributed Field mapping
- support for mapping surfaceFields (including flipping faces)
- support for decomposing/reconstructing refinement data
Feature function objects
Lots of updates migrated from internal development line
### Updated functionObjectFile
Old code maintained a list of file pointers, and provided a clunky interface to output to file. Although OK for function objects that only created a single file, those that created multiple files were required to refer to each by an index and making it very easy to introduce errors.
The new code simplifies the functionObjectFile class so that it provides helper functions to create and write to files, and no longer maintains a list of file pointers. Instead, each function object must create and take responsibility for all of the file streams that it requires.
Changes propagated across dependencies:
* fieldValues
* forces/forceCoeffs
* yPlus
* fieldMinMax
* residuals
* regionSizeDistribution
* fieldMinMax
* cloudInfo
### Created new functionObjectState
Previously, if function objects required to store data on disk to enable smooth restarts, e.g. fieldAverage, the object would need to provide the mechanism for reading/writing state information itself. This class abstracts out the reading/writing of state information in a straightforward manner, whereby an object can retrieve its own data, or retrieve e.g. the latest available data from another object (e.g. see fieldValueDelta).
* fieldAverage
* fieldMinMax
* forces
* forceCoeffs
### Created new runTimePostProcessing function object
New function object to generate images at run-time, or in 'post-processing' mode via the execFlowFunctionObjects utility
* Constant DataEntry - added construct from components
* Set and surface writers updated to enable retrieval of filename of generated output
* Additional changes to surface writers from internal line:
+ Ensight collate times option
+ Nastran output updated based on user feedback
+ new boundaryData output
See merge request !5
- Allows generation of images (currently PNG files) during the run
- ... or afterwards by invoking the execFlowFunctionObjects utility
- Wrapper around VTK functionality
- Support for objects:
- text
- points (glyphs: sphere, arrow)
- lines (tubes)
- surfaces (wireframe, shaded, combination)
- Colour using:
- user-defined
- field values (several colour maps availale)
- For image sequences:
- dynamic views (camera movement)
- objects can appear/disappear using opacity
- Building
- VTK dependency v6+
- satisfied using ParaView from ThirdParty directory
- or separate VTK installation
- Allows generation of images (currently PNG files) during the run
- ... or afterwards by invoking the execFlowFunctionObjects utility
- Wrapper around VTK functionality
- Support for objects:
- text
- points (glyphs: sphere, arrow)
- lines (tubes)
- surfaces (wireframe, shaded, combination)
- Colour using:
- user-defined
- field values (several colour maps availale)
- For image sequences:
- dynamic views (camera movement)
- objects can appear/disappear using opacity
- Building
- VTK dependency v6+
- satisfied using ParaView from ThirdParty directory
- or separate VTK installation
- New boundaryData surface writer
- Moved templated code into separate files
- Output filenames written to functionObjectState dictionary
- Ensight surface writer now supports a 'collate times' option [mattijs]
- Nastran surface writer updated based on user feedback
- New boundaryData surface writer
- Moved templated code into separate files
- Output filenames written to functionObjectState dictionary
- Ensight surface writer now supports a 'collate times' option [mattijs]
- Nastran surface writer updated based on user feedback
functionObjects only get detroyed when the runTime gets destroyed. So the
mesh is already destroyed and we cannot hold e.g. a volScalarField since
that will try to 'checkOut' from the objectRegistry(=mesh) upon destruction.
Note that we only see this in chtMultiRegionFoam.
This bc was in compressible turbulence library which made it dependent
on liquidProperties. It was moved to a separate library since it is only
used in a single tutorial.
Original fix (http://www.openfoam.org/mantisbt/view.php?id=1780)
did an increment to create a new communicator. This might
access the communicator-to-mpi_structure tables in PstreamGlobals.H outside
range. Instead allocate and release communicator.
- shoot rays to nearest point on surface and two perpendicular rays
(instead of always shooting in the 3 coordinate directions)
- avoid bleeding through the surface intersection
1. multi-ray shooting. It now shoots rays in all the 3 coordinate directions
from the cell centre. Before it would shoot just a single ray from the
nearest point on the surface, going through the cell centre.
There is a cost overhead in that now it shoots 6 rays (+-x, +-y, +-z)
instead of just 1.
2. bleeding of refinement. It marks the cells inside a gap and walks out
the gap-size to neighbouring cells (which are just outside the gap). This
should make for a smoother refinement pattern.
The start of the layer addition loop does a synchronisation of the wanted
displacement. This also does a truncation of the displacement if it is <
minThickness. At the first iteration the displacement was initialised to
vector::one which might trigger the truncation logic (and then disable
extrusion altogether). Instead we now initialise the displacement to
vector::GREAT before entering the synchronisation.