Using Blender to create solids for Gerris

From Gerris

Jump to: navigation, search

This is a short introduction to using Blender for creation of solid bodies for inclusion in Gerris simulation.

Contents

How to create a wing

Start with an empty scene (camera and light is OK)

Start

Add Bezier curve

<space> -> add -> curve -> bezier curve

Image:blender_1_002.jpeg

Close the curve

<TAB>
<C>

Image:blender_1_003.jpeg

Subdivide it

(curve) -> segments -> subdivide

Image:blender_1_004.jpeg

Disable the Back and Front for the curve

De-select "Back" and "Front" (this is done in bottom window in blender)

Extrude the curve

Set the extrude level to 1

Convert the curve to mesh

<TAB> - Switch to object mode

(object) -> convert object type: Mesh

Image:blender_1_005.jpeg

Image:blender_1_006.jpeg

Close the top and bottom parts of the mesh

numpad<3> - switch to the side view
<Tab>
<B> - border select (select the top nodes)

(mesh) -> faces -> fill

Image:blender_1_007.jpeg

<A>
<B> - border select (select the bottom nodes)

(mesh) -> faces -> fill

Image:blender_1_008.jpeg

Recalculate normals

<A>
<A>

Now you should have all mesh nodes selected.

(mesh) -> normals -> recalculate inside

The result

Export the mesh in STL format

<TAB> - go to object mode

Select the wing...

(File) -> Export -> STL

Save the file as wing.stl

STL to GTS

Convert from .stl to .gts

 stl2gts < wing.stl > wing.gts

Transform the wing.gts

 transform -o < wing.gts | transform -t 1 > blender_1.gts 

The first transform normalizes the wing, the 2nd one moves it to 2nd cell along X axis. The resulting file "blender_1.gts" is ready for use in Gerris simulation.

Example simulation

(download links below)

4 3 GfsSimulation GfsBox GfsGEdge {} {
  Time { end = 100 }
  Solid blender_1.gts
  Refine 6
  RefineSolid 8
  Init {} { U = 1 }
  OutputTime { istep = 10 } stderr

  OutputSimulation { istep = 4 } stdout

#  EventScript { istep = 4 } { echo "Save stdout { width = 1024 height = 768 }" }

}
GfsBox { left = BoundaryInflowConstant 1 top = BoundaryOutflow bottom = BoundaryOutflow }
GfsBox { top = BoundaryOutflow bottom = BoundaryOutflow }
GfsBox {  top = BoundaryOutflow bottom = BoundaryOutflow }
GfsBox { right = BoundaryOutflow  top = BoundaryOutflow bottom = BoundaryOutflow }
1 2 right
2 3 right
3 4 right

Simulation files (use "right click" + "save as" to download):

gfs gfv gts

To run the simulation:

gerris2D blender_1.gfs | gfsview2D blender_1.gfv
The result
The result
Views
Navigation
communication