CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Multiregion BlockMesh Run Problem (https://www.cfd-online.com/Forums/openfoam-solving/130033-multiregion-blockmesh-run-problem.html)

EFoster2 February 18, 2014 13:29

Multiregion BlockMesh Run Problem
 
Hello!

For my dissertation this year I am working on simulating a full bifurcating network, but having never used linux or openFoam before hand this proving to be a bit tricky. I have elected to use blockMesh to make my desired mesh but before I run my full network I thought it would be best try a smaller 2 block multiregion blockMesh and that's were my troubles are.

I have made the mesh and my blockMeshDict is attached (see below). It meshes fine with checkMesh saying that there are no errors(see below). I then import it into helyxOS by copying the polymesh directory over to a newCase.

I set up my case by selecting steady state in compressible laminar flow of water. I specify all relevant walls with a no slip condition, leave the defaultFaces as empty, specify the inlet as a fixed velocity at 10 m/s with a zero pressure gradient and the outlet as an inlet outlet velocity at 10m/s with a fixed pressure value of 0. I leave all solver options on default because in my head it should solve but doesn't. It crashes with an error(see below)!

Have I missed anything? I have also tried to delete the defaultFaces by modifying the boundary file in the polyMesh dictionary but this seems not to work either.

I appreciate any help I get because right now my head is spinning!!

Regards,

Euan Foster.

blockMeshDict
Code:

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

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

convertToMeters 1;

vertices
(
//block1
    (-0.000125 -0.0000625 0)                //0
    (0 -0.0000625 0)                        //1
    (0 0.0000625 0)                        //2
    (-0.000125 0.0000625 0)                //3
    (-0.000125 -0.0000625 0.01)        //4
    (0 -0.0000625 0.01)                //5
    (0 0.0000625 0.01)                        //6
    (-0.000125 0.0000625 0.01)                //7

//block2
    (-0.000125 -0.0000625 0.01)        //8
    (0 -0.0000625 0.01)                //9
    (0 0.0000625 0.01)                        //10
    (-0.000125 0.0000625 0.01)                //11
    (-0.000125 -0.0000625 0.0101433)        //12
    (0 -0.0000625 0.0101433)                //13
    (0 0.0000625 0.0101433)                //14
    (-0.000125 0.0000625 0.0101433)        //15

);

blocks
(
    //block1
    hex (0 1 2 3 4 5 6 7) (10 10 10) simpleGrading (1 1 1)
    //block2
    hex (8 9 10 11 12 13 14 15) (10 10 10) simpleGrading (1 1 1)
 
);

edges
(
);

boundary
(
    symmetry
    {
        type wall;
        faces
        (
          (2 6 5 1)                //1st block
          (10 14 13 9)                //2nd block           
        );
    }

    walls
    {
        type wall;
        faces
        (
            //Lower walls
            (1 5 4 0)                //1 block
            (9 13 12 8)                //2 block

            //Upper walls
            (3 7 6 2)                //1 block
            (11 15 14 10)        //2 block

            //1 block foward
            (0 4 7 3)
            (8 12 15 11)

        );
    }
    inlet
    {
        type patch;
        faces
        (
          (0 3 2 1)                //1 block
        );
    }
    outlet
    {
        type patch;
        faces
        (
            //2 block back
            (12 13 14 15)

        );
    }
);

 mergePatchPairs
(
);
// ************************************************************************* //

CheckMesh
Checking geometry...
Overall domain bounding box (-0.000125 -6.25e-05 0) (0 6.25e-05 0.0101433)
Mesh (non-empty, non-wedge) directions (1 1 0)
Mesh (non-empty) directions (1 1 0)
All edges aligned with or perpendicular to non-empty directions.
Boundary openness (-3.38379e-16 5.87812e-17 -8.15637e-19) OK.
Max cell openness = 1.99844e-16 OK.
Max aspect ratio = 1 OK.
Minimum face area = 1.5625e-10. Maximum face area = 1.25e-08. Face area magnitudes OK.
Min volume = 2.23906e-15. Max volume = 1.5625e-13. Total volume = 1.58489e-10. Cell volumes OK.
Mesh non-orthogonality Max: 0 average: 0
Non-orthogonality check OK.
Face pyramids OK.
Max skewness = 0.771828 OK.
Coupled point location match (average 0) OK.

Mesh OK.

End

Error
#0 Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2 in "/lib/x86_64-linux-gnu/libc.so.6"
#3 double Foam::sumProd<double>(Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#4 Foam::PCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#5 Foam::GAMGSolver::solveCoarsestLevel(Foam::Field<d ouble>&, Foam::Field<double> const&) const in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#6 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMa trix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#7 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#8 Foam::fvMatrix<double>::solveSegregated(Foam::dict ionary const&) in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libfiniteVolume.so"
#9 Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/opt/openfoam222/platforms/linux64GccDPOpt/bin/simpleFoam"
#10
at simpleFoam.C:0
#11
in "/opt/openfoam222/platforms/linux64GccDPOpt/bin/simpleFoam"
#12 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#13
in "/opt/openfoam222/platforms/linux64GccDPOpt/bin/simpleFoam"

EFoster2 February 19, 2014 08:00

If anyone else is looking at this, I have found my problem.

In the blockMesh dict there is no need to specify two of the same vertices as I have done above. To sort this, when you define the blocks with the hex command call the same vertice twice.

If you don't it creates a defaultFace of which you have to define as empty and that only works for 2D geometry and not the 3D that I am trying to create.

EFoster2 April 2, 2014 08:52

Better still.... if you are looking to create a multiregion blockmech what you can do is specify the various blocks you need and define the surfaces where they connect as two separate patches.

Run the command stitchMesh -overwrite patch1 patch2. Where patch1 and patch2 refer towo the connection surfaces of each block.

Also if you are doing this numerous times you will need to delete the meshmodifiers file in the polymesh directory.


All times are GMT -4. The time now is 16:10.