CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   [snappyHexMesh] Problem with decomposePar, snappyHexMesh (https://www.cfd-online.com/Forums/openfoam-meshing/191807-problem-decomposepar-snappyhexmesh.html)

luca1992 August 20, 2017 11:11

Problem with decomposePar, snappyHexMesh
 
3 Attachment(s)
Hello :) , I am using the fireFoam solver and more specifically smallPoolFire3D, I am having problems when calling decomposePar. I created a ".stl" file and used the snappyHexMesh function. I do not understand what does not work, can you help me? I attach the error, some question and some photos that can help you understand. If you need further details or additional information of course i will put them too.

Thank you :) , kind regards, Luca.

1)This is the error in decomposePar.log

/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 4.1-1e03d68d4f4e
Exec : decomposePar -force
Date : Aug 20 2017
Time : 16:50:18
Host : "ubuntu"
PID : 11510
Case : /home/luca/FoamCases/ultimo/smallPoolFire3D
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time



Decomposing mesh region0

Create mesh

Calculating distribution of cells
Selecting decompositionMethod hierarchical

Finished decomposition in 0.67 s

Calculating original mesh data

Distributing cells to processors

Distributing faces to processors

Distributing points to processors

Constructing processor meshes
Reading hexRef8 data : cellLevel
Reading hexRef8 data : pointLevel
Reading hexRef8 data : level0Edge
Reading hexRef8 data : refinementHistory

Processor 0
Number of cells = 54000
Number of faces shared with processor 1 = 1800
Number of faces shared with processor 2 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Processor 1
Number of cells = 54000
Number of faces shared with processor 0 = 1800
Number of faces shared with processor 3 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Processor 2
Number of cells = 54000
Number of faces shared with processor 0 = 1800
Number of faces shared with processor 3 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Processor 3
Number of cells = 54000
Number of faces shared with processor 1 = 1800
Number of faces shared with processor 2 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Number of processor faces = 7200
Max number of cells = 54000 (0% above average 54000)
Max number of processor patches = 2 (0% above average 2)
Max number of faces between processors = 3600 (0% above average 3600)

Time = 0


--> FOAM FATAL IO ERROR:
Cannot find patchField entry for galleria

file: /home/luca/FoamCases/ultimo/smallPoolFire3D/0/CH4.boundaryField from line 26 to line 39.

From function void Foam::GeometricField<Type, PatchField, GeoMesh>::Boundary::readField(const Foam::DimensionedField<TypeR, GeoMesh>&, const Foam::dictionary&) [with Type = double; PatchField = Foam::fvPatchField; GeoMesh = Foam::volMesh]
in file /home/ubuntu/OpenFOAM/OpenFOAM-4.1/src/OpenFOAM/lnInclude/GeometricBoundaryField.C at line 191.

FOAM exiting


---------------------------------------------------------------------------------

2)This is the CH4 file located in folder 0:

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

dimensions [0 0 0 0 0 0 0];

internalField uniform 0;

boundaryField
{
"(outlet|sides)"
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}

base
{
type zeroGradient;
}

galleriaGroup
{
type fixedValue;
value uniform 1.0;
}

}


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

3)I also attach a screen of a part of the file snappyHexMesh where there is the "galleriaGroup" name that is invoked in the various files in folder 0.

4)I also attach the two photos of the original allrun file and the file allrun edited by me

I'm still trying, but I can not find a solution, thank you again:) .

clapointe August 20, 2017 19:45

The solver is looking for a patch named galleria. In your CH4 file there is a patch named galleriaGroup instead of galleria.

Caelan

luca1992 August 21, 2017 04:42

2 Attachment(s)
Thanks for the response Caelan :) .

I had done so because I have taken the solver motorbike as an example and I went into the folder mesh/motorbike and in the snappyHexMesh file there is written motorbikeGroup and the files in folder 0 use as a label for the border conditions the word "motorbikeGroup". I attach the photos of what I told you.

I had tried to put "galleria.stl" in place of galleriaGroup but it did not work.

Now I did as you said, but I get this other error in the cellLevel file(see decomposePar.log). I can not change the cellLevel file because it is creates by the solver when I start it. It is not present originally. And in the file cellLevel you can see that the "galleria" label and its border conditions are not created in this file and this causes the error, but I do not know why.

Now, however, I also saw that if I go in incompressible / pisoFoam / les / motorBike the file snappyHexMesh and the files in folder 0 use another way that is different from what I had found in the mesh folder. I'm not understanding it well.

Do you know how to help me again?

Thank you, kind regards, Luca.

This is the error in decomposePar.log
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 4.1-1e03d68d4f4e
Exec : decomposePar -force
Date : Aug 21 2017
Time : 10:12:38
Host : "ubuntu"
PID : 2982
Case : /home/luca/FoamCases/ultimo/smallPoolFire3D
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time



Decomposing mesh region0

Create mesh

Calculating distribution of cells
Selecting decompositionMethod hierarchical

Finished decomposition in 0.55 s

Calculating original mesh data

Distributing cells to processors

Distributing faces to processors

Distributing points to processors

Constructing processor meshes
Reading hexRef8 data : cellLevel
Reading hexRef8 data : pointLevel
Reading hexRef8 data : level0Edge
Reading hexRef8 data : refinementHistory

Processor 0
Number of cells = 54000
Number of faces shared with processor 1 = 1800
Number of faces shared with processor 2 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Processor 1
Number of cells = 54000
Number of faces shared with processor 0 = 1800
Number of faces shared with processor 3 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Processor 2
Number of cells = 54000
Number of faces shared with processor 0 = 1800
Number of faces shared with processor 3 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Processor 3
Number of cells = 54000
Number of faces shared with processor 1 = 1800
Number of faces shared with processor 2 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Number of processor faces = 7200
Max number of cells = 54000 (0% above average 54000)
Max number of processor patches = 2 (0% above average 2)
Max number of faces between processors = 3600 (0% above average 3600)

Time = 0


--> FOAM FATAL IO ERROR:
Cannot find patchField entry for galleria

file: /home/luca/FoamCases/ultimo/smallPoolFire3D/0/cellLevel.boundaryField from line 26 to line 37.

From function void Foam::GeometricField<Type, PatchField, GeoMesh>::Boundary::readField(const Foam::DimensionedField<TypeR, GeoMesh>&, const Foam::dictionary&) [with Type = double; PatchField = Foam::fvPatchField; GeoMesh = Foam::volMesh]
in file /home/ubuntu/OpenFOAM/OpenFOAM-4.1/src/OpenFOAM/lnInclude/GeometricBoundaryField.C at line 191.

FOAM exiting


This is the cellLevel file that was created by the solver

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format binary;
class volScalarField;
location "0";
object cellLevel;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 0 0 0 0 0 0];

internalField uniform 0;

boundaryField
{
base
{
type calculated;
value uniform 0;
}
outlet
{
type calculated;
value uniform 0;
}
sides
{
type calculated;
value uniform 0;
}
}


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

KillerBee August 21, 2017 05:51

Hey luca

You need a patch called 'galleria' in your cellLevel file as well



Sent from my SM-N900 using CFD Online Forum mobile app

luca1992 August 21, 2017 05:57

Hi, yes but the cellLevel file there is not when I start the solver at the beginning, it is created only afterwards, and if I modify the file now that is present, I think that when I reboot the solver, the file is overwritten with the new one that will not have a patch 'galleria'.

Thanks, Luca.

KillerBee August 21, 2017 06:03

Check your createPatchDict. You have set it with overwrite option.

Sent from my SM-N900 using CFD Online Forum mobile app

luca1992 August 21, 2017 06:28

2 Attachment(s)
Thanks for the reply, I thought that anyway if modifying it later is a way of circumventing the problem but even if it does work it would still not be okay because there is a reason if it do not create 'galleria' in cellLevel.

Now I have removed the overwrite option and it have created three folder:0.001 and 0.002 and 0.003 of the mesh but only that in the last folder 0.003 it did not create in the cellLevel file the 'galleria' patch while in the 0.001 and 0.002 folders the patch 'galleria' is present.

These three folders represent the three phases of snappyHexMesh or 0.001 = castellated, 0.002 = snap and 0.003 = addLayers, and I think when the solver starts, it does not go to folder 0 but in the 0.003 folder and does not find what it is looking for. From what I understood I should copy the contents of the last folder (0.003) into folder 0 and then start the solver. It's correct?

Now I have made another attempt, if I put "false" to the addLayers stage of the snappyHexMesh file, only the 0.001 and 0.002 folders will be created and the problem of the 'galleria' patch will be in the 0.002 folder instead of in the 0.003 folder while in the 0.001 folder there is the patch 'galleria'.

Also in the 0.001 and 0.002 folders where the 'gallery' patch was created in my first attempt, the file is incorrectly written with 0 below the line and the semicolon below it. I attach the photo of this.

Now in the Allrun file I put the hashtag # before the fireFoam solver starts so that it is considered a comment, so for now the solver does not start, so the problem is before. I attach the picture of AllRun with # in the last line to be clearer.

I copy below createPatchDict and decomposePar.log where I have the error

Thank you very much.

This is my createPatchDict.

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

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

// This application/dictionary controls:
// - optional: create new patches from boundary faces (either given as
// a set of patches or as a faceSet)
// - always: order faces on coupled patches such that they are opposite. This
// is done for all coupled faces, not just for any patches created.
// - optional: synchronise points on coupled patches.

// 1. Create cyclic:
// - specify where the faces should come from
// - specify the type of cyclic. If a rotational specify the rotationAxis
// and centre to make matching easier
// - always create both halves in one invocation with correct 'neighbourPatch'
// setting.
// - optionally pointSync true to guarantee points to line up.

// 2. Correct incorrect cyclic:
// This will usually fail upon loading:
// "face 0 area does not match neighbour 2 by 0.0100005%"
// " -- possible face ordering problem."
// - in polyMesh/boundary file:
// - loosen matchTolerance of all cyclics to get case to load
// - or change patch type from 'cyclic' to 'patch'
// and regenerate cyclic as above


// Do a synchronisation of coupled points after creation of any patches.
// Note: this does not work with points that are on multiple coupled patches
// with transformations (i.e. cyclics).
pointSync false;

// Patches to create.
patches
(
{
// Name of new patch
name galleria;

// Type of new patch
patchInfo
{
type patch;
}

// How to construct: either from 'patches' or 'set'
constructFrom set;

// If constructFrom = patches : names of patches. Wildcards allowed.
patches ("periodic.*");

// If constructFrom = set : name of faceSet
set f0;
}
);

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

The error that I currently have in the decomposePar.log file is:


/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 4.1-1e03d68d4f4e
Exec : decomposePar -force
Date : Aug 21 2017
Time : 12:19:52
Host : "ubuntu"
PID : 4234
Case : /home/luca/FoamCases/ultimo/smallPoolFire3D
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time



Decomposing mesh region0

Create mesh

Calculating distribution of cells
Selecting decompositionMethod hierarchical

Finished decomposition in 0.44 s

Calculating original mesh data

Distributing cells to processors

Distributing faces to processors

Distributing points to processors

Constructing processor meshes
Reading hexRef8 data : cellLevel
Reading hexRef8 data : pointLevel
Reading hexRef8 data : level0Edge
Reading hexRef8 data : refinementHistory

Processor 0
Number of cells = 54000
Number of faces shared with processor 1 = 1800
Number of faces shared with processor 2 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Processor 1
Number of cells = 54000
Number of faces shared with processor 0 = 1800
Number of faces shared with processor 3 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Processor 2
Number of cells = 54000
Number of faces shared with processor 0 = 1800
Number of faces shared with processor 3 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Processor 3
Number of cells = 54000
Number of faces shared with processor 1 = 1800
Number of faces shared with processor 2 = 1800
Number of processor patches = 2
Number of processor faces = 3600
Number of boundary faces = 5400

Number of processor faces = 7200
Max number of cells = 54000 (0% above average 54000)
Max number of processor patches = 2 (0% above average 2)
Max number of faces between processors = 3600 (0% above average 3600)

Time = 0.003


--> FOAM FATAL IO ERROR:
Cannot find patchField entry for galleria

file: /home/luca/FoamCases/ultimo/smallPoolFire3D/0.003/cellLevel.boundaryField from line 26 to line 37.

From function void Foam::GeometricField<Type, PatchField, GeoMesh>::Boundary::readField(const Foam::DimensionedField<TypeR, GeoMesh>&, const Foam::dictionary&) [with Type = double; PatchField = Foam::fvPatchField; GeoMesh = Foam::volMesh]
in file /home/ubuntu/OpenFOAM/OpenFOAM-4.1/src/OpenFOAM/lnInclude/GeometricBoundaryField.C at line 191.

FOAM exiting

clapointe August 21, 2017 11:35

Can you share your case files with us?

Caelan

luca1992 August 23, 2017 05:32

Hi Claiponte, thank you for the answer, I can share them with you, I also attach files.log, I do not know how to put some input in snappyHexMesh, topoSetDict and createPatchDic. This is the Dropbox link where the files are located. I think one of the problems is that I have to create the inner mesh of the gallery that has to surround the heat puddle. The .stl file that represents the gallery to simplify is a parallelepiped so it is simple.

https://www.dropbox.com/sh/sk9dhofhw...iZ4pCKGHa?dl=0

Hello, thank you, greetings, Luca.

clapointe August 23, 2017 14:45

Can you clarify what you are trying to model? Right now your .stl file is much larger than the background mesh created via blockMesh.

Caelan

luca1992 August 23, 2017 14:56

I'm trying to simulate a fire in a closed place, now a simple parallelepiped, and then when I see that it works I will use a geometry that tracks a highway tunnel. I thought of putting the heat puddle inside because it represents a car / truck exploding inside the tunnel.

The mesh now instead of being in the form of a tunnel is a simple parallelepiped that is larger than the original file generated by blockMesh. I put inside the .stl file the cube created with blockMesh because that is the heat puddle, I had the doubt that instead I had to put the tunnel inside the cube representing the heat puddle, and therefore the file created with blockMesh is the maximum domain of the problem. I also asked for other forum pages but nobody gave me a certain answer. Now I thought I had to create a background mesh with blockMesh that enclosed both the .stl file that is the tunnel and the heat pool created with blockMesh.

Thank you, Luca.

clapointe August 23, 2017 16:12

I'm still not sure what you're trying to model -- can you provide a sketch?. If it's a heat source within some sort of outer region, have you looked at the hot room tutorial?

https://github.com/OpenFOAM/OpenFOAM...hotRoom/system

Caelan

luca1992 August 23, 2017 19:06

2 Attachment(s)
Hi, :)
here's a sketch(I attach a photo)of how I loaded the file on the dropbox on the left, and how I think it should be on the right. Anyway, I'm reviewing that on dropbox files inputs in topoSetDict and createPatchDict are very bad because I did not understand how to modify them. I've seen that tutorial you say and others like flame with obstacles but from what I understood they only have a single geometry (they do not use snappyHexMesh), they use only a blockMeshDict file and I do not understand where they are the source of flames, I think there is a code behind preset that is recalled. I also saw igloo with fridges that could be similar to my problem but I got little.

Also I had the doubt that I had to put the tunnel inside the cube representing the heat puddle, and therefore the file created with blockMesh is the maximum domain of the problem(I attach a second photo). But in this case I do not know which source is the fire, maybe it might be the center of the cube. In this case I have only one blockMeshDict file.

I think one of the problems is to be able to generate the mesh inside the tunnel

Thank you :) , do not hesitate to ask more questions if I have not been clear, greetings, Luca.


All times are GMT -4. The time now is 07:57.