Submitted Questions wrote
How to model/simulate adjoint and topology optimization (for CFD with OpenFOAM)?
There is no built-in functionality for optimization in neither FEATool Multiphysics nor CFDTool. That said, since FEATool supports full customization via Matlab (including toolboxes such as the Optimization toolbox) it is possible to use the scripting FEATool functionality to build such models, like this example by Prof. Yamasaki at Uni. Osaka (note that with CFDTool it is not possible at all due to not supporting scripting)
https://www.featool.com/model-showcase/03_structural_mechanics_07_topology_optimization1If you intend to do topology optimization with OpenFOAM, then FEATool might not help that much. Although FEATool feature built-in interfaces to several solvers OpenFOAM, SU2, FEniCS, which allows you to set up and run corresponding simulations, you cannot use very advanced features of external solvers requiring significant modification (of source code and re-compilation) such as I believe is necessary for topology optimization. The example linked above was built using the built-in multiphysics solver which does allow for setting up custom equations, matrix assembly etc, but is not designed to solve CFD problems as efficiently as for example dedicated CFD solvers such as OpenFOAM and SU2.
Finally note that, you would unfortunately for the most part be on your own regarding optimization, as there is not much in-house experience in this field that can help.