Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev

This commit is contained in:
andy 2013-04-05 11:37:32 +01:00
commit 5a62444c6a
8 changed files with 90 additions and 59 deletions

View File

@ -337,55 +337,75 @@ addLayersControls
// Advanced settings
// When not to extrude surface. 0 is flat surface, 90 is when two faces
// are perpendicular
featureAngle 60;
// At non-patched sides allow mesh to slip if extrusion direction makes
// angle larger than slipFeatureAngle.
slipFeatureAngle 30;
// Static analysis of starting mesh
// Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 5;
// When not to extrude surface. 0 is flat surface, 90 is when two faces
// are perpendicular
featureAngle 130;
// Number of smoothing iterations of surface normals
nSmoothSurfaceNormals 1;
// Stop layer growth on highly warped cells
maxFaceThicknessRatio 0.5;
// Number of smoothing iterations of interior mesh movement direction
nSmoothNormals 3;
// Smooth layer thickness over surface patches
nSmoothThickness 10;
// Patch displacement
// Stop layer growth on highly warped cells
maxFaceThicknessRatio 0.5;
// Number of smoothing iterations of surface normals
nSmoothSurfaceNormals 1;
// Reduce layer growth where ratio thickness to medial
// distance is large
maxThicknessToMedialRatio 0.3;
// Smooth layer thickness over surface patches
nSmoothThickness 10;
// Angle used to pick up medial axis points
// Note: changed(corrected) w.r.t 17x! 90 degrees corresponds to 130 in 17x.
minMedianAxisAngle 90;
// Create buffer region for new layer terminations
nBufferCellsNoExtrude 0;
// Overall max number of layer addition iterations. The mesher will exit
// if it reaches this number of iterations; possibly with an illegal
// mesh.
nLayerIter 50;
// Medial axis analysis
// Max number of iterations after which relaxed meshQuality controls
// get used. Up to nRelaxIter it uses the settings in meshQualityControls,
// after nRelaxIter it uses the values in meshQualityControls::relaxed.
nRelaxedIter 20;
// Angle used to pick up medial axis points
// Note: changed(corrected) w.r.t 17x! 90 degrees corresponds to 130
// in 17x.
minMedianAxisAngle 90;
// Additional reporting: if there are just a few faces where there
// are mesh errors (after adding the layers) print their face centres.
// This helps in tracking down problematic mesh areas.
//additionalReporting true;
// Reduce layer growth where ratio thickness to medial
// distance is large
maxThicknessToMedialRatio 0.3;
// Number of smoothing iterations of interior mesh movement direction
nSmoothNormals 3;
// Optional: smooth displacement after medial axis determination.
// default is 0.
nSmoothDisplacement 90;
// Mesh shrinking
// Optional: at non-patched sides allow mesh to slip if extrusion
// direction makes angle larger than slipFeatureAngle. Default is
// 0.5*featureAngle.
slipFeatureAngle 30;
// Maximum number of snapping relaxation iterations. Should stop
// before upon reaching a correct mesh.
nRelaxIter 5;
// Create buffer region for new layer terminations
nBufferCellsNoExtrude 0;
// Overall max number of layer addition iterations. The mesher will
// exit if it reaches this number of iterations; possibly with an
// illegal mesh.
nLayerIter 50;
// Max number of iterations after which relaxed meshQuality controls
// get used. Up to nRelaxIter it uses the settings in
// meshQualityControls,
// after nRelaxIter it uses the values in meshQualityControls::relaxed.
nRelaxedIter 20;
// Additional reporting: if there are just a few faces where there
// are mesh errors (after adding the layers) print their face centres.
// This helps in tracking down problematic mesh areas.
//additionalReporting true;
}
// Generic mesh quality settings. At any undoable phase these determine

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -97,7 +97,7 @@ void Foam::faceSelections::searchableSurfaceSelection::select
// Boundary faces
vectorField neighbourCellCentres;
syncTools::swapBoundaryCellList
syncTools::swapBoundaryCellPositions
(
mesh_,
mesh_.cellCentres(),

View File

@ -1404,6 +1404,7 @@ int main(int argc, char *argv[])
(
"splits mesh into multiple regions (detected by walking across faces)"
);
# include "addRegionOption.H"
#include "addOverwriteOption.H"
argList::addBoolOption
(
@ -1467,7 +1468,7 @@ int main(int argc, char *argv[])
#include "setRootCase.H"
#include "createTime.H"
runTime.functionObjects().off();
#include "createMesh.H"
#include "createNamedMesh.H"
const word oldInstance = mesh.pointsInstance();
word blockedFacesName;

View File

@ -254,8 +254,8 @@ public:
);
//- Gather points and faces onto master and merge (geometrically) into
// single patch.
//- Gather points and faces onto master and merge into single patch.
// Note: uses faces/points, not localFaces/localPoints.
template
<
class Face,

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -52,7 +52,8 @@ void Foam::PatchTools::gatherAndMerge
labelList pointSizes;
{
List<Field<PointType> > gatheredPoints(Pstream::nProcs());
gatheredPoints[Pstream::myProcNo()] = p.localPoints();
gatheredPoints[Pstream::myProcNo()] = p.points();
Pstream::gatherList(gatheredPoints);
if (Pstream::master())
@ -75,7 +76,7 @@ void Foam::PatchTools::gatherAndMerge
// gathered points
{
List<List<Face> > gatheredFaces(Pstream::nProcs());
gatheredFaces[Pstream::myProcNo()] = p.localFaces();
gatheredFaces[Pstream::myProcNo()] = p;
Pstream::gatherList(gatheredFaces);
if (Pstream::master())

View File

@ -1529,13 +1529,18 @@ void Foam::autoSnapDriver::doSnap
if (!meshOk)
{
Info<< "Did not succesfully snap mesh. Giving up."
<< nl << endl;
// Use current mesh as base mesh
meshMover.correct();
break;
WarningIn("autoSnapDriver::doSnap(..)")
<< "Did not succesfully snap mesh."
<< " Continuing to snap to resolve easy surfaces but the"
<< " resulting mesh will not satisfy your quality"
<< " constraints" << nl << endl;
//Info<< "Did not succesfully snap mesh. Giving up."
// << nl << endl;
//
//// Use current mesh as base mesh
//meshMover.correct();
//
//break;
}
if (debug&meshRefinement::MESH)

View File

@ -40,17 +40,17 @@ writeInterval 100;
purgeWrite 0;
//- Have regular restart files
secondaryWriteControl cpuTime;
secondaryWriteInterval 3600;
secondaryPurgeWrite 1;
//- Uncomment to have regular (every 2 hours of run time) restart files
//secondaryWriteControl cpuTime; // runtime
//secondaryWriteInterval 7200; // seconds
//secondaryPurgeWrite 1; // keep all but last dump
writeFormat ascii;
writeFormat binary;
writePrecision 6;
writeCompression compressed;
writeCompression uncompressed;
timeFormat general;

View File

@ -9,8 +9,12 @@
forceCoeffs1
{
type forceCoeffs;
functionObjectLibs ( "libforces.so" );
outputControl outputTime;
outputControl timeStep;
outputInterval 1;
log yes;
patches ( "motorBike.*" );