Linux下Telemac-Mascaret源码编译安装及使用

news2024/11/28 13:54:43

目录

软件介绍

基本依赖

其它可选依赖

一、源码下载

二、解压缩

三、编译安装

3.1 修改环境变量设置文件

3.2 修改配置文件

3.3 编译安装

四、算例运行


软件介绍

        TELEMAC-MASCARET是法国电力集团(EDF)的法国国立水利与环境实验室开发的一款研究水动力学和水文学领域的高性能数值仿真开源软件。基于有限元法,使用不规则三角网格,让复杂的海岸线和河口的描绘更为精确。该软件可以构建1D、2D和3D水动力学模型以解决波浪传播、波浪振动特性、水质污染、泥沙输运和海床形态变化等问题,拥有丰富的用户技术支持和广泛的工业应用及验证。

基本依赖

1、Fortran编译器(gfortran≥4.6.3)

2、python (版本>3.7)

3、Numpy (python库,版本>1.15)

其它可选依赖

1、MPI(可以是MPICH、OpenMPI)

2、Metis(版本 5.1.0)  

3、SCOTCH(不可用来代替metis)

4、SciPy、Matplotlib(python库)

5、HDF5或MED

6、MUMPS(TELEMAC软件中只有ARTEMIS模块用到该求解器,可选择性安装)

7、AED2(将激活 WAQTEL 模块中的更多进程)

8、GOTM(安装该模块可以在 TELEMAC-3D 软件中使用一般海洋湍流模型)

        建议安装1和2。

一、源码下载

方式1:直接通过下面的链接进行下载,版本为v8p4r0:

https://gitlab.pam-retd.fr/otm/telemac-mascaret/-/archive/v8p4r0/telemac-mascaret-v8p4r0.tar.gzicon-default.png?t=N7T8https://gitlab.pam-retd.fr/otm/telemac-mascaret/-/archive/v8p4r0/telemac-mascaret-v8p4r0.tar.gz方式2:通过Git下载压缩文件。

$ git clone https://gitlab.pam-retd.fr/otm/telemac-mascaret.git my_opentelemac

方式3:通过访问软件在Gitlab的网站下载。

 

二、解压缩

unzip telemac-mascaret-main.zip

三、编译安装

        这里主要介绍软件的并行版本安装。 

3.1 修改环境变量设置文件

        ① 进入../telemac-mascaret-main/configs文件夹。

cd telemac-mascaret-main/configs

        ② 复制并重命名pysource.template.sh文件为pysource.sh。

cp pysource.template.sh pysource.sh

        ③ 打开pysource.sh文件并修改。

        修改后的文件如下:

# This file is a Linux environment file template
# Sourcing it will position all the environment variables required
# to compile and run TELEMAC
# You only need to replace <your-systel-file> and <your-config>
# to reflect your own configuration
#
# Path to TELEMAC root directory
export HOMETEL=/mnt/e/telemac-mascaret-main
# Configuration file
export SYSTELCFG=$HOMETEL/configs/systel.cfg
# Name of the configuration to use
export USETELCFG=gfortranHPC
# Path to this file
export SOURCEFILE=$HOMETEL/configs/pysource.sh
# Add TELEMAC Python scripts to PATH
export PATH=$HOMETEL/scripts/python3:.:$PATH
# Add TELEMAC libraries to LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$HOMETEL/builds/$USETELCFG/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$HOMETEL/builds/$USETELCFG/wrap_api/lib:$LD_LIBRARY_PATH
# Add TELEMAC Python scripts and extension modules to PYTHONPATH
export PYTHONPATH=$HOMETEL/scripts/python3:$PYTHONPATH
export PYTHONPATH=$HOMETEL/builds/$USETELCFG/wrap_api/lib:$PYTHONPATH
# Force Python to flush its output
export PYTHONUNBUFFERED='true'
# Add Metis
#export METISHOME=/mnt/e/Metis5.0

        其中,最后一行的METISHOME根据自己的情况决定是否添加。METISHOME变量是metis的安装路径。

        ④ 其他可选依赖项环境变量配置。

        如安装HDF5/MED,需要在pysource.sh文件中继续添加(其中HDF5HOME和MEDHOME为HDF5和MED的自定义安装路径):

### HDF5 -------------------------------------------------------------
export HDF5HOME=../hdf5-1.10.7
export LD_LIBRARY_PATH=$HDF5HOME/lib:$LD_LIBRARY_PATH
### MED -------------------------------------------------------------
export MEDHOME=../med-4.1.0
export LD_LIBRARY_PATH=$MEDHOME/lib:$LD_LIBRARY_PATH
export PATH=$MEDHOME/bin:$PATH

        如安装SCOTCH, 需要在pysource.sh文件中继续添加(其中SCOTCHHOME为SCOTCH的自定义安装路径):

### SCOTCH -------------------------------------------------------------
export SCOTCHHOME=../scotch-6.0.0
export LD_LIBRARY_PATH=$SCOTCHHOME/lib:$LD_LIBRARY_PATH

        如安装AED2, 需要在pysource.sh文件中继续添加(其中AED2HOME为AED2的自定义安装路径):

### AED2 --------------------------------------------------------------
export AED2HOME=../aed2-1.2.0
export LD_LIBRARY_PATH=$AED2HOME/lib:$LD_LIBRARY_PATH

3.2 修改配置文件

        ① 进入../telemac-mascaret-main/configs文件夹。

cd telemac-mascaret-main/configs

        ② 新建systel.cfg文件。

vi systel.cfg

        ③ systel.cfg添加相关内容,如下:

 #_____                              _______________________________
 # ____/ TELEMAC Project Definitions /______________________________/
 #
 [Configurations]
 configs: gfortran gfortranHPC
 # _____                        ____________________________________
 # ____/ General /___________________________________/
 # Global declarations that are set by default for all the configurations
 [general]
 language: 2
 modules:  system
 version:  v8p4
 #
 options: static api
 #
 f2py_name: f2py3
 pyd_fcompiler: gnu95
 #
 sfx_zip:    .zip
 sfx_lib:    .a
 sfx_obj:    .o
 sfx_mod:    .mod
 sfx_exe:
 #
 #
 val_root:   <root>/examples
 #
 val_rank:   all
 #
 mods_all:   -I <config>
 #
 incs_all:
 #
 libs_all:
 #
 cmd_obj_c: gcc -fPIC -c <srcName> -o <objName>
 #
 [gfortran]
 brief: GFortran compiler
 #
 cmd_obj:    gfortran -c -cpp -fPIC -O2 -fconvert=big-endian -frecord-marker=4 -DHAVE_VTK <mods> <incs> <f95name>
 cmd_lib:    ar cru <libname> <objs>
 cmd_exe:    gfortran -fPIC -fconvert=big-endian -frecord-marker=4 -lpthread -lm -o <exename> <objs> <libs>
 #
 # Gfortran HPC
 #
 [gfortranHPC]
 brief: GFortran compiler using Open MPI
 #
 mpi_cmdexec: mpirun -machinefile MPI_HOSTFILE -np <ncsize> <exename>
 #
 cmd_obj:    mpif90 -c -cpp -fPIC -O2 -fconvert=big-endian -frecord-marker=4 -DHAVE_MPI -DHAVE_VTK <mods> <incs> <f95name>
 cmd_lib:    ar cru <libname> <objs>
 cmd_exe:    mpif90 -fPIC -fconvert=big-endian -frecord-marker=4 -lpthread -lm -o <exename> <objs> <libs>
 #
 libs_all: -L$METISHOME/lib -lmetis

          ④ 其他可选依赖项配置:

        如安装HDF5/MED,需添加:

incs_all: -I$MEDHOME/include
cmd_obj: -DHAVE_MED
libs_all: -L$HDF5HOME/lib -lhdf5 -L$MEDHOME/lib -lmed -lstdc++ -lz

        如安装SCOTCH,需添加:

incs_all: -I$SCOTCHHOME/include
cmd_obj: -DHAVE_SCOTCH
libs_all: -L$SCOTCHHOME/lib -lsctoch -lsctocherr

        如安装AED2,需添加:

incs_all add -I$AED2HOME/include -I$AED2HOME/mod
cmd_obj add -DHAVE_AED2
libs_all add -L$AED2HOME/lib -laed2

3.3 编译安装

        ① 设置环境变量。利用source对3.1节中修改的pysource.sh进行设置。

source pysource.sh

        ② 配置文件生成。

config.py

        配置完成:

        ③ 编译安装

compile_telemac.py

        安装完成:

         安装文件夹:

        其它安装细节及安装选项,可参考官网指南:
installation_on_linux · open TELEMAC-MASCARETicon-default.png?t=N7T8http://wiki.opentelemac.org/doku.php?id=installation_on_linux#optional_proxy

四、算例运行

        利用软件自带算例进行测试(算例路径:../examples/telemac2d/gouttedo):

telemac2d.py t2d_gouttedo.cas

        运行结果如下:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0509BBQ的Maven项目

0509BBQ的Maven项目包-CSDN博客 数据库字段 登录界面 点餐主页 登录完成进入点餐主页&#xff0c;显示已点餐的数据 点击点餐按钮&#xff0c;生成对应订单数据。 取消勾选点餐按钮&#xff0c;删除对应订单数据。 点击加减图片&#xff0c;实现对数量的加减 展示订单 ajax动态…

嵌入式学习67-C++(多线程,自定义信号合槽,串口通信)

知识零碎&#xff1a; GPS传感器获取到的 经纬度信息并不是真实的物理坐标&#xff0c;还需要转换 signals&#xff1a; …

Dread Hunger 海上狼人杀服务器开服教程

1、购买后登录服务器&#xff0c;百度莱卡云 1.1、第一次购买服务器会安装游戏端&#xff0c;大约5分钟左右&#xff0c;如果长时间处于安装状态请联系客服 2、创建端口 点击网络创建第二个端口作为副端口&#xff08;副端口的作用是用于第二局游戏&#xff0c;因为游戏BUG&am…

Android 老年模式功能 放大字体

1 配置属性 <attr name"text_size_16" format"dimension"/><attr name"text_size_18" format"dimension"/><attr name"text_size_14" format"dimension"/><attr name"text_size_12&quo…

作为有伦敦金交易技巧的人,最后都怎么样了?

伦敦金投资者如果不懂技术分析&#xff0c;就好比航海家看不懂地图&#xff0c;钢琴家看不懂五线谱。掌握一些常用而有效的分析技巧&#xff0c;可以帮助伦敦金投资者更好地预测市场走势&#xff0c;做出更明智的投资决策...... 对于新手伦敦金投资者来说&#xff0c;学习如何识…

2024电商数据资料汇总

2024年跨境电商&#xff1a;连接全球市场的新纪元 随着全球数字化进程的不断推进&#xff0c;跨境电商已经成为了国际贸易的重要组成部分。2024年&#xff0c;跨境电商行业迎来了一系列挑战和机遇&#xff0c;塑造了全新的市场格局。 跨境电商市场规模的持续扩大 2024年&…

[猫头虎分享21天微信小程序基础入门教程]第7天:小程序的权限与API使用

第7天&#xff1a;小程序的权限与API使用 &#x1f510; 自我介绍 大家好&#xff0c;我是猫头虎&#xff0c;一名全栈软件工程师。今天我们将继续微信小程序的学习&#xff0c;重点了解如何使用微信小程序的API&#xff0c;以及如何管理和请求小程序的权限。通过这些知识&am…

五子棋对战(网页版)

目录 一、项目背景 用户模块 匹配模块 对战模块 二、核心技术 三、相关知识 WebSocket 原理 报文格式 代码 服务器代码 客户端代码 四、项目创建 4.1、实现用户模块 编写数据库代码 数据库设计 配置MyBatis 创建实体类 创建UserMapper 创建UserMapper接口 实现UserMapper.xml 前…

深度解析循环购模式:让消费更有价值

大家好&#xff0c;我是吴军&#xff0c;今天我非常高兴能和大家分享一个充满活力和创新的商业模式——循环购模式。可能大家都听过消费达到一定金额就有现金返还的活动&#xff0c;但这种返还通常都伴随着各种条件和限制。而循环购模式&#xff0c;它不仅仅是一个简单的返利机…

Excel 两层分类后的行转列

例题描述 Excel 文件中有下图所示的数据&#xff0c;同 Name 的物品可能有多种颜色。 现在想要把数据列出下图的形式&#xff0c;每种Type一行&#xff0c;其后依次列出每种Name及其Color。 实现方法 使用 Excel 插件 SPL XLL 在空白单元格写入公式&#xff1a; spl("…

模型 洋葱模型(组织文化方向)

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。层层深入&#xff0c;探索核心。 1 洋葱模型的应用 1.1 洋葱模型用于职业规划 有一个名叫李明的大学生&#xff0c;他最近感到迷茫和压力&#xff0c;因为他即将毕业并面临职业选择。李明决定寻求心…

光伏EPC管理软件都有哪些功能和作用?

光伏EPC管理软件是用于光伏工程项目管理的综合性工具&#xff0c;它涵盖了从项目策划、设计、采购、施工到运维的各个环节。 1、项目总览 管理所有项目计划&#xff0c;包括项目类型、项目容量等。 调整和优化项目计划&#xff0c;以应对不可预见的情况。 2、施工管理 制定…

JVM调优:JVM运行时数据区详解

一、前言 Java运行时数据区域划分&#xff0c;Java虚拟机在执行Java程序时&#xff0c;将其所管理的内存划分为不同的数据区域&#xff0c;每个区域都有特定的用途和创建销毁的时间。 其中&#xff0c;有些区域在虚拟机进程启动时就存在&#xff0c;而有些区域则是随着用户线程…

【数据结构】二叉排序树(查找+插入+删除+效率分析)完整代码+解析

3.1 二叉排序树 3.1.1 定义 二叉排序树的定义 又称二叉查找树&#xff08;BST&#xff0c;Binary Search Tree&#xff09; 二叉排序树是具有以下性质的二叉树&#xff1a; 左子树结点值<根结点值<右子树结点值 进行中序遍历&#xff0c;可以得到一个递增的有序序列。 3…

代码随想录算法训练营Day 38| 动态规划part01 | 理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

代码随想录算法训练营Day 38| 动态规划part01 | 理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯 文章目录 代码随想录算法训练营Day 38| 动态规划part01 | 理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯理论基础一、常规题目二、解题步骤…

JWT token demo

1、pom依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.9.RELEASE</version> </parent><dependencies><dependency><groupId>…

【JavaWeb】Day74.Spring——AOP进阶(连接点)

连接点 连接点可以简单理解为可以被AOP控制的方法。我们目标对象当中所有的方法不是都是可以被AOP控制的方法。而在SpringAOP当中&#xff0c;连接点又特指方法的执行。 在Spring中用JoinPoint抽象了连接点&#xff0c;用它可以获得方法执行时的相关信息&#xff0c;如目标类名…

【树】简要理解树的概念

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 目录 1、树的概念2、树的相关概念3、结语 1、树的概念 树是一种非线性的数据结构&#xff0c;它…

为什么大家都说it行业要死了?

年后开始找工作开始还不敢投简历怕准备不充分。怕错过了心仪的公司。 花了2周自己死磕了一下自我介绍&#xff0c;和工作经历。然后信心满满就开始投了&#xff0c;结果发现一堆人打招呼一阵欣喜的。可是一查全是外包公司。于是开始了自我怀疑。难道是我能力不行&#xff1f;难…

SQL Server服务启动缓慢或崩溃问题分析

关键词&#xff1a;SQL Server故障解决、服务启动缓慢、服务崩溃、日志文件清理 阅读建议&#xff1a;如果您遇到的是SQL Server服务启动缓慢或无法响应的问题&#xff0c;可以重点阅读文章的第一部分&#xff1b;如果是服务崩溃或重启的问题&#xff0c;可以重点关注第二部分。…