在进行adjoint分析的时候,如果adjoint cost function是建立在derived parts上,在运行计算的时候会出现“Adjoint cost function not supported on derived parts”错误。
本文介绍一种work around,来避免这样的错误的发生。
详细信息
问题描述: (1)在Adoint计算中,有时候希望将基于derived part的Report作为Adjoint Cost Function (2)但是这样的Adjoint Cost Function是不可微分的,因此在执行 Adjoint计算时候会报错:Adjoint cost function not supported on derived parts (3)本文旨在探讨如何避开使用derived part,又不引入额外的interface (引入额外的interface可能会使网格质量变差,从而影响收敛性),而使Adjoint正常工作 示例-问题定义 (1)在发动机计算中,我们希望将Z=-0.45m处的swirl作为adjoint cost function
总结 (1)此时可以从创建的expression report SwirlRatio_k,去创建Adjoint Cost Function (2)需要注意的是,目前在Adjoint Framework下,只支持全局坐标系, 因此若在Field Function中引入局部坐标系下的变量,会出现以下错 误: Warning: Differentiation of "CellAngularMomentum_Laboratory.Cartesian 1" is not supported Warning: Differentiation of "CellMassMomentOfInertia_Laboratory.Cartesian 1" is not supported Warning: Differentiation of "CellAngularMomentum_Laboratory.Cartesian 1" is not supported Warning: Differentiation of "CellMassMomentOfInertia_Laboratory.Cartesian 1" is not supported Warning: Differentiation of "CellMassMomentOfInertia_Laboratory.Cartesian 1" is not supported Warning: Differentiation of "CellMassMomentOfInertia_Laboratory.Cartesian 1" is not supported Warning: Differentiation of "CellAngularMomentum_Laboratory.Cartesian 1" is not supported Warning: Differentiation of "CellAngularMomentum_Laboratory.Cartesian 1" is not supported A floating point error has occurred. The following error has been logged: floating point exception [invalid operation], the specific cause cannot be identified Please refer to the troubleshooting section of the User's Guide. Command: RunAdjoint error: Server Error