/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.2.0                                 |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

//type	castellatedBufferLayer;
castellatedMesh true;
snap            true;
addLayers       true;

geometry
{
    	aircraft.stl { type distributedTriSurfaceMesh; name aircraft; }
	rafbox.obj { type triSurfaceMesh; name rafbox; }
	rafcapsule.obj { type triSurfaceMesh; name rafcapsule; }
	rafsphere.obj { type triSurfaceMesh; name rafsphere; }
	AMIsphere.obj { type triSurfaceMesh; name AMIsphere-int; }
	
	
	//vos-porousVolume insert point A

	//vos-porousInSurface insert point A

	//vos-porousOutSurface insert point A

	//vos-rotorDiskVolume insert point A
	
	//vos-refinementVolume insert point A

};


castellatedMeshControls
{
    maxLocalCells 100000000;
    maxGlobalCells 2000000000;
    minRefinementCells 0;
    maxLoadUnbalance 0.1;
    nCellsBetweenLevels 2;
    features
    ( 
        { file "aircraft.eMesh"; level 7; }

        	//refinements insert point B
	
        	//vos-rotorDiskVolume insert point B
    );
    useLeakClosure true;
    refinementSurfaces
    {
        aircraft { level (5 7); leakLevel 7; regions { 

        
					 } } //aircraft
	AMIsphere-int { level (0 0);}
	//vos-porousVolume insert point B

        //vos-porousInSurface insert point B

	//vos-porousOutSurface insert point B

	//vos-rotorDiskVolume insert point C

		
    }
    resolveFeatureAngle 15;
    refinementRegions
    {
	rafbox { mode inside; levels ((1E15 3)); }
	rafcapsule { mode inside; levels ((1E15 2)); }
	rafsphere { mode inside; levels ((1E15 1)); }
	
	//vos-porousVolume insert point C

	//vos-rotorDiskVolume insert point D
	
	//vos-refinementVolume insert point B

	aircraft { mode distance; levels ((.0500 4) (.2000 3)); }
    }
    locationInMesh (1.50110 .00405 1.0);
    locationsOutsideMesh ( (0.25 0.0 0) (0.79 0.0 -0.015) );
    
    allowFreeStandingZoneFaces false;
}

meshMotionSolver_settings
{
	solver		displacementPointSmoothing;
	displacementPointSmoothingCoeffs
	{
		pointSmoother			geometricElementTransform;
		transformationParameter	0.667;
		nPointSmootherIter		100;
	}
}

snapControls
{
    nSmoothPatch 3;
    tolerance 1.0;
    nSolveIter 100;
    nRelaxIter 5;
	nFeatureSnapIter 3;
	implicitFeatureSnap false;
	explicitFeatureSnap true;
	multiRegionFeatureSnap true;
	${meshMotionSolver_settings}
}

addLayersControls
{
    relativeSizes true;
	expansionRatio 1.25;
	finalLayerThickness 0.6;
    minThickness 0.1;
    layers
    {
		"aircraft.*"				{nSurfaceLayers 5;}
		
    }

    nOuterIter 1;
    nGrow		-1;
    featureAngle	180;
    slipFeatureAngle	30;
    nRelaxIter		5;
    nSmoothSurfaceNormals 1;
    nSmoothNormals	3;
    nSmoothThickness	10;
    maxFaceThicknessRatio 0.5;
    maxThicknessToMedialRatio 0.3;
    minMedialAxisAngle 90;
    nBufferCellsNoExtrude 0;
    nLayerIter		25;
    nRelaxedIter	25;
}

meshQualityControls
{
    maxNonOrtho 65;
    maxBoundarySkewness 20;
    maxInternalSkewness 4;
    maxConcave 80;
    minVol 1e-20;
    minTetQuality -1E30;
    minArea 1e-13;
    minTwist 0.01;
    minDeterminant 0.001;
    minFaceWeight 0.02;
    minVolRatio 0.01;
    minTriangleTwist -1;
    nSmoothScale 4;
    errorReduction 0.75;
    relaxed { maxNonOrtho 75; }
}

debugFlags ( );
writeFlags ( );
mergeTolerance 1e-10;

// ************************************************************************* //
