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.
Refinement:
-----------
// Optionally avoid patch merging - keeps hexahedral cells
// (to be used with automatic refinement/unrefinement)
//mergePatchFaces off;
// Optional multiple locationsInMesh with corresponding optional cellZone
// (automatically generates faceZones inbetween)
locationsInMesh
(
((-0.09 -0.039 -0.049) bottomAir) // cellZone bottomAir
((-0.09 0.009 -0.049) topAir) // cellZone topAir
);
// Optional faceType and patchType specification for these faceZones
faceZoneControls
{
bottomAir_to_topAir
{
faceType baffle;
}
}
/ Optional checking of 'bleeding' of mesh through a specifying a locations
// outside the mesh
locationsOutsideMesh ((0 0 0)(12.3 101.17 3.98));
// Improved refinement: refine all cells with all (or all but one) sides refined
// Improved refinement: refine all cells with opposing faces with different
// refinement level. These cells can happen on multiply curved surfaces.
// Default on, can be switched off with
//interfaceRefine false;
Snapping
--------
// Optional smoothing of points at refinement interfaces. This will reduce
// the non-orthogonality at refinement interfaces.
//nSmoothInternal $nSmoothPatch;
Layering
--------
// Layers can be added to patches or to any side of a faceZone.
// (Any faceZone internally gets represented as two patches)
// The angle to merge patch faces can be set independently of the
// featureAngle. This is especially useful for large feature angles
// Default is the same as the featureAngle.
//mergePatchFacesAngle 45;
// Optional mesh shrinking type 'displacementMotionSolver'. It uses any
// displacementMotionSolver, e.g. displacementSBRStress
// (default is the medial-axis algorithm, 'displacementMedialAxis')
//meshShrinker displacementMotionSolver;
so that the specification of the name and dimensions are optional in property dictionaries.
Update tutorials so that the name of the dimensionedScalar property is
no longer duplicated but optional dimensions are still provided and are
checked on read.
This malloc overrides the one provided by GLIBC and calls mallocNan
which initializes the allocated block of memory to NaN if enabled by the
FOAM_SETNAN environment variable.