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.