Sig Numerical Optimization / Tutorials

From OpenFOAMWiki

1 Tutorials using DAKOTA

1.1 Bounded-constrained gradient optimization of a blunt body

Blunt body with control points. Initial shape.
Shape optimization of the blunt body
  • In this short tutorial we do a bounded-constrained gradient optimization study of a blunt body.
  • We aim at optimizing the shape of a blunt body. The goal is to minimize the drag coefficient.
  • The body is parametrized using Bezier curves with four control points and six linear constraints.
  • To do the optimization we use Dakota, Salome and OpenFOAM. The geometry and mesh are generated with Salome.
  • This tutorial works fine with OpenFOAM 2.3.0, Salome 7.3.0 and Dakota 5.4.0.
  • Before running the tutorial, execute the script dakota_cleanup.
  • The coupling of Dakota, Salome and OpenFOAM is handled using a bash script (generic interface), that controls the simulation workflow.

1.2 Topology optimization of a plate using solidDisplacementFoam

Plate Geometry
  • This tutorials includes two cases (vector parameter andbounded-constrained gradient-based) for topology optimization of a plate.
  • The goal is to reduce the weight of the plate by maximizing the stress on the object.
  • The geometry has a single variable (the radius of the hole) and two linear constraints.
  • The main goal of this tutorials is to show the optimization workflow using Salome, cfMesh, OpenFOAM and Dakota.
  • The geometry is generated with Salome, while the mesh is generated using cartesian2DMesh (from cfMesh).
  • This tutorial was tested with OpenFOAM 2.2.2, Salome 7.4.0 and Dakota 6.0.
  • Before running the tutorial, execute the script dakota_cleanup.
  • Bash scripts are used to couple the different tools, in particular stlCombine is used to merge surface STL files generated by the Salome script.
  • File:Plate.tar.gz. Inside the README.FIRST file, you will find the instructions of how to run the case.

1.3 More tutorials

2 Other tutorials regarding optimization

2.1 Parametric Ahmed body geometry, mesh and case preparation with Salome and cfMesh

xz-section of Ahmed body mesh with slant of 25°
  • This tutorial includes Ahmed body case with two slant angles (25° and 35°). Any number of geometries with different slant angle can be produced with an easy editing of python script.
Boundary layer of Ahmed body mesh with slant of 25°
  • Geometry is defined in edited python script which is originally produced in Salome 7.4.0
yz-section of Ahmed body mesh with slant of 25°
  • 3D Cartesian mesh is done by cfMesh 1.0
Highly NonOrthogonal Elements in Ahmed body mesh with slant of 25°
  • Cases were tested with OpenFOAM-extend 3.0
  • The goal is to create geometries with one (or few) design parameter, their flow domain meshes and prepare OpenFOAM cases with single run of few scripts. This tutorial can be easily extended to run those cases and even couple them with Dakota for further optimization.
  • Another goal is to show abilities of cartesianMesh (3D cartesian mesher from cfMesh).
  • File:Parametric.tar.gz. Inside the README.pdf or README.odt files, you will find the instructions of how to run the case.