MLIP-3主动机器学习方法探索

INPUT文件

此文件中包含15个文件,逐个分析他们的功能

Cu_1620.data:LAMMPS的初始文件需要搭配in文件一起使用
README.md:解释文件,解释各个文件的功能以及操作流程
VASP/:文件夹
auto.sh:执行最主要的文件
coord.py
fill_with_vacuum.py
in.my:LAMMPS的初始文件需要搭配data文件一起使用
init.almtp
md_al_mtp.sh
pot_save/
pre_train.sh
run_lammps.sh
select.sh
train.sh
train_one.cfg

VASP/文件夹(里面的文件就是满足完成一个POSCAR的AIMD模拟)

 INCAR
 KPOINTS
 POTCAR
 README.md
 run_vasp.sh:提交任务的脚本文件
 sub.sh:提交脚本任务的脚本

auto.sh

#!/bin/bash  # 指定该脚本使用的解释器为 Bash。

cp init.almtp curr.almtp 
cp train_one.cfg train.cfg
cp Cu_1620.data dump.trj

is_training_finished=0

sbatch -J pre_train -o pre_train.out -e pre_train.err  -N 1 --exclusive -p high,MMM ./pre_train.sh --time=3:00:00 
#用于在Slurm作业调度系统中提交一个作业,并运行名为pre_train.sh的脚本。
#这个脚本的功能就是进行一次主动学习势能训练,用上面三个文件

while [ $is_training_finished -ne 1 ]
do
    sleep 5
    if [ -f is_training_finished.txt ]; then
        is_training_finished=1
        echo $is_training_finished
    else
        is_training_finished=0
        echo $is_training_finished
    fi
done
sleep 5
rm -f *.txt

#判断上面的训练是否完成,并重置


for p in $(seq 1621 3000)
do
        echo "# LAMMPS data file written by OVITO Basic 3.7.11" > Cu_${p}.data
        echo "${p} atoms" >> Cu_${p}.data
        prev=$((${p}-1))
        cat Cu_${prev}.data | tail -n +3 | head -n 11 >> Cu_${p}.data
        cat dump.trj | tail -n ${prev} >> Cu_${p}.data
        python coord.py $p
#更新原子坐标信息
        echo "active learning with ${p} atoms is starting"
        ./md_al_mtp.sh
#执行一系列操作
        cp dump.trj pot_save/
        cp train.cfg pot_save/
        cd pot_save
        mv dump.trj dump_${p}.trj
        mv train.cfg train_${p}.cfg
        cp curr.almtp curr_${p}.almtp
        cd ../
        cp pot_save/curr.almtp .
done

md_al_mtp.sh

#!/bin/bash
          
source ~/.bashrc
n_cores=$1
rm -f preselected.cfg.*
rm -f preselected.cfg
rm -f selected.cfg
rm -f nbh.cfg
rm -f *.txt
while [ 1 -gt 0 ]
do
cp curr.almtp pot_save/
touch preselected.cfg
is_lammps_finished=0
sbatch -J lammps -o lammps.out -e lammps.err  -N 1 -n 16 -p high,MMM ./run_lammps.sh
while [ $is_lammps_finished -ne 1 ]
do
    sleep 5
    if [ -f is_lammps_finished.txt ]; then
        is_lammps_finished=1
        echo $is_lammps_finished
    else
        is_lammps_finished=0
        echo $is_lammps_finished
    fi
done
sleep 5
cat preselected.cfg.* >> preselected.cfg
rm -f preselected.cfg.*
n_preselected=$(grep "BEGIN" preselected.cfg | wc -l)
is_selection_finished=0
if [ $n_preselected -gt 0 ]; then
    echo "selection"
    sbatch -J selection -o selection.out -e selection.err  -N 1 -n 1 -p bigmem ./select.sh
    while [ $is_selection_finished -ne 1 ]
    do
        sleep 5
        if [ -f is_selection_finished.txt ]; then
            is_selection_finished=1
            echo $is_selection_finished
        else
            is_selection_finished=0
            echo $is_selection_finished
        fi
    done
    sleep 5
    if test -f selected.cfg; then
        echo " selected.cfg exists"
    else
        echo "selected.cfg not exist"
        exit
    fi
    rm -f preselected.cfg
    ./mlp cut_extrapolative_nbh selected.cfg nbh.cfg --cutoff=8 
    ./mlp convert nbh.cfg POSCAR --output_format=poscar 
    rm -f selected.cfg
    n_poscar=$(grep "BEGIN" nbh.cfg | wc -l)
    n_poscar_prev=$((${n_poscar}-1))
    if [ $n_poscar -eq 1 ]; then
        mv POSCAR POSCAR0
    fi
    for p in $(seq 0 ${n_poscar_prev})
    do
        python fill_with_vacuum.py $p
    done
    for ((i=0; i<$n_poscar; i++))
    do
        cp POSCAR_output"$i" VASP/
        mkdir -p VASP/"$i"
        if [ $n_poscar -eq 1 ]; then
            mv VASP/POSCAR_output"$i" VASP/0/POSCAR
        elif [ $n_poscar -gt 1 ]; then
            mv VASP/POSCAR_output"$i" VASP/"$i"/POSCAR
        fi
        cp VASP/POTCAR VASP/"$i"/
        cp VASP/INCAR VASP/"$i"/
        cp VASP/KPOINTS VASP/"$i"/
        cp VASP/run_vasp.sh VASP/"$i"/
        cp VASP/sub.sh VASP/"$i"/
    done
    for ((i=0; i<$n_poscar; i++))
    do
        cd VASP/"$i"
        sbatch ./run_vasp.sh
	cd ../../
    done
    is_vasp_finished=0
    while [ $is_vasp_finished -ne 1 ]
    do
        sleep 5
        n_vasp_finished=$(grep -rH "1" VASP/*/is_vasp_finished.txt | wc -l)
        if [ $n_poscar -eq $n_vasp_finished ]; then
            is_vasp_finished=1
            echo $is_vasp_finished
        else
            is_vasp_finished=0
            echo $is_vasp_finished
        fi
    done
    sleep 5
    for ((i=0; i<$n_poscar; i++))
    do
        ./mlp convert VASP/"$i"/OUTCAR VASP/"$i"/calculated.cfg --input_format=outcar #--elements_order=29 --absolute_elements
	cat VASP/"$i"/calculated.cfg >> train.cfg
        rm -r VASP/"$i"/
    done
    is_training_finished=0
    sbatch -J train -o train.out -e train.err  -N 1 --exclusive -p high,MMM ./train.sh --time=3:00:00
    while [ $is_training_finished -ne 1 ]
    do
        sleep 5
        if [ -f is_training_finished.txt ]; then
            is_training_finished=1
            echo $is_training_finished
        else
            is_training_finished=0
            echo $is_training_finished
        fi
    done
    sleep 5
    rm -f nbh.cfg
    rm *.txt
    rm POSCAR*
    rm -f nbh_36.cfg    
elif [ $n_preselected -eq 0 ]; then
    exit
fi


done

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用香草看涨期权进行投机?

如何使用香草看涨期权进行投机&#xff1f; 香草看涨期权&#xff0c;通常也称为香草期权&#xff0c;是金融市场上的一种金融衍生品&#xff0c;由券商或金融机构推出。使用香草看涨期权进行投机&#xff0c;主要依赖于对市场走势的预测和对杠杆效应的运用。以下是一些关键步…

【前端】-【前端文件操作与文件上传】-【前端接受后端传输文件指南】

目录 前端文件操作与文件上传前端接受后端传输文件指南 前端文件操作与文件上传 一、前端文件上传有两种思路&#xff1a; 二进制blob传输&#xff1a;典型案例是formData传输&#xff0c;相当于用formData搭载二进制的blob传给后端base64传输&#xff1a;转为base64传输&…

力扣HOT100 - 35. 搜索插入位置

解题思路&#xff1a; 二分法模板 class Solution {public int searchInsert(int[] nums, int target) {int left 0;int right nums.length - 1;while (left < right) {int mid left ((right - left) >> 1);if (nums[mid] target)return mid;else if (nums[mid…

spring模块(六)spring监听器(1)ApplicationListener

一、介绍 1、简介 当某个事件触发的时候&#xff0c;就会执行的方法块。 当然&#xff0c;springboot很贴心地提供了一个 EventListener 注解来实现监听。 2、源码&#xff1a; package org.springframework.context;import java.util.EventListener; import java.util.fu…

深入解析智能指针:从实践到原理

&#x1f466;个人主页&#xff1a;晚风相伴 &#x1f440;如果觉得内容对你有所帮助的话&#xff0c;还请一键三连&#xff08;点赞、关注、收藏&#xff09;哦 如果内容有错或者不足的话&#xff0c;还望你能指出。 目录 智能指针的引入 内存泄漏 RAII 智能指针的使用及原…

安卓LayoutParams浅析

目录 前言一、使用 LayoutParams 设置宽高二、不设置 LayoutParams2.1 TextView 的 LayoutParams2.2 LinearLayout 的 LayoutParams 三、getLayoutParams 的使用四、setLayoutParams 的作用五、使用 setWidth/setHeight 设置宽高 前言 先来看一个简单的布局&#xff0c;先用 x…

百元挂耳式耳机哪款好?五款高品质一流机型不容错过

开放式耳机以其独特的不入耳设计&#xff0c;大大提升了佩戴的舒适度。相较于传统的入耳式耳机&#xff0c;它巧妙地避免了对耳朵的压迫&#xff0c;降低了中耳炎等潜在风险。不仅如此&#xff0c;开放式耳机还能让你保持对周边声音的灵敏度&#xff0c;无论是户外跑步还是骑行…

Day08-JavaWeb开发-MySQL(多表查询内外连接子查询事务索引)Mybatis入门

1. MySQL多表查询 1.1 概述 1.2 内连接 -- 内连接 -- A. 查询员工的姓名, 及所属的部门名称(隐式内连接实现) select tb_emp.name, tb_dept.name from tb_emp,tb_dept where tb_emp.dept_id tb_dept.id;-- 起别名 select * from tb_emp e, tb_dept d where e.dept_id d.id…

信息化飞速发展下,源代码防泄密方案该如何选择?常见四种有效方案分享

信息化时代发展迅速&#xff0c;数据防泄露一词也频繁的出现在我们身边。无论企业或政府单位&#xff0c;无纸化办公场景越来越多&#xff0c;数据泄露的时间也层出不穷。例如&#xff1a;世界最大职业中介网站Monster遭到黑客大规模攻击&#xff0c;黑客窃取在网站注册的数百万…

The Sandbox 案例|Web3 项目引领娱乐业的发展

Web3 如何通过 RZR 系列等项目开创娱乐新纪元。 我们已经看到技术和 Web3 如何颠覆金融和银行等行业&#xff0c;然而娱乐业在不断变化的环境中似乎发展滞后。传统的制片厂生态系统、高成本制作以及历史悠久的运作模式一直占据主导地位&#xff0c;而 Web3 项目的出现为创作者提…

CondaHTTPError: HTTP 404 NOT FOUND for url xxx

今天在创建新环境的时候给我报这个错 根据报错内容大概猜测&#xff0c;连接不到清华源&#xff1f; 然后我去清华源那边重新复制了一下配置 点这里跳转清华源 复制这一块东西 然后打开C盘->用户->找到.condarc文件打开 复制粘贴把里面的东西覆盖了就行 然后保存退出…

【excel】统计单元格内数字/字符串的数量

文章目录 一、问题二、步骤&#xff08;一&#xff09;将A1中的数字分解出来&#xff0c;在不同的单元格中显示&#xff08;二&#xff09;统计每个数字出现的个数&#xff08;三&#xff09;去重 三、尾巴 一、问题 单元格中有如下数值&#xff1a;12345234534545&#xff0c…

给excel中某列数值前后分别添加单引号

将这一列的数值&#xff0c;复制到 Sublime Text中&#xff0c;并CtrlA全选内容后&#xff0c;按CtrlH 选中工具栏左上角的 如果要给前面添加符号&#xff08;如单引号&#xff09;&#xff0c;则在Fina查找内容中&#xff0c;填入 ^ 如果要给后面添加符号&#xff08;如单引…

【操作系统】内存管理——地址空间连续内存分配与非连续内存分配

内存管理——地址空间&连续内存分配与非连续内存分配 一、地址空间1.1 计算机存储层次1.2 地址和地址空间1.3 虚拟存储的作用 二、内存分配2.1 静态内存分配2.2 动态内存分配 三、连续内存分配3.1 动态分区分配3.2 伙伴系统&#xff08;Buddy System&#xff09; 四、非连续…

5.1 Java全栈开发前端+后端(全栈工程师进阶之路)-服务端框架-MyBatis框架-相信我看这一篇足够

0.软件框架技术简介 软件框架&#xff08;software framework&#xff09;&#xff0c;通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范&#xff0c;也 指为了实现某个软件组件规范时&#xff0c;提供规范所要求之基础功能的软件产品。 框架的功能类似于基础设…

cufftPlanMany参数说明

背景 最近在看cufft这个库&#xff0c;传统的cufftPlan3d()这种plan接口逐渐被nvidia舍弃了&#xff0c;说是要用最新的cufftPlanMany&#xff0c;这个函数呢又依赖一个什么Advanced Data Layout(地址)&#xff0c;最终把这个api搞得乌烟瘴气很难理解&#xff0c;为了理解自己…

瓷器三维虚拟展示编辑平台为您量身定制高效实惠的展示方案

在竞争激烈的机械产品行业中&#xff0c;如何脱颖而出、展现产品魅力与企业实力?深圳vr公司华锐视点以其独特的三维动画设计制作服务&#xff0c;为您量身定制全方位的展示方案&#xff0c;让您的机械产品在市场中熠熠生辉。 全方位展示&#xff0c;细节尽收眼底 我们的三维展…

医学论文摘要翻译 中译英哪里比较专业

论文摘要是对论文内容不加注释和评论的简短陈述&#xff0c;需要扼要说明论文的目的、研究方法和最终结论。在发表学术论文时&#xff0c;很多重要刊物会要求作者将文章的摘要翻译成英文。那么&#xff0c;针对医学论文摘要翻译&#xff0c;中译英哪里比较专业&#xff1f; 专…

【论文速读】|针对模糊驱动生成的提示性模糊测试

本次分享论文&#xff1a;Prompt Fuzzing for Fuzz Driver Generation 基本信息 原文作者&#xff1a;Yunlong Lyu, Yuxuan Xie, Peng Chen, Hao Chen 作者单位&#xff1a;腾讯安全大数据实验室、加州大学戴维斯分校 关键词&#xff1a;软件测试, Fuzzing, 自动化Fuzz驱动…

Linux的基础IO:文件系统

目录 学前补充 磁盘的存储结构 OS如何对磁盘的存储进行逻辑抽象 细节内容 文件的增删改查 学前补充 问题&#xff1a;计算机只认二进制&#xff0c;即0、1&#xff0c;什么是0、1&#xff1f; 解释&#xff1a;0、1在物理层面可能有不同的表现&#xff0c;0、1是数字逻辑…
最新文章