Properties stored in state dictionary:
- Moment coefficient: Cm
- Drag coefficient: Cd
- Lift coefficient: Cl
- Front lift coefficient: Cl(f)
- Rear lift coefficient: Cl(r)
Properties stored in state dictionary:
- minimum value: min<identifier>
- position of minimum value: min<identifier>_position
- processor ID of minimum value: min<identifier>_processor
- maximum value: max<identifier>
- position of maximum value: max<identifier>_position
- processor ID of maximum value: max<identifier>_processor
Class now provides helper functions to generate files on-the-fly by
function objects, as opposed to attempting to control all files needed
by the function object (earlier implementation lead to over-complication
and was error prone)
This new class provides function objects with a database (dictionary)
to store current state information to enable smooth restart behaviour.
Additionally, current results can be stored so that they can be accessed
between different objects.
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.