Skip to main content

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 -最初的工作:最初是我在矿业与环境研究所的博士论文的一部分,后来作为个人项目继续进行。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

HydrOpTop-1.0.0a0.tar.gz (18.0 kB 查看哈希

已上传 source

内置分布

HydrOpTop-1.0.0a0-py3-none-any.whl (15.6 kB 查看哈希

已上传 py3