2017-10-22 00:06 BST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002421OpenFOAM[All Projects] Bugpublic2017-05-03 14:40
Reporterfsalmon 
Assigned To 
PriorityhighSeveritymajorReproducibilityalways
StatusnewResolutionopen 
PlatformLinuxOSMintOS Version17.1
Product Versiondev 
Target VersionFixed in Version 
Summary0002421: Conflict between CreateBaffle and flowRateInletVelocity boundary condition
DescriptionI have a geometry meshed thanks to snappyhexMesh. In order to simplify, there are one box with inside a cylinder which corresponds to the inlet.

The cylinder is created thanks createBaffle. Then, I use flowRateInletVelocity to give the value of the flow (dependent of time) on the cylinder. And it works, except that the direction of the flow is the contrary that I want (it is the opposite direction of the normal direction of the face of the cylinder). So the flow goes inside the cylinder. I checked and fireFoam has the good normal face vector but give me a velocity in the other direction.

However, when I use toposet, it works well, but I cannot use it for a cylinder in a box.
TagssnappyHexMesh
Attached Files
  • ? file icon U (2,037 bytes) 2017-01-05 13:50 -
    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  dev                                   |
    |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volVectorField;
        location    "0";
        object      U;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    dimensions      [0 1 -1 0 0 0 0];
    
    internalField   uniform (0 0 0);
    
    boundaryField
    {
        Box
        {
            type            fixedValue;
            value           uniform (0 0 0);
        }
        Porte
        {
            type            fixedValue;
            value           uniform (0 0 0);
        }
    	Foyer
    	{
    		type			fixedValue;
    		value			uniform (0 0 0);
    	}
    	Bruleur
        {
    		type			flowRateInletVelocity;
        	massFlowRate 	table
    		(
    		    (0 0.0003571429)
    		    (50 0.0006976744)
    		    (143 0.001)
    		    (243 0.0011)
    		    (593 0.0011416667)
    			(943 0.00115)
    			(1018 0.0015)
    			(1068 0.0016)
    			(1118 0.0015)
    			(1168 0.0013)
    			(1218 0.0006)
    			(1268 0.0002)
    			(1343 0.0001)
    			(1443 0)
    		)
            //value           uniform (0 0 0);
            rho				rho;
    		rhoInlet		1;
        }
        Bruleur0
        {
    		type flowRateInletVelocity;
        	massFlowRate table
    		(
    		    (0 0.0003571429)
    		    (50 0.0006976744)
    		    (143 0.001)
    		    (243 0.0011)
    		    (593 0.0011416667)
    			(943 0.00115)
    			(1018 0.0015)
    			(1068 0.0016)
    			(1118 0.0015)
    			(1168 0.0013)
    			(1218 0.0006)
    			(1268 0.0002)
    			(1343 0.0001)
    			(1443 0)
    		)
            value           uniform (0 0 0);
            rho				rho;
    		rhoInlet		1;
        }
    }
    
    
    // ************************************************************************* //
    
    ? file icon U (2,037 bytes) 2017-01-05 13:50 +
  • ? file icon snappyHexMeshDict (9,972 bytes) 2017-01-05 13:50 -
    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  3.0.1                                 |
    |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        object      snappyHexMeshDict;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    // Which of the steps to run
    castellatedMesh true;	// make basic mesh ?
    snap            false;	// decide to snap back to surface ?
    addLayers       false;	// decide to add viscous layers ?
    
    
    // Geometry. Definition of all surfaces. All surfaces are of class
    // searchableSurface.
    // Surfaces are used
    // - to specify refinement for any mesh cell intersecting it
    // - to specify refinement for any mesh cell inside/outside/near
    // - to 'snap' the mesh boundary to the surface
    geometry
    {
    	Box.stl
    	{
    		type triSurfaceMesh;
    		name Box;
    	}
        Porte.stl
        {
            type triSurfaceMesh;
            name Porte;
        }
    	/*Burner.stl
    	{
    		type triSurfaceMesh;
    		name Burner;
    	}*/
    	Foyer.stl
    	{	
    		type triSurfaceMesh;
    		name Burner;
    	}
    
    
        /*refinementBox
        {
            type searchableBox;
            min (0.3 4 -0.5);
            max (2 6 1.7);
        }*/
    };
    
    
    
    // Settings for the castellatedMesh generation.
    castellatedMeshControls
    {
    
        // Refinement parameters
        // ~~~~~~~~~~~~~~~~~~~~~
    
        // If local number of cells is >= maxLocalCells on any processor
        // switches from from refinement followed by balancing
        // (current method) to (weighted) balancing before refinement.
        maxLocalCells 100000;
    
        // Overall cell limit (approximately). Refinement will stop immediately
        // upon reaching this number so a refinement level might not complete.
        // Note that this is the number of cells before removing the part which
        // is not 'visible' from the keepPoint. The final number of cells might
        // actually be a lot less.
        maxGlobalCells 2000000;
    
        // The surface refinement loop might spend lots of iterations refining just a
        // few cells. This setting will cause refinement to stop if <= minimumRefine
        // are selected for refinement. Note: it will at least do one iteration
        // (unless the number of cells to refine is 0)
        minRefinementCells 10;
    
        // Allow a certain level of imbalance during refining
        // (since balancing is quite expensive)
        // Expressed as fraction of perfect balance (= overall number of cells /
        // nProcs). 0=balance always.
        maxLoadUnbalance 0.10;
    
    
        // Number of buffer layers between different levels.
        // 1 means normal 2:1 refinement restriction, larger means slower
        // refinement.
        nCellsBetweenLevels 3;
    
    
    
        // Explicit feature edge refinement
        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
        // Specifies a level for any cell intersected by its edges.
        // This is a featureEdgeMesh, read from constant/triSurface for now.
        features
        (
            {
                file "Box.eMesh";
                level 1;
            }
            {
                file "Porte.eMesh";
                level 1;
    		}
    		{
    			file "Burner.eMesh";
    			level 1;
    		}
    		/*{
    			file "Foyer.eMesh";
    			level 1;
    		}*/
        );
    
    
    
        // Surface based refinement
        // ~~~~~~~~~~~~~~~~~~~~~~~~
    
        // Specifies two levels for every surface. The first is the minimum level,
        // every cell intersecting a surface gets refined up to the minimum level.
        // The second level is the maximum level. Cells that 'see' multiple
        // intersections where the intersections make an
        // angle > resolveFeatureAngle get refined up to the maximum level.
    
        refinementSurfaces
        {
            Box {level (1 1);}
    		Burner
    		{
    			level		(3 3);
    			faceZone	fire_zone;
    			cellZone	fire_zone;
    			cellZoneInside	inside;
    		}
    		//Foyer {level (2 2);}
            Porte
            {
                level       (1 1);
                patchInfo
                {
                    type patch;
                }
            }
        }
    
        // Resolve sharp angles
        resolveFeatureAngle 90;
    
    
        // Region-wise refinement
        // ~~~~~~~~~~~~~~~~~~~~~~
    
        // Specifies refinement level for cells in relation to a surface. One of
        // three modes
        // - distance. 'levels' specifies per distance to the surface the
        //   wanted refinement level. The distances need to be specified in
        //   descending order.
        // - inside. 'levels' is only one entry and only the level is used. All
        //   cells inside the surface get refined up to the level. The surface
        //   needs to be closed for this to be possible.
        // - outside. Same but cells outside.
    	
        refinementRegions
        {
            /*refinementBox
            {
                mode inside;
                levels ((2 3));
            }*/
        }
    	
    
        // Mesh selection
        // ~~~~~~~~~~~~~~
    
        // After refinement patches get added for all refinementSurfaces and
        // all cells intersecting the surfaces get put into these patches. The
        // section reachable from the locationInMesh is kept.
        // NOTE: This point should never be on a face, always inside a cell, even
        // after refinement.
        locationInMesh (0 0 0);
    
    
        // Whether any faceZones (as specified in the refinementSurfaces)
        // are only on the boundary of corresponding cellZones or also allow
        // free-standing zone faces. Not used if there are no faceZones.
        allowFreeStandingZoneFaces true;
    }
    
    
    
    // Settings for the snapping.
    snapControls
    {
        //- Number of patch smoothing iterations before finding correspondence
        //  to surface
        nSmoothPatch 4;
    
        //- Relative distance for points to be attracted by surface feature point
        //  or edge. True distance is this factor times local
        //  maximum edge length.
        tolerance 4.0;
    
        //- Number of mesh displacement relaxation iterations.
        nSolveIter 40;
    
        //- Maximum number of snapping relaxation iterations. Should stop
        //  before upon reaching a correct mesh.
        nRelaxIter 5;
    
        // Feature snapping
    
            //- Number of feature edge snapping iterations.
            //  Leave out altogether to disable.
            nFeatureSnapIter 15;
    
            //- Detect (geometric only) features by sampling the surface
            //  (default=false).
            implicitFeatureSnap false;
    
            //- Use castellatedMeshControls::features (default = true)
            explicitFeatureSnap true;
    
            //- Detect points on multiple surfaces (only for explicitFeatureSnap)
            multiRegionFeatureSnap false;
    }
    
    
    
    // Settings for the layer addition.
    addLayersControls
    {
        // Are the thickness parameters below relative to the undistorted
        // size of the refined cell outside layer (true) or absolute sizes (false).
        relativeSizes true;
    
        // Per final patch (so not geometry!) the layer information
        layers
        {
            "(Box|Foyer|Burner).*"
            {
                nSurfaceLayers 1;
            }
        }
    
        // Expansion factor for layer mesh
        expansionRatio 1.2;
    
        // Wanted thickness of final added cell layer. If multiple layers
        // is the thickness of the layer furthest away from the wall.
        // Relative to undistorted size of cell outside layer.
        // See relativeSizes parameter.
        finalLayerThickness 0.3;
    
        // Minimum thickness of cell layer. If for any reason layer
        // cannot be above minThickness do not add layer.
        // Relative to undistorted size of cell outside layer.
        minThickness 0.1;
    
        // If points get not extruded do nGrow layers of connected faces that are
        // also not grown. This helps convergence of the layer addition process
        // close to features.
        // Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x)
        nGrow 0;
    
        // 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;
    
        // Maximum number of snapping relaxation iterations. Should stop
        // before upon reaching a correct mesh.
        nRelaxIter 3;
    
        // Number of smoothing iterations of surface normals
        nSmoothSurfaceNormals 1;
    
        // Number of smoothing iterations of interior mesh movement direction
        nSmoothNormals 3;
    
        // Smooth layer thickness over surface patches
        nSmoothThickness 10;
    
        // Stop layer growth on highly warped cells
        maxFaceThicknessRatio 0.5;
    
        // Reduce layer growth where ratio thickness to medial
        // distance is large
        maxThicknessToMedialRatio 0.3;
    
        // 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;
    }
    
    
    
    // Generic mesh quality settings. At any undoable phase these determine
    // where to undo.
    meshQualityControls
    {
        #include "meshQualityDict"
    
    
        // Advanced
    
        //- Number of error distribution iterations
        nSmoothScale 4;
        //- Amount to scale back displacement at error points
        errorReduction 0.75;
    }
    
    
    // Advanced
    
    // Write flags
    writeFlags
    (
        scalarLevels
        layerSets
        layerFields     // write volScalarField for layer coverage
    );
    
    
    // Merge tolerance. Is fraction of overall bounding box of initial mesh.
    // Note: the write tolerance needs to be higher than this.
    mergeTolerance 1e-6;
    
    
    // ************************************************************************* //
    
    ? file icon snappyHexMeshDict (9,972 bytes) 2017-01-05 13:50 +
  • ? file icon surfaceFeatureExtractDict (2,084 bytes) 2017-01-05 13:51 -
    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  3.0.1                                 |
    |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        object      surfaceFeatureExtractDict;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    Porte.stl
    {
        // How to obtain raw features (extractFromFile || extractFromSurface)
        extractionMethod    extractFromSurface;
    
        extractFromSurfaceCoeffs
        {
            // Mark edges whose adjacent surface normals are at an angle less
            // than includedAngle as features
            // - 0  : selects no edges
            // - 180: selects all edges
            includedAngle   150;
        }
    
        /*subsetFeatures
        {
            // Keep nonManifold edges (edges with >2 connected faces)
            nonManifoldEdges       no;
    
            // Keep open edges (edges with 1 connected face)
            openEdges       yes;
        }*/
    
    
        // Write options
    
            // Write features to obj format for postprocessing
            writeObj                no;
    }
    
    Box.stl
    {
        extractionMethod    extractFromSurface;
        extractFromSurfaceCoeffs
        {
            includedAngle   150;
        }
    
            writeObj                no;
    }
    
    Foyer.stl
    {
        extractionMethod    extractFromSurface;
        extractFromSurfaceCoeffs
        {
            includedAngle   150;
        }
    
            writeObj                no;
    }
    
    /*Burner.stl
    {
        extractionMethod    extractFromSurface;
        extractFromSurfaceCoeffs
        {
            includedAngle   150;
        }
    
            writeObj                no;
    }*/
    
    // ************************************************************************* //
    
    ? file icon surfaceFeatureExtractDict (2,084 bytes) 2017-01-05 13:51 +
  • ? file icon createBafflesDict (1,400 bytes) 2017-01-05 13:51 -
    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  3.0.1                                 |
    |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        object      createBafflesDict;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    // Whether to convert internal faces only (so leave boundary faces intact).
    // This is only relevant if your face selection type can pick up boundary
    // faces.
    internalFacesOnly true;
    
    
    // Baffles to create.
    baffles
    {
        baffleFaces
        {
            //- Use predefined faceZone to select faces and orientation.
            type        faceZone;
            zoneName    fire_zone;
    
    		patches
    		{
    		    master
    		    {
    		        //- Master side patch
    		        name            Bruleur;
    		        type            wall;
    				neighbourPatch	Bruleur0;
    		    }
    		    slave
    			{
    				name			Bruleur0;
    				type			wall;
    				neighbourPatch	Bruleur;
    			}
    		}
    	}
    }
    
    ? file icon createBafflesDict (1,400 bytes) 2017-01-05 13:51 +
  • png file icon Screenshot.png (38,033 bytes) 2017-01-05 13:52 -
    png file icon Screenshot.png (38,033 bytes) 2017-01-05 13:52 +
  • ? file icon Allrun (788 bytes) 2017-01-09 14:07 -
    #!/bin/sh
    cd ${0%/*} || exit 1    # Run from this directory
    
    # Source tutorial run functions
    . $WM_PROJECT_DIR/bin/tools/RunFunctions
    
    # Set application name
    application=`getApplication`
    
    runApplication blockMesh
    runApplication surfaceFeatureExtract
    runApplication snappyHexMesh -overwrite
    #runApplication createBaffles -overwrite
    #transformPoints -scale '(1e-3 1e-3 1e-3)'
    #runApplication mergeOrSplitBaffles -split -overwrite
    # Copy fields after meshing to avoid the generation of unnecessary patch fields
    #cp -r 0.orig 0
    
    #decomposePar -force > log.decomposePar 2>&1
    
    #decomposePar -fields > log.decomposePar 2>&1
    
    #runParallel `getApplication` 
    #runApplication reconstructPar -time 0:
    #paraFoam -touch
    
    
    # ----------------------------------------------------------------- end-of-file
    
    ? file icon Allrun (788 bytes) 2017-01-09 14:07 +
  • ? file icon Allclean (446 bytes) 2017-01-09 14:08 -
    #!/bin/sh
    cd ${0%/*} || exit 1    # Run from this directory
    
    # Source tutorial clean functions
    . $WM_PROJECT_DIR/bin/tools/CleanFunctions
    
    cleanCase
    rm -rf EnSight Ensight Fieldview > /dev/null 2>&1
    rm -f constant/polyMesh/boundary > /dev/null 2>&1
    rm -f 0/cellToRegion > /dev/null 2>&1
    rm -f 0/thickness > /dev/null 2>&1
    rm -f 0/thicknessFraction > /dev/null 2>&1
    
    # ----------------------------------------------------------------- end-of-file
    
    ? file icon Allclean (446 bytes) 2017-01-09 14:08 +
  • ? file icon blockMeshDict (9,906 bytes) 2017-01-09 14:08 -
    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  3.0.1                                 |
    |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        object      blockMeshDict;
    }
    
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    convertToMeters 1000;
    
    vertices
    (
    	(5 3 -3)	//0
    	(5 3 0)	//1
    	(0 3 -3)	//2
    	(0 3 0)	//3
    	(0 0 -3)	//4
    	(0 0 0)	//5
    	(5 0 -3)	//6
    	(5 0 0)	//7
    );
    
    blocks
    (
    	hex (0 1 3 2 6 7 5 4) (30 18 18) simpleGrading (1 1 1)
    );
    
    edges
    (
    );
    
    boundary
    (
    	Wall
    	{
    		type wall;
    		faces
    		(
    			(0 1 7 6)
    			(0 2 3 1)
    			(2 3 5 4)
    			(5 4 6 7)
    			(4 2 0 6)
    			(3 5 7 1)
    		);
    	}
    );/*
    (
    	lowerWall
    	{
    		type wall;
    		faces
    		(
    			(0 2 4 6)
    		);
    	}
    	upperWall
    	{
    		type wall;
    		faces
    		(
    			(3 5 7 1)
    		);
    	}
    	inlet
    	{
    		type wall;
    		faces
    		(
    			(0 1 7 6)
    		);
    	}
    	outlet
    	{
    		type wall;
    		faces
    		(
    			(4 2 3 5)
    		);
    	}
    	frontAndBack
    	{
    		type wall;
    		faces
    		(
    			(0 1 3 2)
    			(5 7 6 4) 
    		);
    	}
    );*/
    
    /*
    vertices
    (
    	(730 211 140)	//0
    	(730 30 140)	//1
    	(200 663 -60)	//2
    	(730 30 0)		//3
    	(730 211 -60)	//4
    	(730 141 0)		//5
    	(730 141 -60)	//6
    	(340 30 0)		//7
    	(340 0 0)		//8
    	(0 0 0)			//9
    	(340 0 140)		//10
    	(340 30 140)	//11
    	(0 0 140)		//12
    	(0 141 0)		//13
    	(0 141 -10)		//14
    	(120 141 0)		//15
    	(120 141 -10)	//16
    	(120 191 -10)	//17
    	(120 191 -30)	//18
    	(0 191 -10)		//19
    	(0 191 -30)		//20
    	(120 251 -30)	//21
    	(120 251 -40)	//22
    	(0 251 -30)		//23
    	(0 251 -40)		//24
    	(120 301 -40)	//25
    	(120 301 -60)	//26
    	(0 301 -40)		//27
    	(0 301 -60)		//28
    	(280 211 -60)	//29
    	(280 351 -60)	//30
    	(200 351 -60)	//31
    	(200 351 140)	//32
    	(280 351 140)	//33
    	(280 211 140)	//34
    	(0 663 -60)		//35
    	(0 663 170)		//36
    	(200 663 170)	//37
    	(0 560 170)		//38
    	(0 560 160)		//39
    	(200 560 160)	//40
    	(200 560 170)	//41
    	(0 461 160)		//42
    	(0 461 150)		//43
    	(200 461 150)	//44
    	(200 461 160)	//45
    	(0 351 140)		//46
    	(0 351 150)		//47
    	(200 351 140)	//48
    	(200 351 150)	//49
    	(0 560 -60)		//50
    	(200 560 -60)	//51
    	(0 461 -60)		//52
    	(200 461 -60)	//53
    	(0 351 -60)		//54
    	(200 351 -60)	//55
    	(200 301 -60)	//56
    	(200 301 140)	//57
    	(200 141 -60)	//58
    	(280 141 -60)	//59
    	(200 141 140)	//60
    	(280 141 140)	//61
    	(0 30 140)		//62
    	(0 30 0)		//63
    	(730 141 140)	//64
    	(120 141 140)	//65
    	(120 191 140)	//66
    	(120 251 140)	//67
    	(120 301 140)	//68
    	(0 141 140)		//69
    	(0 191 140)		//70
    	(0 251 140)		//71
    	(0 301 140)		//72
    	(120 141 -60)	//73
    	(340 141 0)		//74
    	(340 141 140)	//75
    	(200 211 -60)	//76
    	(200 211 140)	//77
    	(280 211 -60)	//78
    	(200 211 -60)	//79
    	(200 211 140)	//80
    	(280 211 140)	//81
    	(0 663 160)		//82
    	(200 663 160)	//83
    	(0 560 150)		//84
    	(200 560 150)	//85
    	(0 461 140)		//86
    	(200 461 140)	//87
    	(0 663 160)		//88 alias 82
    	(0 560 170)		//89 alias 38
    	(200 560 160)	//90 alias 40
    	(200 663 160)	//91 alias 83
    	(0 560 150)		//92 alias 84
    	(0 461 150)		//93 alias 43
    	(200 560 150)	//94 alias 85
    	(200 461 150)	//95 alias 44
    	(0 461 140)		//96 alias 86
    	(0 351 140)		//97 alias 46
    	(200 461 140)	//98 alias 87
    	(200 351 140)	//99 alias 48
    	(0 351 -60)		//100 alias 54
    	(200 351 -60)	//101 alias 55
    	(200 351 140)	//102 alias 48
    	(0 351 140)		//103 alias 46
    	(280 141 0)		//104
    	(280 211 0)		//105
    	(200 141 0)		//106
    	(200 211 0)		//107
    	(120 211 -60)	//108
    	(120 211 0)		//109
    	(730 211 0)		//110
    	(120 211 140)	//111
    	(280 211 -60)	//112 alias 29
    	(280 141 -60)	//113 alias 59
    	(280 141 0)		//114 alias 104
    	(280 211 0)		//115 alias 105
    	(200 141 0)		//116 alias 106
    	(120 301 -30)	//117
    	(0 301 -30)		//118
    	(120 251 -10)	//119
    	(0 251 -10)		//120
    	(120 191 0)		//121
    	(0 191 0)		//122
    	(120 251 -60)	//123
    	(120 191 -60)	//124
    	(200 191 -60)	//125
    	(200 191 -10)	//126
    	(200 141 -10)	//127
    	(200 191 -30)	//128
    	(120 211 -30)	//129
    	(200 211 -30)	//130
    	(120 211 -10)	//131
    	(200 211 -10)	//132
    	(200 191 140)	//133
    	(200 251 -30)	//134
    	(200 251 140)	//135
    	(200 251 -60)	//136
    	(200 211 140)	//137 alias 77
    	(200 251 -30)	//138 alias 134
    	(200 301 -40)	//139
    	(200 251 -40)	//140
    	(200 141 -10)	//141 alias 127
    	(120 251 -40)	//142 alias 22	
    	(200 211 -30)	//143 alias 130
    	(0 351 -40)		//144
    	(120 351 -40)	//145
    	(200 301 -40)	//146
    	(200 351 -40)	//147
    	(120 351 -60)	//148
    	(120 351 -60)	//149
    	(280 141 -10)	//150
    	(200 141 -10)	//151
    	(200 211 -10)	//152
    	(280 211 -10)	//153
    	(280 211 -10)	//154 alias 153
    	(120 211 -10)	//155
    	(200 191 0)		//156
    	(120 191 0)		//157
    	(200 431 -60)	//158
    	(120 351 -60)	//159
    	(120 431 -60)	//160
    	(120 351 -30)	//161
    	(120 431 -30)	//162
    	(200 431 -30)	//163
    	(200 351 -30)	//164
    	(200 431 150)	//165
    	(120 431 150)	//166
    	(120 351 150)	//167
    );
    
    blocks
    (
    	hex (7 8 10 11 63 9 12 62) (3 14 34) simpleGrading (1 1 1)			//0
    	hex (5 3 1 64 74 7 11 75) (11 14 39) simpleGrading (1 1 1)			//1
    	hex (74 7 11 75 13 63 62 69) (11 14 34) simpleGrading (1 1 1)		//2
    	hex (110 5 64 0 105 104 61 34) (7 14 45) simpleGrading (1 1 1)		//3
    	hex (4 6 5 110 112 113 114 115) (7 6 45) simpleGrading (1 1 1)		//4
    	hex (115 104 116 107 154 150 151 152) (7 8 1) simpleGrading (1 1 1)	//5
    	hex (58 113 112 76 151 150 153 152) (8 7 5) simpleGrading (1 1 1)	//6
    	hex (34 77 107 105 61 60 106 104) (8 14 7) simpleGrading (1 1 1)	//7
    	hex (78 79 80 81 30 31 32 33) (8 20 14) simpleGrading (1 1 1)		//8
    	hex (73 58 125 124 16 141 126 17) (8 5 5) simpleGrading (1 1 1)		//9
    	hex (16 127 126 17 15 106 156 157) (8 5 1) simpleGrading (1 1 1)	//10
    	hex (15 106 156 157 65 60 133 66) (8 5 14) simpleGrading (1 1 1)	//11
    	hex (124 125 76 108 18 128 130 129) (8 2 3) simpleGrading (1 1 1)	//12
    	hex (18 128 143 129 66 133 77 111) (8 2 17) simpleGrading (1 1 1)	//13
    	hex (108 76 136 123 129 143 138 21) (8 4 3) simpleGrading (1 1 1)	//14
    	hex (21 129 130 134 67 111 137 135) (4 8 17) simpleGrading (1 1 1)	//15
    	hex (26 25 142 123 56 139 140 136) (2 5 8) simpleGrading (1 1 1)	//16
    	hex (22 140 139 25 67 135 57 68) (8 5 18) simpleGrading (1 1 1)		//17
    	hex (27 25 26 28 144 145 148 54) (12 2 5) simpleGrading (1 1 1)		//18
    	hex (25 146 56 26 145 147 55 149) (8 2 5) simpleGrading (1 1 1)		//19
    	hex (72 57 146 27 103 102 147 144) (20 18 5) simpleGrading (1 1 1)	//20
    	hex (55 53 52 54 48 87 86 46) (11 20 20) simpleGrading (1 1 1) 		//21
    	hex (43 47 97 96 44 49 99 98) (11 1 20) simpleGrading (1 1 1)		//22
    	hex (52 53 51 50 93 95 94 92) (20 10 21) simpleGrading (1 1 1)		//23
    	hex (43 84 39 42 44 85 40 45) (10 1 20) simpleGrading (1 1 1)		//24
    	hex (50 51 2 35 39 40 83 82) (20 10 22) simpleGrading (1 1 1)		//25
    	hex (88 39 90 91 36 89 41 37) (10 20 1)	simpleGrading (1 1 1)		//26
    	hex (24 22 25 27 23 21 117 118) (12 5 1) simpleGrading (1 1 1)		//27
    	hex (23 21 117 118 71 67 68 72) (12 5 17) simpleGrading (1 1 1)		//28
    	hex (19 17 119 120 70 66 67 71) (12 6 15) simpleGrading (1 1 1)		//29
    	hex (20 18 21 23 19 17 119 120) (12 6 2) simpleGrading (1 1 1)		//30
    	hex (15 121 122 13 65 66 70 69) (5 12 14) simpleGrading (1 1 1)		//31
    	hex (16 17 19 14 15 121 122 13) (5 12 1) simpleGrading (1 1 1)		//32
    );
    
    edges
    (
    );
    
    boundary
    (
        frontAndBack
        {
            type wall;
            faces
            (
                (1 11 7 3)
    			(11 10 8 7)
    			(10 8 9 12)
    			(12 9 63 62)
    			(62 63 13 69)
    			(13 122 19 14)
    			(13 69 70 122)
    			(20 23 120 19)
    			(19 120 71 70)
    			(24 27 118 23)
    			(23 118 72 71)
    			(28 54 144 27)
    			(144 27 72 103)
    			(54 52 86 46)
    			(96 43 47 97)
    			(52 50 92 93)
    			(43 84 39 42)
    			(50 35 82 39)
    			(88 36 89 39)
    			(2 51 40 83)
    			(91 90 41 37)
    			(53 51 94 95)
    			(44 85 40 45)
    			(55 53 87 48)
    			(99 98 44 49)
    			(31 32 33 30)
    			(30 33 81 78)
    			(112 115 110 4)
    			(105 34 0 110)
    			(5 6 113 114)
    			(58 113 150 151)
    			(150 104 116 151)			
    			(16 141 58 73)
    			(73 124 17 16)
    			(124 18 129 108)
    			(108 129 21 123)
    			(123 142 25 26)
    			(25 26 28 27)
    			(14 13 15 16) 
    			(16 15 106 127)
            );
        }
    
        inlet
        {
            type patch;
            faces
            (
    			(0 110 5 64)
    			(4 110 5 6)
                (1 3 5 64)
            );
        }
    
        outlet
        {
            type patch;
            faces
            (
                (2 35 82 83)
    			(88 91 37 36)
            );
        }
    
        lowerWall
        {
            type wall;
            faces
            (
    			(7 8 9 63)
                (4 6 113 112)
    			(5 3 7 74)
    			(74 7 63 13)
    			(31 30 78 79)
    			(112 113 58 76)
    			(58 73 124 125)
    			(124 108 76 125)
    			(136 76 108 123)
    			(123 136 56 26)
    			(26 56 55 149)
    			(54 52 53 55)
    			(52 50 51 53)
    			(50 35 2 51) 
    			(28 54 148 26)
    			(14 19 17 16)
    			(20 19 17 18)
    			(20 23 21 18)
    			(23 24 22 21)
    			(24 27 25 22)
            );
        }
    
        upperWall
        {
            type wall;
            faces
            (
    			(11 10 12 62)
                (1 11 75 64)
    			(11 75 69 62)
    			(80 81 33 32)
    			(60 61 77 34)
    			(103 102 57 72)
    			(60 65 66 133)
    			(133 66 111 77)
    			(137 111 67 135)
    			(135 67 68 57)
    			(0 34 61 64)
    			(72 71 67 68)
    			(71 67 66 70)
    			(70 66 65 69)
    			(43 47 49 44)
    			(42 39 40 45)
    			(89 36 37 41)
    			(41 90 39 89)
    			(42 43 44 45)
    			(97 47 49 99)
            );
        }
    );
    */
    /*
    patches
    (
    patch interface1 
    (
    (18 128 130 129)
    )
    patch interface2
    (
    (18 128 143 129)
    )
    patch interface3
    (
    (129 130 111 137)
    )
    patch interface4
    (
    (129 143 111 77)
    )
    patch interface5
    (
    (82 39 40 83)
    )
    patch interface6
    (
    (88 39 90 91)
    )
    patch interface7
    (
    (84 43 44 85)
    )
    patch interface8
    (
    (92 93 95 94)
    )
    );
    
    
    mergePatchPairs
    (
    (interface1 interface2)
    );
    mergePatchPairs
    (
    (interface3 interface4)
    );
    
    mergePatchPairs
    (
    (interface7 interface8)
    );
    mergePatchPairs
    (
    (interface5 interface6)
    );*/
    // ************************************************************************* //
    
    ? file icon blockMeshDict (9,906 bytes) 2017-01-09 14:08 +
  • gz file icon case_for_bug2421_v1.tar.gz (133,778 bytes) 2017-01-09 14:27

-Relationships
related to 0002536closedhenry Bug in faceZone sum of phi 
+Relationships

-Notes

~0007596

fsalmon (reporter)

I attached some files. There is a screenshot that should be more explicit than my words. I do not know if the other files will be useful.

~0007612

fsalmon (reporter)

I have done some tests and it is very weird.

The problem does not come from flowRateInletVelocity. When I use fixedValue with uniform (0 0 0) everywhere, there is a bug and the calculation stops. When I use zeroGradient with (0 0 0) velocity everywhere, it works but quickly, a velocity (non negligible, about 1m/s) appears just next to the cylinder whereas nothing should happen. I think there is a problem with createBaffle and the mesh. Perhaps I do not make this correctly.

~0007614

wyldckat (updater)

@fsalmon: Any chance you can provide a complete test case, including an Allrun+Allclean script? I ask this because it would make it a lot easier for anyone to diagnose this issue much faster.

There was a related bug fix for this kind of issue done several months ago for report #1479, but I can't remember exactly if the baffles were created by 'snappyHexMesh' or if it was done with the assistance of 'createBaffles'.

~0007615

fsalmon (reporter)

I have added what you asked. Do you want also the 0 folder ?

I will have a look on the report #1479

~0007616

wyldckat (updater)

Could you please provide all of the necessary files in a single package?
If in doubt, you can use the following command from the parent folder of your case:

  tar -czf case_for_bug2421_v1.tar.gz your_case_folder_name

and replace "your_case_folder_name" with the name of the folder for your test case. Then attach the resulting package "case_for_bug2421_v1.tar.gz".

~0007617

fsalmon (reporter)

Ok sorry, I did it.
+Notes

-Issue History
Date Modified Username Field Change
2017-01-05 13:50 fsalmon New Issue
2017-01-05 13:50 fsalmon File Added: U
2017-01-05 13:50 fsalmon File Added: snappyHexMeshDict
2017-01-05 13:51 fsalmon File Added: surfaceFeatureExtractDict
2017-01-05 13:51 fsalmon File Added: createBafflesDict
2017-01-05 13:52 fsalmon File Added: Screenshot.png
2017-01-05 13:54 fsalmon Note Added: 0007596
2017-01-09 11:01 fsalmon Note Added: 0007612
2017-01-09 13:56 wyldckat Tag Attached: snappyHexMesh
2017-01-09 14:01 wyldckat Note Added: 0007614
2017-01-09 14:07 fsalmon File Added: Allrun
2017-01-09 14:08 fsalmon File Added: Allclean
2017-01-09 14:08 fsalmon File Added: blockMeshDict
2017-01-09 14:09 fsalmon Note Added: 0007615
2017-01-09 14:16 wyldckat Note Added: 0007616
2017-01-09 14:27 fsalmon File Added: case_for_bug2421_v1.tar.gz
2017-01-09 14:27 fsalmon Note Added: 0007617
2017-05-03 14:40 wyldckat Relationship added related to 0002536
+Issue History