Answers:
您要做的是使用基于梯度的方法进行形状优化。从本质上讲,这意味着您需要计算目标函数对模型参数的梯度。
对于少量参数,可以使用FD,但是对于大量参数,则需要研究伴随方法。如果使用的商业代码或其他人的代码无法求解伴随方程,则FD是唯一的选择。
查看基本的基本形状优化书籍。
编辑:对于结构性有限元问题,您可以查看Choi和Kim I和II的书
如果您适当地设置几何构造零件的参数,则这是使用离散和连续参数混合进行黑盒优化的问题。
DAKOTA http://dakota.sandia.gov/和NOMAD http://www.gerad.ca/NOMAD/Project/Home.html是两个有用的软件包,可让您自动选择最佳参数选择。(DAKOTA具有更好的应用程序支持,但NOMAD可能具有更好的优化器。)
要改变几何形状,请为每个要影响几何形状的控件引入一个离散或连续的参数,并从控件集合中自动构造几何形状。请注意,在高维情况下,无导数方法相当慢,因此请保持参数数量合理地少。
使用上述软件包之一探索空间之后,您可以通过进行更精确的优化来细化分析,其中所有离散参数和所有连续参数都是固定的,而您无法获得解析的导数。但是您可能会增加用于计算解析导数的连续形状参数的数量,因为基于梯度的优化器(例如IPOPT https://projects.coin-or.org/Ipopt)可以有效地处理更大的问题。
如果您不知道如何获得导数,但依存关系是平稳的,则可以考虑使用自动微分程序,或在AMPL中编码连续问题,在这种情况下,求解器接口将负责导数。
有关形状优化的基础知识,请参见例如Haftka,RT和Grandhi,RV,结构形状优化-调查,《应用力学和工程学的计算机方法》 57(1986),第91-106页。(请信任有关建模的描述;但是不要使用他们建议的求解器,因为从那时起,优化技术已经有了很大的改进。)
至于几何参数的问题(正如Geoff指出的那样),-我可以真诚地推荐Brenda Kulfan-Universal Parametric Geometry Representation Method,飞机杂志,第45卷,第1期,2008年。
所描述的方法适用于飞机的空气动力学优化。
还有伴随空间优化,这似乎比CFD中的标准参数优化快得多。最近,它在CFD社区中,特别是在OpenFOAM中,已大大普及。目前,我们正在组织有关OpenFOAM的研讨会,并且我们收到了许多有关此方法的抽象意见。如果您有兴趣,请查看此信息,以获取其他信息,只需谷歌“ CFD中的伴随空间形状优化”。
附加信息:
如果可以使用OpenFOAM,则有一个基于Python的库可用于处理此类情况,以处理大量案例并更改其参数PyFoam。对于简单的几何体,可以将网格定义为简单的blockMesh并遍历任何所需的对象。在一个简单的情况下,这是在Python中编写一些循环的问题。这是更改“入口”边界条件速度时脚本的外观。简单的网格几何形状更改将需要多几行代码...
您将需要:
以下功能对于CFD工具至关重要:
因此,我可以推荐以下软件:
高级仿真库的提议
高性能:
高度的灵活性和友善性: