Code_Aster 简介 Code_Aster 是由法国电力公司(EDF)研发的开源有限元分析软件,主要用于结构与热力学仿真。作为一款达到工业级标准的求解器,它具备极高的计算精度和可靠性,广泛应用于核能、土木及机械工程领域。其功能涵盖了静力学、动力学、非线性分析、疲劳断裂及流固耦合等复杂物理场景。Code_Aster 基于Python脚本进行操作,拥有丰富的单元类型和材料本构模型,是开源CAE领域中替代商业软件的强力选择。

SALOME 简介 SALOME 是一个开源的数值仿真集成平台,为有限元分析提供了完整的前后处理环境。它支持从CAD几何建模、参数化设计、网格划分到结果可视化的全流程操作。SALOME 具有优秀的兼容性,能够无缝对接Code_Aster、OpenFOAM等多种求解器,并通过统一的图形界面管理计算作业。其模块化的架构和强大的Python脚本接口,允许用户实现仿真流程的自动化与定制化,是进行Code_Aster仿真分析的标准图形界面工具。

引子:

最近扔掉Windows回归了Debian的怀抱,本打算安装一个abaqus来模拟各种结构玩。(本人专业是计算机和有限元八竿子打不着,后续有关专业的内容可能有误,请批判性阅读)但忽然想到,既然用来开源系统,那么不如尝试一下开源的有限元分析软件。

于是就在网上搜各种有限元分析软件,其中两个软件映入眼帘,CalculiX和code_aster。正所谓文无第一,武无第二。遇见两个同类型的软件,总是要比较一番的,于是我在网上搜索,搜出了这么几个帖子和文章。

https://forum.code-aster.org/public/d/25752-calculix-vs-code-aster

https://www.simscale.com/forum/t/fea-boundary-conditions-calculix-vs-codeaster/10449

帖子中提到CalculiX配置简单,安装方便,适合初学者,但在复杂场景的处理中稍弱(但帖子日期都是几年前了)开源软件几年变化就大有不同,所以不能以老眼光看待问题,但出于种种考虑我还是选择了code_aster。

有关CalculiX的使用见官网,此处也有一个介绍CalculiX的视频展示。相比较code_aster来说CalculiX更偏向于社区主导,印象中采用的是GPL协议?

https://www.calculix.de/

https://www.bilibili.com/video/BV1JJsBznEzi

第一章 code_aster/SALOME安装

d由于我们的主要内容是介绍code_aster,所以有关CalculiX的部分就一笔带过。

code_aster只是其中的一个求解器,如果光用code_aster的话无疑十分难受,所以我们直接安装SALOME大礼包,前端后端网格处理等等,一股脑全打包了。

https://code-aster.org/spip.php?article303

安装包可以在上面这个链接中找到。

我们直接安装最新版,这是一个容器的格式。官网给出的教程说windows只能用wsl/wsl2运行一个Linux环境来跑。但看在文档给出的Debian8的案例来看,这个文档时间多少有些久远了。读者如果是使用windows操作系统的话,可以研究一下这个容器能不能在win上跑。

作者是用的Debian13.4的系统版本,所以直接安装容器就行。

  • 什么是 Singularity? 是的,它就像 Docker。它是一个容器系统,在科学计算和高性能计算(HPC)中很流行,因为它能处理权限问题(不像 Docker 那样需要 root,这对集群来说不安全,当然现在也有不用root的版本)。

作者使用的Debian使用apt默认没有这玩意。据说这玩意发展途中还改名了。

以前的命令叫 singularity,现在新的标准命令叫 apptainer。但为了兼容,通常 singularity 命令也会自动链接到 apptainer

但你要是sudo apt install singularity就搞笑了,因为这直接会安装一个同名的叫singularity的游戏(我试着玩了一下没玩明白)。

似乎Debian的软件仓库里默认没有这玩意。

我们只能去它的官网安装。

https://apptainer.org/docs/admin/main/installation.html

但是你直接wget他的实例可能是旧文件或者空,老老实实从github的发布页上来拉。

https://github.com/apptainer/apptainer/releases/

其中debug/dbg都是调试的意思,你可以看到调试信息,suid是临时通行证的意思,你可以问一下AI简单来说省事没那么多权限问题。

我是debian13 也就是 trixie 版,所以就下这个了。

https://github.com/apptainer/apptainer/releases/download/v1.5.0-rc.1/apptainer-suid_1.5.0.rc.1-trixie+_amd64.deb

把这个包拉下来dpkg就行,当然,安装前最好先念咒祈祷一下,以便不会遇到什么依赖问题。

APT神咒:终端Root,赛博之灵。 升达云端,大陆放行。 为吾安装,依赖莫停。 有功之日,机械飞升。

如果有依赖问题,请左转nix,nix值得你拥有。(所以我左转去了nix)

以下是nix安装的说明:

Nix 是一个非常强大的工具,特别适合你这种“系统想保持稳定,但特定软件要最新”的需求。它就像是在你的系统里装了一个独立的“应用商店”,里面的软件都是最新版,且完全不影响 Debian 本身。

以下是 Nix 在 Debian 上的具体操作步骤:

第一步:安装 Nix 包管理器

在 Debian 终端中,直接运行官方安装脚本:

        sh <(curl -L https://nixos.org/nix/install) --daemon

  • 说明--daemon 模式是多用户模式,适合 Debian 这种多用户系统。安装过程会需要你确认几次,按提示输入 y 即可。
  • 耗时:安装很快,它主要是在你的系统里建立 /nix 目录并配置环境变量。

安装完成后,关闭当前终端并重新打开(或者执行 source /etc/profile),让环境变量生效。

验证是否成功:

        nix --version

第二步:找到你要的软件

Nix 拥有全世界最大的软件仓库之一。你需要先确认你要的软件在 Nix 里叫什么名字。

  1. 打开网页:https://search.nixos.org/
  2. 在搜索框输入你的软件名。
  3. 找到软件后,看 "Package name" 这一栏(比如 neovimgoblender)。
  4. 关键点:看 "Version" 一栏。Nix 的 unstable 通道通常包含 GitHub 上最新发布的版本。默认安装的就是 unstable 通道,这正是你想要的。

第三步:安装软件

假设你要安装的软件叫 hello(请替换成你实际要装的软件名)。

方法 A:直接安装到系统(推荐)

这就像 apt install 一样,把软件装好,你可以直接在终端运行。

# 语法:nix-env -iA nixpkgs.软件名

nix-env -iA nixpkgs.hello

安装完成后,你可以直接运行:

hello

以后想更新这个软件到最新版,只需:

nix-env -u 软件名

方法 B:临时运行(最干净,不污染环境)

如果你不想安装,只是想临时用一下最新版,或者想测试一下版本对不对:

# 语法:nix-shell -p 软件名

nix-shell -p hello

执行后,你会进入一个特殊的 Shell 环境,在这个环境里 hello 命令可用。输入 exit 退出后,系统里就没有这个软件了。

第四步:日常使用和管理

  • 查看已安装软件nix-env -q
  • 卸载软件nix-env -e 软件名
  • 彻底清理空间:Nix 不会自动删除旧版本,如果你磁盘空间紧张,定期运行:

    nix-collect-garbage -d

配置好了,可以使了(忍不住吐槽一下Linux系的屎山,这种一层套一层的方案简直是在屎上拉屎,怪不得开发都转去用mac了。愿世间发行版能再少一点再少一点。)

现在我们按照教程给的方法测试。

虽然和abaqus的界面有点不像,用起来颇为不知所措,但至少它跑起来了不是吗?

可以看到生成了一个可执行的程序,我想或许把它移动到/usr/bin中也是可以用的。

好吧其实不不可以。

总之,至此,我们的软件算是安装完成了,接下来就是介绍一下如何使用了。

当然先让我摸索一会,未完待续。

第二章 SALOME的使用:

待写ing

急着看的可以直接阅读手册和yutube链接。

https://code-aster.org/docsmeca/default/en/index.php?man=SU

https://docs.salome-platform.org/latest/main/gui.html

视频

https://www.youtube.com/@SALOMEPlatformOfficial/videos

https://www.youtube.com/@codeaster4013

此外还有一些视频up主更新的教程,其实比官方写的还好,但太多了,就不列了,你们自己搜就行。

当然在Linux下使用sw显然是比较麻烦的,所以这里会试着使用freecad(这个安装倒是简单sudo apt install freecad就行)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐