物理场仿真教程(一)——Ubuntu下Salome_meca 软件安装

一、什么是Salome_meca ?

Salome_meca 是一个开源的有限元分析软件套件,主要用于模拟和分析复杂的力学问题。它是 Salome 平台的一部分,Salome 是一个通用的集成化软件环境,用于建模、预处理、模拟和后处理各种复杂的工程和科学问题。

Salome_meca 主要针对结构力学领域,使用强大的有限元分析技术来模拟和分析诸如静力学、动力学、热传导、流体结构相互作用等问题。它提供了用户友好的图形界面和一系列功能强大的工具,使用户能够创建几何模型、定义物理和边界条件、进行离散化网格划分、进行数值计算并获得结果可视化等。

Salome_meca 是开源软件,这意味着用户可以免费获取和使用它,并且可以通过对其源代码进行修改和定制来满足特定的需求。它广泛应用于航空航天、汽车工程、能源行业、建筑工程和其他领域的设计和分析中。

二、配置环境

在开始安装之前,要搞清楚一个概念:Ubuntu下的Salome_meca是运行在容器中的,所以我们需要先安装容器运行环境Singularity,而Singularity又是用go语言写的,所以我们要先安装golang。说起来有些复杂,其实安装起来还是比较简单的。

(一)安装Go

首先访问网址Golang中国官网All releases - The Go Programming LanguageGolang中国官网

找到合适的版本进行下载,目前最新的版本是1.21.3,在Ubuntu系统中下载go1.21.3.linux-amd64.tar.gz即可。

下载完成后,在打开下载文件所在位置,打开终端,先把老版本的go删除掉。

sudo rm -rf /usr/local/go 

注意切换管理员权限。

然后解压golang压缩包。

sudo tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gz

接着添加系统环境变量

export PATH=$PATH:/usr/local/go/bin

最后刷新配置文件

source $HOME/.profile

如此一来,golang就安装成功了。

通过以下代码可以验证是否安装成功。

go version

Singularity需要以管理员权限安装,所以go需要具备sudo权限。

sudo gedit /etc/sudoers

文件中找到secure_path,添加:

Defaults    secure_path = /usr/local/go/bin/:其他原有路径
(二)安装Singularity

首先要安装一些依赖选项

sudo apt-get update
# Install debian packages for dependencies
sudo apt-get install -y \autoconf \automake \cryptsetup \git \libfuse-dev \libglib2.0-dev \libseccomp-dev \libtool \pkg-config \runc \squashfs-tools \squashfs-tools-ng \uidmap \wget \zlib1g-dev

接着下载Singularity。如果要使用GPU,必须使用源码编译,否则会出现很多莫名其妙的问题。

在GitHub上下载源码。https://github.com/sylabs/singularity/releases/download/v4.0.1/singularity-ce-4.0.1.tar.gz

输入以下代码

$ mkdir -p $GOPATH/src/github.com/sylabs
$ cd $GOPATH/src/github.com/sylabs

把压缩包解压到sylabs文件下

$ cd $GOPATH/src/github.com/sylabs/singularity-ce-4.0.1
$ sudo ./mconfig
$ sudo make -C builddir
$ sudo make -C builddir install

至此Salome的环境就配置成功了。

三、安装Salome_meca

打开以下网址

Salome-Meca - Code_Aster

下载以下文件注意要右键点击该文件,选择“另存为”。

下载完成后运行下列代码

sudo singularity run --app install salome_meca-lgpl-2022.1.0-1-20221225-scibian-9.sif

至此Salome就安装成功了。通过下列代码运行程序。

sudo ./salome_meca-lgpl-2022.1.0-1-20221225-scibian-9

有可能会运行失败,因为安装的是服务器,但是Salome找不到对应的协议,无法在本地启动。运行以下代码。

xhost local:singularity
sudo ./salome_meca-lgpl-2022.1.0-1-20221225-scibian-9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/163679.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏开发中的“御用中介“

点击上方亿元程序员关注和★星标 引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。 游戏开发中的"御用…

即插即用篇 | YOLOv8 引入反向残差注意力模块 iRMB | 《ICCV 2023 最新论文》

论文地址:https://arxiv.org/abs/2301.01146 代码地址:https://github.com/zhangzjn/EMO 本论文着重于开发现代、高效、轻量级的模型,用于进行密集预测,同时在参数、FLOPs和性能之间进行权衡。倒置残差块(IRB)作为轻量级CNN的基础设施,但在基于注意力的研究中尚未找到对…

阿里云安全恶意程序检测(速通三)

阿里云安全恶意程序检测 特征工程进阶与方案优化pivot特征构建pivot特征pivot特征构建时间pivot特征构建细节特点 业务理解和结果分析结合模型理解业务多分类问题预测结果分析 特征工程进阶基于LightGBM模型验证模型结果分析模型测试 优化技巧与解决方案升级内存管理控制加速数…

学习c++的第十三天

目录 文件和流 打开文件 关闭文件 写入文件 读取文件 读取 & 写入实例 文件位置指针 异常处理 扩展知识 抛出异常 标准的异常 定义新的异常 文件和流 到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标…

【PyQt学习篇 · ⑪】:QPushButton和QCommandLinkButton的使用

文章目录 构造函数菜单设置扁平化默认处理右键菜单QCommandLinkButton的使用 构造函数 QPushButton的构造函数如下: """QPushButton(parent: Optional[QWidget] None)QPushButton(text: Optional[str], parent: Optional[QWidget] None)QPushButt…

Dart(一):Dart入门

Dart入门 Dart安装创建项目安装依赖(以http为例)依赖库查询地址添加依赖编写运行示例 dart常用命令引用核心库、自定义库、第三方库数据类型Numbers (int, double)Strings (String)Booleans (bool)Lists (List)Maps (Map)Sets (Set)Null (null)Records (…

什么是CCS Concepts

在撰写论文时,看到了CCS Concepts,注意这是对自己论文的分类,不能随便填写。 在ACM的网页"http://dl.acm.org/ccs/ccs.cfm"中选择自己论文的分类: 然后点击左侧的“Assign This CCS Concept”,再选择相关性…

Qt 4.8.6 的下载与安装

Qt 4.8.6 的下载与安装 Qt 4.8.6 的下载与安装下载并解压 MinGW 4.8.2Qt4.8.6 库的安装Qt Creator 3.3.0 的安装配置 Qt Creator测试 官方博客:https://www.yafeilinux.com/ Qt开源社区:https://www.qter.org/ Qt 4.8.6 的下载与安装 学习《Qt Creato…

js 高效生成连续递增的小数数组

简介 JavaScript 按照指定间隔生成连续递增的数组。 1. 循环生成 function generateIncrementalArray(start, end, step) {const result [];for (let i start; i < end; i step) {result.push(parseFloat(i.toFixed(1))); // 使用 toFixed() 方法限定小数位数}return r…

Rust编程基础核心之所有权(下)

1.变量与数据交互方式之二: 克隆 在上一节中, 我们讨论了变量与数据交互的第一种方式: 移动, 本节将介绍第二种方式:克隆。 如果我们 确实 需要深度复制 String 中堆上的数据&#xff0c;而不仅仅是栈上的数据&#xff0c;可以使用一个叫做 clone 的通用函数。 看下面的代码…

1.用递归求一个正整数的逆序数

#include<stdio.h>void f(int n){if(0!n){ //n是0的时候&#xff0c;退出循环 printf("%d ",n%10);f(n/10);} } int main(){f(12345);return 0; } /*void(12345) 12345不等于0 12345%105 输出 5 12345/101234void(1234) 1234不等于0 1234%104 输出 4 1…

DDD领域模式的模块层级及其依赖关系

DDD领域模型设计是一种常用的软件设计模式,它强调将业务逻辑和数据模型放在最核心的位置,以便更好地满足业务需求。在DDD领域模型设计中,应用程序被分为四个层次:用户界面层、应用服务层、领域模型层和基础设施层。 层次 用户界面层(Presentation Layer) 作为用户和应…