[数据处理] 物理海洋学软件|Fluid2d 流体动力学软件免费获取

[复制链接]
Fluid2d是通用的Python-Fortran CFD代码包,它包含了大量的二维流体方程。该软件对于学生学习流体力学或地球物理流体动力学很有帮助,也可以是授课老师的教学实践工具。其思想是在计算流时可视化动态流,且参数变化的影响可以立即看到。二维流体的关键量是涡度,如果你的涡度动力学很弱,这个代码是为你准备的。你应该迅速成为专家一样的专家。由于动画的强大功能,用户可以了解基本流体性质,进一步超越教科书而触及学术研究的问题是很容易的。

有几个功能特别好:

•代码可处理许多不同的方程组:transport, Euler, quasi-geostrophic, Boussinesq, thermal wind equations。 •代码处理一个允许具有复杂几何形状的掩模系统(具有任意形状的封闭域)  •代码往往具有非常低的dissipation水平  •允许研究边界层问题的no-slip条件  •代码是并行的,如果需要高分辨率,可以在集群上运行。

下载和安装

软件主页:

游客,如果您要查看本帖隐藏内容请回复

最新版下载地址:

游客,如果您要查看本帖隐藏内容请回复

安装步骤:

作者提供了一个快速编译和安装脚本install.sh:

! w; i4 V8 J; C# z; S# [$ U+ O

[Shell] 纯文本查看 复制代码
#!/bin/bash



pydir=$HOME/.fluid2d

default=core/defaults.json

srcdir=`pwd`

myexpdir=$srcdir/myexp



echo "--------------------------------------------------------------------------------"

echo ""

echo " Installing Fluid2d"

echo ""

echo "It is recommended to create a virtual environnement. "

echo "If you are using anaconda then you may create the 'pyrsw' environment with"

echo ""

echo "> conda env create -f environment.yml"

echo ""

echo "then whenever you want to use Fluid2d, switch to this environement with"

echo ""

echo "> conda activate fluid2d"

echo ""

echo "Are you ok with you environment? (y/n)"

if [ $ok = "n" ]; then

   exit 42

fi



if [ ! -d "$pydir" ]; then

    echo "  Create $pydir"

    mkdir $pydir

fi

if [ ! -f "$pydir/$default" ]; then

    echo "  Copy $default in $pydir"

    cp $default $pydir/

fi

if [ ! -d "$myexpdir" ]; then

    echo "  Create $myexpdir"

    mkdir $myexpdir

fi

echo "  Copy reference experiments in $myexpdir"

cp -pR $srcdir/experiments/* $myexpdir



# for bash users

cat > $pydir/activate.sh << EOF

export PYTHONPATH=`pwd`/core

echo Python now knows that Fluid2d is in `pwd`

EOF



# for csh, tcsh users

cat > $pydir/activate.csh << EOF

setenv PYTHONPATH `pwd`/core

echo Python now knows that Fluid2d is in `pwd`

EOF



# for fish users

cat > $pydir/activate.fish << EOF

set -gx PYTHONPATH `(pwd)`/core

echo Python now knows that Fluid2d is in `(pwd)`

EOF



# compile the modules with module

echo "--------------------------------------------------------------------------------"

echo ""

echo " Compile modules with f2py"

echo ""

{

    # try

    make



} || {

    #catch

    echo "Unable to compile"

    echo "Are you sure f2py is installed?"

    exit

}



# copy the experiment into



echo ""

echo "  Before starting, please read this note carefully"

echo ""

echo "  As it configured, Fluid2d will store the results in"

echo ""

echo "      *** $HOME/data/fluid2d ***"

echo ""

echo "  If you don't run the code from your laptop then it is likely that"

echo "  you are not allowed to store large binary files on $HOME/data"

echo "  because this is your home."

echo ""

echo "  In this case, edit $HOME/.fluid2d/defaults.json"

echo "  and set 'datadir' default value (in the output section) to a"

echo "  place where you are authorized to store large binary files."

echo "  In the jargon, this place is usually a 'work' directory."

echo ""

echo "  If you are unsure where to store your results check that"

echo "  with your system administrator."

echo ""

echo "  Once you know where to store the results, then you're good to go"

echo ""

echo "  Each time you open a new terminal you need to"

echo "     source ~/.fluid2d/activate.sh  if you're under bash"

echo "     source ~/.fluid2d/activate.csh  if you're under csh/tcsh"

echo "     source ~/.fluid2d/activate.fish  if you're under fish"

echo ""

echo "  To run your first experiment"

echo "      cd $myexpdir/Vortex"

echo "      python3 vortex.py"

echo ""

echo "  Write your new experiments in $myexpdir"

echo "  or wherever you want, but not in $srcdir/experiments !"

echo ""

( ?( |0 C% [' t# Q

5 `2 s/ q. \% s" r* i
测试

运行之前需要在主目录下新建文件夹:

( ^+ b# l: D9 t5 Y7 }" N8 ?, h

[Shell] 纯文本查看 复制代码
mkdir data
cd data 
mkdir fluid2d


* R. X; m+ f) F! e- [

执行例子:

6 Z1 x' |& E- [- _( H9 B; M


8 v6 L" Z- F* p  r8 v& F( @

[Shell] 纯文本查看 复制代码
cd myexp/ShearInstab

python3 shear_instability.py


% N* ~+ N  s' q/ s; e


- B  z' \7 M& p0 f6 H/ }* f

结果输出:

c5483f28b9526832862830255126b2e4.gif


% N& i- C7 e+ n
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
冯建
活跃在2022-11-8
快速回复 返回顶部 返回列表