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

目录

软件介绍

基本依赖

其它可选依赖

一、源码下载

二、解压缩

三、编译安装

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: 2modules:  systemversion:  v8p4#options: static api#f2py_name: f2py3pyd_fcompiler: gnu95#sfx_zip:    .zipsfx_lib:    .asfx_obj:    .osfx_mod:    .modsfx_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.hqwc.cn/news/697409.html

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

相关文章

GIT基础01 基础命令与分支

前言 我们知道git是开发中比较常见的版本控制工具 我们可以先提出一个场景: 老板让你去修改方案 第一次修改 打回 第二次修改 打回 第n次修改 老板让你使用第一次的版本 阁下如何应对??? 我对每个版本进行编号?? 是一种方案 但是这里也是有缺陷的 比如说在很多版本中找…

通往糊涂之路 The road to serfdom

最近被推送了一本书&#xff0c;哈耶克的............ 试一试&#xff0c;看看能不能看懂&#xff0c;也许是通往糊涂之路。

品鉴中的品鉴笔记:如何记录和分享自己的品鉴心得

品鉴云仓酒庄雷盛红酒的过程&#xff0c;不仅是品尝美酒&#xff0c;更是一次与葡萄酒深度对话的旅程。为了更好地记录和分享自己的品鉴心得&#xff0c;养成写品鉴笔记的习惯是十分必要的。 首先&#xff0c;选择一个适合的记录工具。可以是传统的笔记本&#xff0c;也可以是…

【Linux线程(一)】线程初理解

前言&#xff1a; &#xff08;一&#xff09;线程的概念 &#xff08;二&#xff09;线程的理解 &#xff08;三&#xff09;示例 &#xff08;四&#xff09;线程优缺点 线程的优点 线程的缺点 &#xff08;五&#xff09;线程和进程的切换 1.线程的切换 2.进程的切换…

【eclipse】如何在IDE里创建一个Java Web项目?

如何在eclipse中创建一个动态Web项目并成功运行&#xff1f; 一、 最终效果 懒得写那么多了…我也不知道该怎么写了&#xff0c;有点乱&#xff0c;有问题可以在评论里留言&#xff0c;我看到会解决的&#xff0c;在这个过程中也踩到了一些坑&#xff0c;但好在有CSDN帮助解决…

自然语言转SQL(NL2SQL、Text2SQL)

使用 FastAPI 框架和 LangChain 库构建的简单 Web 服务&#xff0c;其目的是将自然语言处理&#xff08;NLP&#xff09;应用于 SQL 查询生成。以下是代码中使用的技术架构和业务流程的详细说明&#xff1a; 技术架构 FastAPI&#xff1a;一个现代、快速&#xff08;高性能&am…

【HarmonyOS】综合应用-《校园通》

概念 本文结合之前的笔记文章知识点&#xff0c;做一个综合性的小应用。 创建一个ArkTS语言的鸿蒙项目&#xff0c;搭建首页面 其界面代码如下&#xff0c;该界面使用了垂直布局&#xff0c;相对布局&#xff0c;轮播布局&#xff0c;以及图片&#xff0c;文本等组件的综合运…

Shiro核心深度解析文档

1. Shiro的介绍 它是一个简单易用的java安全框架,可以运行在非Web环境 1.主要提供的功能 身份认证 大多时称为登录,这是证明用户身份的行为 授权管理 访问控制的过程,即决定"谁"可以做"什么" 会话管理 管理特定于用户的会话,在非Web环境也是这样 密码…

LeetCode1207独一无二的出现次数

题目描述 给你一个整数数组 arr&#xff0c;请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的&#xff0c;就返回 true&#xff1b;否则返回 false。 解析 正常的解法肯定是对每个元素使用一个hashmap&#xff0c;存元素及出现次数&#xff0c;然后通…

上云后,如何保障数据安全?

云计算可以在线保存大量数据&#xff0c;并可以在任何时间、任何设备上使用。灵活性、可扩展行以及性价比等诸多buff加持&#xff0c;使许多企业用它来管理庞大的数据。 云计算安全 云计算通过为数据处理、存储和访问提供方便和灵活的解决方案&#xff0c;彻底改变了组织的运…

LeetCode—设计循环队列(两种方法)

1.题目 2.思路一&#xff08;数组&#xff09; 通过数组进行模拟&#xff0c;通过操作数组的索引构建一个虚拟的首尾相连的环。再循环队列结构中&#xff0c;设置一个队首head和队尾tail&#xff0c;数组的大小固定为k。 初步分析&#xff1a;存在缺陷 改善假溢出问题&#…

机器学习之sklearn基础教程:新手入门指南

引言 在机器学习领域&#xff0c;sklearn&#xff08;Scikit-learn&#xff09;是一个广受欢迎的开源库&#xff0c;它为各种常见的机器学习算法提供了高效的实现。对于初学者来说&#xff0c;sklearn 提供了一个简单且易于上手的工具&#xff0c;可以用来实现分类、回归、聚类…