基于chatgpt4生成修改OpenFOAM CFD参数的脚本

基于 保密需求部分程序数据脱敏处理 改进版,可以自动搜索对应参数进行修改

代码主体由chatgpt-4 cursor软件生成,本人稍作修改。

# 如果没有输入参数,则给dt_cfd,dt_dem设置默认值
if [ -n "$1" ]; then
  dt_cfd=$1
else
  dt_cfd=4e-5
fi

if [ -n "$2" ]; then
  dt_dem=$2
else
  dt_dem=2e-6
fi
# dt_cfd=4e-5
# dt_dem=2e-6
t_end=10.01


# prompt:  显示para.ini文件以dt开头的行对应的内容
grep ^dt para.ini

# prompt: 修改para.ini文件以dt开头的行对应的内容
sed -i /^dt_dem/ s/.*/dt = $dt_dem/ para.ini
sed -i /^dt_cfd/ s/.*/dt_cfd = $dt_cfd/ para.ini

grep ^dt para.ini
# output:
# dt_dem = 2e-6
# dt_cfd = 4e-5



# 修改para.ini文件这几行内容
# step_begin = 0
# write_fre = 10000
# step_end = 10009999
# screen_fre = 1000

# grep ^step para.ini
grep ^write para.ini
grep ^screen para.ini
# output:
# step_begin = 1
# step_end = 20009999
# write_fre = 5000
# screen_fre = 500

# 用awk计算0.01/dt_dem并赋值给write_fre
write_fre=$(awk BEGIN{printf "%.0f", 0.01/"$dt_dem"})
sed -i "/^write_fre/ s/.*/write_fre = $write_fre/" para.ini
grep ^write_fre para.ini

# 用awk计算t_end/dt-1并赋值给step_end
step_end=$(awk BEGIN{printf "%.0f", ($t_end/$dt_dem)-1})
sed -i "/^step_end/ s/.*/step_end = $step_end/" para.ini
grep ^step_end para.ini


# 下面修改controlDict文
# 修改controlDict文件的这两行,并显示修改前后内容
# endTime         10.01;
# deltaT          2e-5;
sed -n /^endTime/p controlDict
sed -n /^deltaT/p controlDict

sed -i "/^endTime/ s/.*/endTime         $t_end;/" controlDict
sed -i "/^deltaT/ s/.*/deltaT          $dt_cfd;/" controlDict

sed -n /^endTime/p controlDict
sed -n /^deltaT/p controlDict
经验分享 程序员 微信小程序 职场和发展