Edit me

The following is a conjugate heat transfer topology optimization setup for a channel.

Case: Conjugate heat transfer topology optimization 
Geometry: A square channel
Objective function: Weighted total pressure loss and outlet temperature 
Design variables: 6400 porosity values in the flow field
Constraints: None
Reynolds number: 1000 (laminar flow)
Mesh cells: 6400
Solver: DATopoChtFoam

To run this case, first download tutorials and untar it. Then go to tutorials-main/Channel_TopoCHT and run the “preProcessing.sh” script to generate the mesh and set a boundary layer profile at the inlet:

./preProcessing.sh

Then, use the following command to run the optimization with 4 CPU cores:

mpirun -np 4 python runScript.py 2>&1 | tee logOpt.txt

The case ran for 21 steps and took about one hour using Intel 3.0 GHz CPU with 4 cores. According to “logOpt.txt” and “opt_SNOPT_summary.txt”, the initial and final objective functions are -2.417 and -5.121 with a reduction of 111.9%.

The following are the animations of the optimization. Notes: The SNOPT optimizer works better than IPOPT for this case.

Fig. 1. Velocity and alpha porosity evolution during the optimization.