基于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