SchmJo / terrainBlockMesher

Tools for OpenFOAM developed at Fraunhofer IWES in Oldenburg, Germany
27 stars 22 forks source link

Mesh refinement #1

Open beinspired opened 10 years ago

beinspired commented 10 years ago

I would like to refine the mesh in the x,y plane ( not z plane) previously to move the mesh up to the stl surface. The point of this is because blockMesh can not manage high resolution meshes ( 30M), it can not be run in parallel, so it would be a great solution to start with a simple blockMesh mesh, refine and move. Becau

SchmJo commented 10 years ago

Hi,

I am not sure I understand. Have you tried the blockGrading tutorial? It involves grading in x-y.

Best regards, Jonas

/*-------------------------------------------------------------------------- Dr. Jonas Schmidt

Fraunhofer IWES Turbinesimulation, Software Development and Aerodynamics

Ammerländer Heerstr. 136 26129 Oldenburg - Germany

Phone +49 441 798 5013 / Fax +49 441 798 5019 --------------------------------------------------------------------------*/


From: beinspired [notifications@github.com] Sent: 25 August 2014 16:58 To: jonasIWES/terrainBlockMesher Subject: [terrainBlockMesher] Mesh refinement (#1)

I would like to refine the mesh in the x,y plane ( not z plane) previously to move the mesh up to the stl surface. The point of this is because blockMesh can not manage high resolution meshes ( 30M), it can not be run in parallel, so it would be a great solution to start with a simple blockMesh mesh, refine and move. Becau

— Reply to this email directly or view it on GitHubhttps://github.com/jonasIWES/terrainBlockMesher/issues/1.

beinspired commented 10 years ago

TerrainBlockMesher uses blockMesh library to generate the preliminary mesh ( controlling grading and so) and then, the bottom vertices are moved up to the stl surface. The internal mesh is moved in relation to this calculated displacement. Is that correct? It is a summary, excuse me if I summarize a lot. I am trying to use it to mesh a big big complex domain ( 20x20 Km) where my requirements would be around 30 million cells ( minimum grid size = 5m). I can not generate the preliminary mesh ( first stage of the process) because it can not be run in parallel and blockMesh works bad with such big meshes. That is, I can not generate directly such a big mesh.

My idea to solve this issue would be to, after first stage ( blockMesh in single processor), refine the mesh ( by a factor of 4, in the x-y plane) and then, continue with the last stage ( displacement up to the stl).

Thank you very much Marce

SchmJo commented 10 years ago

Hi Marce,

no, this is not entirely true. There is no preliminary mesh within the terrainBlockMesher. The block vertices are instead moved onto the stl (this is a much smaller number of points - especially if you select few blocks and many cells per block, thereby limiting the exactness of your approximation of the stl by the ground patch).

So, the mesher should do fine - until the last step, which in any case will take long: the blockMesh, which fills the blocks with cells. And you are right, this does not run in parallel.

I used the terrainBlockMesher for 70 x 70 km2, generating 46 mio cells, and it worked fine (however, our internal version, which is quite different in some respects).

The xy-grading just gives you grading of the blocks. Your step wise approach will not work for the terrainBlockMesher, is think.

Sorry, Jonas

/*-------------------------------------------------------------------------- Dr. Jonas Schmidt

Fraunhofer IWES Turbinesimulation, Software Development and Aerodynamics

Ammerländer Heerstr. 136 26129 Oldenburg - Germany

Phone +49 441 798 5013 / Fax +49 441 798 5019 --------------------------------------------------------------------------*/


From: beinspired [notifications@github.com] Sent: 26 August 2014 10:52 To: jonasIWES/terrainBlockMesher Cc: Schmidt, Jonas Subject: Re: [terrainBlockMesher] Mesh refinement (#1)

TerrainBlockMesher uses blockMesh library to generate the preliminary mesh ( controlling grading and so) and then, the bottom vertices are moved up to the stl surface. The internal mesh is moved in relation to this calculated displacement. Is that correct? It is a summary, excuse me if I summarize a lot. I am trying to use it to mesh a big big complex domain ( 20x20 Km) where my requirements would be around 30 million cells ( minimum grid size = 5m). I can not generate the preliminary mesh ( first stage of the process) because it can not be run in parallel and blockMesh works bad with such big meshes. That is, I can not generate directly such a big mesh.

My idea to solve this issue would be to, after first stage ( blockMesh in single processor), refine the mesh ( by a factor of 4, in the x-y plane) and then, continue with the last stage ( displacement up to the stl).

Thank you very much Marce

— Reply to this email directly or view it on GitHubhttps://github.com/jonasIWES/terrainBlockMesher/issues/1#issuecomment-53392364.

beinspired commented 10 years ago

Hi Jonas,

I though that cell vertices were moved onto the stl, not only block vertices to represent accurately stl surface. When blockMesh fills the block with cells, are those cells moved onto the stl surface? Maybe extracting some information from the stl surface to control block edges with a spline? Could you explain this point? I suppose that exactness of the stl representation is not be controlled only by block vertices.

How much time ( aprox.) takes you to mesh that 46 M cells? Hours, 1-2 days?

Do you mind to talk about those differences in a non-public way?

Best Regards Marce

SchmJo commented 10 years ago

Hi Marce,

Yes, the block vertices fully control the accuracys of the stl representation. My email: jonas.schmidt@iwes.fraunhofer.de

Best, Jonas

/*-------------------------------------------------------------------------- Dr. Jonas Schmidt

Fraunhofer IWES Turbinesimulation, Software Development and Aerodynamics

Ammerländer Heerstr. 136 26129 Oldenburg - Germany

Phone +49 441 798 5013 / Fax +49 441 798 5019 --------------------------------------------------------------------------*/


From: beinspired [notifications@github.com] Sent: 26 August 2014 12:19 To: jonasIWES/terrainBlockMesher Cc: Schmidt, Jonas Subject: Re: [terrainBlockMesher] Mesh refinement (#1)

Hi Jonas,

I though that cell vertices were moved onto the stl, not only block vertices to represent accurately stl surface. When blockMesh fills the block with cells, are those cells moved onto the stl surface? Maybe extracting some information from the stl surface to control block edges with a spline? Could you explain this point? I suppose that exactness of the stl representation is not be controlled only by block vertices.

How much time ( aprox.) takes you to mesh that 46 M cells? Hours, 1-2 days?

Do you mind to talk about those differences in a non-public way?

Best Regards Marce

— Reply to this email directly or view it on GitHubhttps://github.com/jonasIWES/terrainBlockMesher/issues/1#issuecomment-53400758.

beinspired commented 10 years ago

Hi Jonas,

Then inside the block, the lower edge is a straight line between two points?

SchmJo commented 10 years ago

Ha, you are right: there are the splines, of course! They lie on the stl.

/*-------------------------------------------------------------------------- Dr. Jonas Schmidt

Fraunhofer IWES Turbinesimulation, Software Development and Aerodynamics

Ammerländer Heerstr. 136 26129 Oldenburg - Germany

Phone +49 441 798 5013 / Fax +49 441 798 5019 --------------------------------------------------------------------------*/


From: beinspired [notifications@github.com] Sent: 26 August 2014 12:25 To: jonasIWES/terrainBlockMesher Cc: Schmidt, Jonas Subject: Re: [terrainBlockMesher] Mesh refinement (#1)

Hi Jonas,

Then inside the block, the lower edge is a straight line between two points?

— Reply to this email directly or view it on GitHubhttps://github.com/jonasIWES/terrainBlockMesher/issues/1#issuecomment-53401340.

beinspired commented 10 years ago

Could you attach an example about how to export the new surface generated with the blending function? I see the code but I do not know how to export it to STL. Thanks