Differentiable numerical simulations of physical systems have gained rising attention in the past few years with the development of automatic differentiation tools. This paper presents JAX-SSO, a differentiable finite element analysis solver built with JAX, Google's high-performance computing library, to assist efficient structural design in the built environment. With the adjoint method and automatic differentiation feature, JAX-SSO can efficiently evaluate gradients of physical quantities in an automatic way, enabling accurate sensitivity calculation in structural optimization problems. Written in Python and JAX, JAX-SSO is naturally within the machine learning ecosystem so it can be seamlessly integrated with neural networks to train machine learning models with inclusion of physics. Moreover, JAX-SSO supports GPU acceleration to further boost finite element analysis. Several examples are presented to showcase the capabilities and efficiency of JAX-SSO: i) shape optimization of grid-shells and continuous shells; ii) size (thickness) optimization of continuous shells; iii) simultaneous shape and topology optimization of continuous shells; and iv) training of physics-informed neural networks for structural optimization. We believe that JAX-SSO can facilitate research related to differentiable physics and machine learning to further address problems in structural and architectural design.
翻译:随着自动微分工具的发展,物理系统的可微分数值模拟在过去几年中受到越来越多的关注。本文提出了JAX-SSO,这是一个基于JAX(谷歌的高性能计算库)构建的可微分有限元分析求解器,旨在辅助建筑环境中的高效结构设计。借助伴随方法和自动微分特性,JAX-SSO能够以自动化方式高效计算物理量的梯度,从而在结构优化问题中实现精确的灵敏度分析。JAX-SSO采用Python和JAX编写,天然融入机器学习生态系统,因此可以与神经网络无缝集成,从而训练包含物理规律的机器学习模型。此外,JAX-SSO支持GPU加速以进一步提升有限元分析效率。本文通过多个示例展示了JAX-SSO的功能与性能:i) 网格壳与连续壳的形状优化;ii) 连续壳的尺寸(厚度)优化;iii) 连续壳的形状与拓扑同步优化;iv) 面向结构优化的物理信息神经网络训练。我们相信JAX-SSO能够推动可微分物理与机器学习相关研究,进一步解决结构与建筑设计领域的问题。