Difference between revisions of "Sig Numerical Optimization / Tutorials"

From OpenFOAMWiki
(Tutorials using DAKOTA)
Line 48: Line 48:
  
 
==== More tutorials ====
 
==== More tutorials ====
 
 
* [[Sig Numerical Optimization / More tutorials|More tutorials]]
 
* [[Sig Numerical Optimization / More tutorials|More tutorials]]
 +
 +
== Other tutorials regarding optimization==
 +
==== Parametric Ahmed body geometry, mesh and case preparation with Salome and cfMesh ====
 +
[[File:plate_OF_case.png|thumbnail|300x122px|Plate Geometry]]
 +
 +
* This tutorials 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.
 +
 +
* Geometry is defined in edited python script which is originally produced in Salome 7.4.0
 +
 +
* 3D Cartesian mesh is done by cfMesh 1.0
 +
 +
* 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).

Revision as of 23:45, 22 September 2014

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

Plate Geometry
  • This tutorials 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.
  • Geometry is defined in edited python script which is originally produced in Salome 7.4.0
  • 3D Cartesian mesh is done by cfMesh 1.0
  • 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).