Python中灵活且独立于求解器的拓扑优化库
项目描述
HydrOpTop
HydrOpTop 是一个 Python 库,旨在使用基于密度的方法为拓扑优化 (TO) 提供模块化、灵活且独立于求解器的方法。它的目标是成为瑞士军刀和 TO 所涉及的最先进工具和工程学科的标准交换场所。
求解器使用 I/O 屏蔽接口,因此允许以可重用的方式为不同的软件和代码定义成本函数、约束和过滤器。此外,目标函数和约束在同一类下实现,没有区别,这意味着它们可以毫不费力地互换。还提供了成本函数/约束、材料参数化和过滤器的基类,因此用户可以用最少的代码定义他们自己的 TO 特征。
特征
-
在一个域中分布两种材料(一种可能是空的),例如目标函数是最小化/最大化。
-
通过专用输入/输出屏蔽处理任何求解器。
-
将任何求解器与任何目标函数、过滤器或约束结合起来,一劳永逸地编写。
-
允许用户用几行定义写好的拓扑优化问题。
-
以通用和开放的格式编写结果以创建出色的图形和可视化。
-
解决由一个 PDE(例如)以及各种耦合 PDE 和时间相关问题(在未来)约束的拓扑优化问题。通过扩展,可以解决任何大规模的逆问题(地球物理学、校准等)。
入门
文档
当前的 README 文件包含有关 HydrOpTop 是什么、如何安装它以及运行一些示例以了解 HydrOpTop 的功能的一些基本信息(见下文)。如需更深入地描述其所有功能,请参阅更大的文档,供读者/用户参考。
请注意,该项目还很年轻,因此文档仍在开发中。
安装
HydrOpTop 库可以使用 Pythonpip命令轻松安装,如下所示:
pip install HydrOpTop
安装包括所有不同的 HydrOpTop 模块(材料参数化、功能、过滤器),包括求解器 I/O 屏蔽(有关接口求解器的列表,请参见此处)。但是,求解器通常都包含在内,这意味着用户需要手动安装它。可在此处的文档中找到 HydrOpTop 的求解器安装说明。
还建议使用 Paraview软件来可视化 HydrOpTop 结果。
同样,请注意,由于项目还很年轻,所以特性、命令或功能可能会快速变化。保持一致!
例子
该examples文件夹包含一些经典的拓扑优化问题,以说明 HydrOpTop 的能力。
线性弹性示例
- Cantilever_simple:使用自制 2D 线性弹性 FEM 求解器的经典 TO 基准。包括在最大体积约束下最小化悬臂的机械顺应性。
- Cantilever_discrete:与之前的经典基准相同,但使用 Heavyside 投影来创建离散的最终设计。
- Cantilever_min_volume:经典基准的变体,包括在最大机械柔量约束下最小化悬臂的重量(即体积)。
水文地质示例(使用 PFLOTRAN)
- Pond_drainage : TODO
- Reactive_barrier_max_flow:待办事项
- Pit_min_gradient:待办事项
贡献
该图书馆旨在成为工具和各种工程学科之间的交流场所。因此,您的贡献将受到热烈欢迎和认可。开发人员指南和贡献规则在此处的文档中进行了总结。但是,如果您是普通用户,您仍然可以通过报告错误和问题(请参阅上面的 GitHub 问题选项卡)或为该项目加注星标来提供帮助。谢谢你的暗示!
作者
- Moïse Rousseau -最初的工作:最初是我在矿业与环境研究所的博士论文的一部分,后来作为个人项目继续进行。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。