周期性边界条件、近邻列表和原子间作用势

ops/2024/12/26 10:02:55/

文章目录

    • 1.周期性边界条件
      • 1.什么是周期性边界条件(PBC)
      • 2.周期性边界条件基本特点
      • 3.最小镜像约定
      • 4.Python实现
    • 2.势场的有限距离截断
      • 1.原子间相互作用力
      • 2.势场截断的理论基础
      • 3.势场截断方法
    • 3.近邻列表构筑与更新
      • 1.近邻算法:VerletList法
      • 2.近邻算法:区间排序法(CellList)
    • 4.温度与压强控制算法
      • 1.温度控制
      • 2.温度控制算法
      • 3.压强控制
    • 5.原子间作用势
      • 1.Lennard-Jones势
        • 1.吸引项的物理解释
        • 2.斥能项的物理解释
        • 3.约化单位
      • 2.其他二体势
        • 1.简谐势
        • 2.硬球模型
        • 3.软球模型
        • 4.Buckingham势
        • 5.Born-Mayer势
        • 6.Morse势
        • 7.库伦势
        • 8.Yukawa势
        • 9.Aziz势
        • 10.Tang-Toennies势
      • 3.二体势的局限
        • 1.对势的局限
        • 2.空位形成能的对势计算
        • 3.一维无穷长链的对势计算
      • 4.多体势与机器学习势
        • 1.EAM势 MEAM势
        • 2.分子力场
        • 3.反应力场
        • 4.机器学习势

1.周期性边界条件

1.什么是周期性边界条件(PBC)

  • 将小体积原胞平铺成无穷大的体相物质, A ( x ) = A ( x + n L ) A(x)=A(x+nL) A(x)=A(x+nL)
  • 消除表面效应,构造出一个准无穷大的体积来更精确地代表宏观系统

2.周期性边界条件基本特点

  • 平移对称性
  • 边界固定,原子可通过边界发生相互作用
  • 原子从模拟单元中跑出时,等效于从另一边界回来,体系原子数不变

3.最小镜像约定

  • 周期性边界条件导致模拟体系有无限多个镜像,某个粒子所受到的力,理论上是所有镜像中粒子的作用力
  • 最小镜像约定(Minimum Image Convention):当将势场截断与周期性边界条件结合使用时,通常要求每个原子经历的净相互作用只包括来自系统中的一个(原子/镜像)
  • L < r c u t L<r_{cut} L<rcut,可能出现自己和自己的相互作用
    L < 2 r c u t L<2r_{cut} L<2rcut,可能出现与另一个粒子相互作用计算两次的情形
    L > 2 r c u t L>2r_{cut} L>2rcut,满足最小镜像约定,只可能与另外一个粒子(或者它的镜像)作用一次
  • 分子动力学中,通常要求晶胞边长 L > 2 r c u t L>2r_{cut} L>2rcut

4.Python实现

  • Particle类:用于表示粒子,封装了粒子位置信息,并提供了获取和设置位置信息的接口

    class Particle:def __init__(self,position):self._position = np.array(position,dtype=float)@propertydef position(self):return self._position@position.setterdef position(self,value):self._position = np.array(value)
    
  • Box类:用于表示盒子,封装了盒子的上界、下界以及长度信息,并可通过字符串方法获取盒子的长度

    class Box:def __init__(self,lower,upper):self.lower = np.array(lower,dtype=float)self.upper = np.array(upper,dtype=float)@propertydef length(self):return self._upper - self._lower
    
  • BoundaryCondition基类:用于表示边界条件,继承该类的子类都必须实现apply和displacement函数

    class BoundaryCondition:def apply(self,particles,box):raise NotImplementedErrordef displacement(self,position1,position2,box):raise NotImplementedError
    
  • PeriodicBoundaryCondition子类:用于表示周期性边界条件

    class PeriodicBoundaryCondition(BoundaryCondition):def apply(self,particles,box):for p in particles:p.position = (p.position - box.lower) % box.length + box.lowerdef displacement(self,position1,position2,box):dr = position1 - position2dr = dr - np.rint(dr / box.length) * box.lengthreturn dr
    

2.势场的有限距离截断

1.原子间相互作用力

V ( R ) = ∑ i < j v ( ∣ r i − r j ∣ ) V(R)=\sum_{i<j}v(\left | r_{i}-r_{j} \right |) V(R)=i<jv(rirj)

  • 假设分子是刚性的,处于非简并的基态;原子间相互作用很弱,所以分子内部结构受环境影响较弱
  • 原子核之间存在短程的排斥作用:exp(-r/c)
  • 二体势主要特点:近距离处排斥,键长附近以及更远的距离相吸,实际应用中通常会取截取半径
  • 未截断的计算复杂度:O(N2),截断后计算复杂度:O(m×N)

2.势场截断的理论基础

  • Lennard-Jones势(以及类似的二体势)随距离迅速衰减
        截断前 V ( r ) = 4 ε [ ( σ r ) 12 − ( σ r ) 6 ] V(r)=4\varepsilon [(\frac{\sigma}{r})^{12}-(\frac{\sigma}{r})^{6}] V(r)=4ε[(rσ)12(rσ)6]
        截断后 V ( r ) = { 4 ε [ ( σ r ) 12 − ( σ r ) 6 ] r ≤ r c 0 r > r c V(r)=\left\{\begin{matrix}4\varepsilon [(\frac{\sigma}{r})^{12}-(\frac{\sigma}{r})^{6}] & r\le r_{c} \\0 & r>r_{c} \end{matrix}\right. V(r)={4ε[(rσ)12(rσ)6]0rrcr>rc
  • 通过忽略截断半径以外的相互作用可以节省大量的计算时间
  • 势能截断引起的误差项
    U t a i l = N ρ 2 ∫ r c ∞ d r V ( r ) 4 π r 2 U_{tail}=\frac{N\rho}{2}\int_{r_{c}}^{\infty}drV(r) 4\pi r^{2} Utail=2rcdrV(r)4πr2    当势场 V ( r ) V(r) V(r)衰减慢于 r − 3 r^{-3} r3时(比如库伦势 V ( r ) ∼ 1 / r V(r)\sim1/r V(r)1/r),截断引起的误差项将发散
    V ( r ) ∼ 1 r 2 → U t a i l ∼ r V(r)\sim \frac{1}{r^{2}}\to U_{tail}\sim r V(r)r21Utailr V ( r ) ∼ 1 r 4 → U t a i l ∼ 1 r V(r)\sim \frac{1}{r^{4}}\to U_{tail}\sim \frac{1}{r} V(r)r41Utailr1
  • 截断后的势场 V ( r ) = { 4 ε [ ( σ r ) 12 − ( σ r ) 6 ] r ≤ r c 0 r > r c V(r)=\left\{\begin{matrix}4\varepsilon [(\frac{\sigma}{r})^{12}-(\frac{\sigma}{r})^{6}] & r\le r_{c} \\0 & r>r_{c} \end{matrix}\right. V(r)={4ε[(rσ)12(rσ)6]0rrcr>rc     在 r = r c r=r_{c} r=rc处, V ( r ) V(r) V(r)不连续,受力 F = − d V ( r ) d r F=-\frac{dV(r)}{dr} F=drdV(r)发散!分子动力学不稳定

3.势场截断方法

V 0 ( r ) = { V ( r ) − V ( r c ) r < r c 0 r ≥ r c V_{0}(r)=\left\{\begin{matrix}V(r)-V(r_{c}) & r< r_{c} \\0 & r\ge r_{c} \end{matrix}\right. V0(r)={V(r)V(rc)0r<rcrrc

  • r = r c r=r_{c} r=rc时,一阶导数不连续!即能量的一阶导数力不连续!
    同时移位后的势阱深度也偏离了原势函数,引起热力学性质的计算偏差
  • 引入开关函数 S ( r ) S(r) S(r) V ~ ( r ) = V ( r ) S ( r ) \tilde{V}(r)=V(r)S(r) V~(r)=V(r)S(r)
    S ( r ) S(r) S(r) 的要求: S ( r s ) = 1 S ′ ( r s ) = 0 S ( r c ) = 1 S ′ ( r c ) = 0 S(r_{s})=1 \quad S^{'}(r_{s})=0 \quad S(r_{c})=1 \quad S^{'}(r_{c})=0 S(rs)=1S(rs)=0S(rc)=1S(rc)=0
  • cos开关函数 t = r c − r r c − r s = { 1 r = r s 0 r = r c t=\frac{r_{c}-r}{r_{c}-r_{s}}=\left\{\begin{matrix}1 & r=r_{s} \\0 & r=r_{c} \end{matrix}\right. t=rcrsrcr={10r=rsr=rc S ( t ) = 1 2 ( 1 − c o s π t ) S(t)=\frac{1}{2}(1-cos\pi t) S(t)=21(1cosπt)
  • 多项式开关函数 t = r c − r r c − r s = { 1 r = r s 0 r = r c t=\frac{r_{c}-r}{r_{c}-r_{s}}=\left\{\begin{matrix}1 & r=r_{s} \\0 & r=r_{c} \end{matrix}\right. t=rcrsrcr={10r=rsr=rc S ( t ) = t 3 ( 10 − 15 t + 6 t 2 ) S(t)=t^{3}(10-15t+6t^{2}) S(t)=t3(1015t+6t2)

3.近邻列表构筑与更新

  • 原则上,原子间相互作用无论间隔有多大,原子对之间的作用具有非零值
    实际上,对于像Lennard-Jones这样的势函数,一旦间距超过 σ \sigma σ 的几倍,原子间相互作用近似为零
  • 所以,与给定原子存在相互作用的近邻原子通常有限,可用一个近邻列表来存储

1.近邻算法:VerletList法

  • 对于每个原子,保留 r s = r c + δ r_{s}=r_{c}+\delta rs=rc+δ 范围内的相邻原子列表。如果 r i j < r c r_{ij}<r_{c} rij<rc,则计算力。每隔几步更新近邻列表
  • 如何选取合适的 δ \delta δ:取决于体系的温度、扩散速度、密度等,通常约10-20个时间步更新
  • 更新VerletList的判断条件:体系中原子的最大位移大于壳层厚度 δ \delta δ 的一半
  • VerletList类提供了获取和设置近邻列表的接口。build函数用来构建近邻列表
    class VerletList(NeighborList):def build(self):self.neighbor_list = {}self.previous._positions = {p: np.copy(p.position) for p in self.particles}for p1 in self.particles:self.neighbor_list[p1] = []for p2 in self.particles:displacement = self.boundary_condition.displacement(p1.position,p2.position,self.box)if p1 != p2 and np.linalg.norm(displacement) < (self.cutoff + self.skin_depth):self.neighbor_list[p1].append(p2)
    
  • update函数用来判断并且决定是否需要更新近邻列表
    class VerletList(NeighborList):def update(self):max_displacement = max(np.linalg.norm(self.boundary_condition.displacement(p.position,self.previous_positions[p],self.box))for p in self.particles)if max_displacement > self.skin_depth / 2:self.build()
    

2.近邻算法:区间排序法(CellList)

  • 计算近邻列表时,将框划分为单元格大小 L = r c L=r_{c} L=rc
  • 构建列表时,只需要考虑粒子所处的26个相邻单元格
  • 近邻列表的构造复杂度是O(N)

4.温度与压强控制算法

1.温度控制

  • 体系的温度可以用粒子平均动量进行衡量, T ( t ) = 1 N ∑ i = 1 N 1 2 m v i ( t ) ⋅ v i ( t ) T(t)=\frac{1}{N}\sum_{i=1}^{N}\frac{1}{2}mv_{i}(t)\cdot v_{i}(t) T(t)=N1i=1N21mvi(t)vi(t)
  • 在分子动力学模拟的过程中,体系的温度会波动。为了实现对体系温度的控制,需要引入额外的运动控制,也就是热浴
  • 温度调控机制可以使系统的温度维持在给定值,也可以根据外界环境的温度使系统温度发生涨落
  • 一个合理的温控机制能够产生正确的统计系综,即调温后各粒子位移发生的概率可以满足统计力学法则

2.温度控制算法

  • 随机方法:Anderson热浴,Langevin热浴,Dissipative Particle Dynamics
  • 确定性方法:直接速度标定法,Berendsen温控,Nose-Hoover稳定
  • 直接速度标定法,通过调整粒子的速度使系统温度维持在目标值
        引入速度标定因子 T ( t ) = ∑ i = 1 N m i v i 2 ( t ) k B N f T(t)=\sum_{i=1}^{N}\frac{m_{i}v_{i}^{2}(t)}{k_{B}N_{f}} T(t)=i=1NkBNfmivi2(t) λ = T c T ( t ) \lambda =\sqrt\frac{T_{c}}{T(t)} λ=T(t)Tc     每隔一定积分步,以 λ v ( t ) \lambda v(t) λv(t) 代替 v ( t ) v(t) v(t) 进行速度标定,从而使系统温度在目标值附近小幅波动
        优点:原理简单,易于编程
        缺点:模拟系统无法和统计力学的系综对于起来,突然的速度标定引起体系能量的突然改变,与真实结构的平衡态相差较远
  • Nose-Hoover机制,引入一个额外的“虚拟”自由度(热浴),这个额外自由度与系统粒子相互作用,吸收或释放能量,使系统温度趋近于目标值
        Nose-Hoover热浴的基本思想是通过改变时间步长来调整系统中的粒子速度和平均动能,因此,在Nose-Hoover方法中,引入了新的变量s以重新调整时间单位
        将一个按照微观正则演化的虚拟系统映射到一个按照正则系综演化的实际物理系统
        证明了虚拟系统中的微观正则分布等同于真实系统中的(p’,r’)变量的正则分布
    含s变量的虚拟系统
    虚拟系统按照NVE演化
    映射到实际物理体系NVT

3.压强控制

  • 分子动力学中,压强定义为在容器内壁受的单位面积上的平均力。压强的微观来源来自单位面积上的动量传输 P = 1 3 V [ ∑ i m i v i 2 + ∑ i ∑ j r i j ⋅ f i j ] P=\frac{1}{3V}[\sum_{i}m_{i}v_{i}^{2}+\sum_{i}\sum_{j}r_{ij}\cdot f_{ij}] P=3V1[imivi2+ijrijfij]
  • MD中,压强控制通常通过改变模拟盒子的尺寸或形状来实现压力的调节
  • 常用的压力调节算法包括Berendsen压力耦合Parrinello-Rahman方法、以及Nose-Hoover压力耦合
  • 要求在压力调节方向上表面具有周期性边界条件(PBC),以减少表面效应并保证模拟的准确性
  • 系统的原子或分子经常会重新排列以适应不同的压力条件,这种重新排列有时可以导致新的稳定或者亚稳定的晶体结构的形成
  • 压力的控制没有考虑相互作用的局限性,具有一定的非物理的动力学特征

5.原子间作用势

  • 原子间相互作用势:描述原子间相互作用关系的函数或模型,直接决定了原子模拟结果的可靠性
    相互作用
    运动方程式
    温度 压力
    原子坐标
    三维结构
    原子坐标 速度
    原子的运动

    1.Lennard-Jones势

    V ( r ) = 4 ε [ ( σ r ) 12 − ( σ r ) 6 ] V(r)=4\varepsilon [(\frac{\sigma}{r})^{12}-(\frac{\sigma}{r})^{6}] V(r)=4ε[(rσ)12(rσ)6]其中, ( σ r ) 12 (\frac{\sigma}{r})^{12} (rσ)12为短程排斥作用的Pauli exclusion principle − ( σ r ) 6 -(\frac{\sigma}{r})^{6} (rσ)6为远程吸引作用的London dispersion
  • 原子间平衡间距
    ∂ V ∂ r = 4 ε [ − 12 r ( σ r ) 12 + 6 r ( σ r ) 6 ] \frac{\partial V}{\partial r} = 4\varepsilon[-\frac{12}{r}(\frac{\sigma}{r})^{12}+\frac{6}{r}(\frac{\sigma}{r})^{6}] rV=4ε[r12(rσ)12+r6(rσ)6] = 48 ε r [ − ( σ r ) 12 + 0.5 ( σ r ) 6 ] \quad\quad =48\frac{\varepsilon}{r}[-(\frac{\sigma}{r})^{12}+0.5(\frac{\sigma}{r})^{6}] =48rε[(rσ)12+0.5(rσ)6] 当 r = 2 6 σ 时 , V m i n ( r ) = − ε 当r=\sqrt[6]{2}\sigma时,\quad V_{min}(r)=-\varepsilon r=62 σ,Vmin(r)=ε
1.吸引项的物理解释
  • 由两个相互作用的振子构成的系统的哈密顿量 H = H 1 + H 2 + Δ H 12 \mathcal{H}=\mathcal{H}_{1}+\mathcal{H}_{2}+\Delta\mathcal{H}_{12} H=H1+H2+ΔH12
  • 微扰项是两个偶极子的相互作用 Δ H 12 = p ⃗ 1 ⋅ p ⃗ 2 − 3 ( n ⃗ ⋅ p ⃗ 1 ) ( n ⃗ ⋅ p ⃗ 2 ) r 12 3 \Delta\mathcal{H}_{12}=\frac{\vec{p}_{1}\cdot\vec{p}_{2}-3(\vec{n}\cdot\vec{p}_{1})(\vec{n}\cdot\vec{p}_{2})}{r_{12}^{3}} ΔH12=r123p 1p 23(n p 1)(n p 2)
  • 一阶微扰理论,可以计算出能量的变化 Δ E ≃ ∑ n ∣ ⟨ ψ n ∣ Δ H 12 ∣ ψ 0 ⟩ ∣ 2 E 0 − E n ∝ − 1 r 12 6 \Delta E \simeq\sum_{n}\frac{|\left \langle \psi_{n}|\Delta\mathcal{H}_{12}|\psi_{0}\right \rangle|^{2}}{E_{0}-E_{n}}\propto -\frac{1}{r_{12}^{6}} ΔEnE0Enψn∣ΔH12ψ02r1261
2.斥能项的物理解释
  • 原子间作用力:分子内化学键(键长项、键角项、扭转项等等),分子间范德华力、氢键、极化作用等等
  • 原子与原子间的斥力主要来源
        范德华排斥力:当两个原子过于接近时,它们的电子云之间的排斥效应变得显著
        库伦力:电子与电子之间、质子与质子之间的排斥力
  • 为什么是 ( 1 r ) 12 (\frac{1}{r})^{12} (r1)12 尚无科学解释
3.约化单位
  • 对于Lennard-Jones势,通常会使用模型内在的长度和能量单位来刻画相关的物理量。用 σ \sigma σ 来衡量长度,用 ε \varepsilon ε 来衡量能量,把这样的单位制叫做LJ unit r i ′ = r i / σ V ′ ( r ) = V ( r ) / ε r_{i}^{'}=r_{i}/\sigma\quad\quad V^{'}(r)=V(r)/\varepsilon ri=ri/σV(r)=V(r)/ε
  • 原始公式 V ( r ) = 4 ε [ ( σ r ) 12 − ( σ r ) 6 ] V(r)=4\varepsilon [(\frac{\sigma}{r})^{12}-(\frac{\sigma}{r})^{6}] V(r)=4ε[(rσ)12(rσ)6]
  • 约化公式 V ′ ( r ) = 4 [ 1 r ′ 12 − 1 r ′ 6 ] V^{'}(r)=4[\frac{1}{r^{'12}}-\frac{1}{r^{'6}}] V(r)=4[r121r61]
  • 国际单位运动方程 m d 2 d t 2 r i = ∑ j 48 ε 0 [ 0.5 ( σ r i j ) 6 − ( σ r i j ) 12 ] ( r i j / r i j 2 ) m\frac{d^{2}}{dt^{2}}\mathbf{ r_{i}}=\sum_{j}48\varepsilon_{0}[0.5(\frac{\sigma}{r_{ij}})^{6}-(\frac{\sigma}{r_{ij}})^{12}](\mathbf{r_{ij}}/r_{ij}^{2}) mdt2d2ri=j48ε0[0.5(rijσ)6(rijσ)12](rij/rij2) r i ′ = r i / σ t ′ = t / τ τ = σ m / ε \mathbf{r_{i}^{'}}=\mathbf{r_{i}}/\sigma\quad\quad t^{'}=t/\tau\quad\quad \tau=\sigma\sqrt{m/\varepsilon} ri=ri/σt=t/ττ=σm/ε d r d t = d r d r ′ ⋅ d r ′ d t ′ ⋅ d t ′ d t = ( σ τ ) d r ′ d t ′ \frac{dr}{dt}=\frac{dr}{dr^{'}}\cdot\frac{dr^{'}}{dt^{'}}\cdot\frac{dt^{'}}{dt}=(\frac{\sigma}{\tau})\frac{dr^{'}}{dt^{'}} dtdr=drdrdtdrdtdt=(τσ)dtdr d 2 r d t 2 = d d t ( d r d t ) = d d t ′ ⋅ d t ′ d t ( d r d t ) = ( σ τ 2 ) d 2 r ′ d t ′ 2 \frac{d^{2}r}{dt^{2}}=\frac{d}{dt}(\frac{dr}{dt})=\frac{d}{dt^{'}}\cdot\frac{dt^{'}}{dt}(\frac{dr}{dt})=(\frac{\sigma}{\tau^{2}})\frac{d^{2}r^{'}}{dt^{'2}} dt2d2r=dtd(dtdr)=dtddtdt(dtdr)=(τ2σ)dt2d2r
  • LJ单位运动方程 d 2 d ( t ′ ) 2 r i ′ = ∑ j 24 ( r i j − 6 − 2 r i j − 12 ) ( r i j ′ / r i j ′ 2 ) \frac{d^{2}}{d(t^{'})^{2}}\mathbf{r_{i}^{'}}=\sum_{j}24(r_{ij}^{-6}-2r_{ij}^{-12})(\mathbf{r_{ij}^{'}}/r_{ij}^{'2}) d(t)2d2ri=j24(rij62rij12)(rij/rij2)     此微分方程与具体的惰性气体分子性质无关

2.其他二体势

1.简谐势
  • 势能 V ( r ) = 1 2 k ( r − r 0 ) 2 V(r)=\frac{1}{2}k(r-r_{0})^{2} V(r)=21k(rr0)2
    相应的力 F ⃗ ( r ) = ( r − r 0 ) r ⃗ r \vec{F}(r)=(r-r_{0})\frac{\vec{r}}{r} F (r)=(rr0)rr
  • 简谐势在描述分子振动时通常适用于小振幅振动,即原子围绕平衡位置进行小幅度的振动
  • 利用简谐势可以描述两个共价键合原子的键伸缩
2.硬球模型
  • 硬球模型将分子看作是无限小但具有硬核半径的硬球
  • 分子之间的相互作用仅由排斥力来描述
    势能函数 V ( r ) = { 0 r ≥ 2 R + ∞ r < 2 R V(r)=\left\{\begin{matrix}0&r\ge 2R \\ +\infty &r<2R \end{matrix}\right. V(r)={0+r2Rr<2R
  • 硬球模型的势能函数通常为0;当两球相接触时,势能为无穷大
3.软球模型
  • 实际上,当分子互相靠近时,电子云能够有一定程度上的重叠,因此互相可以有一定的穿透,此为软球模型
  • 势能函数 V ( r ) = ε ( σ r ) n V(r)=\varepsilon(\frac{\sigma}{r})^{n} V(r)=ε(rσ)n
  • 硬球模型和软球模型缺乏对分子间吸引作用的考虑,因此不能用于模拟真实流体,但可用于考察排斥作用对流体结构和液固平衡的影响
4.Buckingham势

U ( r ) = A e − B r − C r 6 U(r)=Ae^{-Br}-\frac{C}{r^{6}} U(r)=AeBrr6C 其中, A e − B r Ae^{-Br} AeBr短程排斥力 − C r 6 -\frac{C}{r^{6}} r6C远程吸引力

  • 与Lennard-Jones势相比,Buckingham势的排斥项更加灵活,贴近实际,但计算量也大很多
  • r → 0 r\to0 r0 时,因为指数项收敛于一个常数,因此,当势函数随着原子间距变小趋向发散时,Buckingham势会呈现不稳定的现象
5.Born-Mayer势

U ( r ) = A e − β r − k q i q j r U(r)=Ae^{-\beta r}-\frac{kq_{i}q_{j}}{r} U(r)=Aeβrrkqiqj 其中, A e − β r Ae^{-\beta r} Aeβr短程排斥力 − k q i q j r -\frac{kq_{i}q_{j}}{r} rkqiqj库伦吸引力

  • Born-Mayer势能用于描述晶体格子中的离子相互作用。与简单库伦模型相比,Born-Mayer模型是一个更现代、更准确的离子相互作用表示方式,特别是它考虑了由于排斥Pauli不相容原理而产生的短程排斥作用
6.Morse势
  • Morse势是一种对于双原子分子间势能的简易解析模型 U ( r ) = − D e + D e [ 1 − e − α ( r − r e ) ] 2 U(r)=-D_{e}+D_{e}[1-e^{-\alpha(r-r_{e})}]^{2} U(r)=De+De[1eα(rre)]2
        如果对Morse势在 r e r_{e} re 附近作Taylor展开,可以得到 V ( r ) ≈ 1 2 k ( r − r 0 ) 2 V(r)\approx \frac{1}{2}k(r-r_{0})^{2} V(r)21k(rr0)2
  • D e D_{e} De 是势能的深度,表示势能的最低点处的值
  • α \alpha α 是一个调节势能曲线陡峭程度的参数,可拟合材料的其他参数,比如内聚能、晶格常数
  • r e r_{e} re 是势能曲线的平衡距离
7.库伦势
  • 原子电子亲和力和电离电位的差值导致原子间的电荷转移
        静电能(假设点电荷): V e l e c = C u n i t ∑ i < j q i q j R i j V_{elec}=C_{unit}\sum_{i<j}\frac{q_{i}q_{j}}{R_{ij}} Velec=Cuniti<jRijqiqj
  • 库伦势的计算方法
        使用周期性边界条件的情况下(无限系统):
        库伦和是条件收敛的,结果取决于加和的顺序,结果取决于表面的电荷排列
        需要使用特殊的求和技术和边界条件:Ewald方法Particle-mesh Ewald等技术
  • 如何获得原子电荷? 形式电荷、偶极矩或极化、电子结构计算、自洽电荷平衡
8.Yukawa势
  • Yukawa势用以描述核子之间的短程相互作用 V ( r ) = − g 2 e − a m r r V(r)=-g^{2}\frac{e^{-amr}}{r} V(r)=g2reamr
  • g:幅度缩放常数,即电势的振幅
  • m:粒子的质量
  • r:到粒子的径向距离
  • 如果 m = 0 m=0 m=0,则Yukawa势退化为库伦势 V ( r ) = − g 2 1 r − g 2 = q 1 q 2 4 π ε 0 V(r)=-g^{2}\frac{1}{r}\quad -g^{2}=\frac{q_{1}q_{2}}{4\pi\varepsilon_{0}} V(r)=g2r1g2=4πε0q1q2
9.Aziz势
  • Aziz势是描述低温和中等温度下惰性气体的相互作用,如氦、氖等 V ( r ) = ε [ A e − α x − F ( x ) ∑ j = 0 2 C 2 j + 6 / x 2 j + 6 ] V(r)=\varepsilon[Ae^{-\alpha x}-F(x)\sum_{j=0}^{2}C_{2j+6}/x^{2j+6}] V(r)=ε[AeαxF(x)j=02C2j+6/x2j+6] F ( x ) = { e − ( D x − 1 ) 2 x < D 1 x ≥ D x = r r m F(x)=\left\{\begin{matrix} e^{-(\frac{D}{x}-1)^{2}} & x<D \\ 1 & x\ge D \end{matrix}\right. \quad\quad\quad x=\frac{r}{r_{m}} F(x)={e(xD1)21x<DxDx=rmr
  • Buckingham势和Aziz势的差异主要在于原子间距离较小的部分,Aziz势与Buckingham势相比具有更高的排斥力
10.Tang-Toennies势
  • Tang和Toennies提出了Tang-Toennies势来描述稀有气体(He到Rn)之间的范德华相互作用 V ( r ) = A e − b r − ∑ n = 3 N f 2 N ( b R ) C 2 N R 2 N V(r)=Ae^{-br}-\sum_{n=3}^{N}f_{2N}(bR)\frac{C_{2N}}{R^{2N}} V(r)=Aebrn=3Nf2N(bR)R2NC2N     其中, A e − b r Ae^{-br} Aebr分子间库伦排斥势 − ∑ n = 3 N f 2 N ( b R ) C 2 N R 2 N -\sum_{n=3}^{N}f_{2N}(bR)\frac{C_{2N}}{R^{2N}} n=3Nf2N(bR)R2NC2N分子间相互作用的色散能和电子云重叠效应
  • 衰减函数 f 2 N ( x ) = 1 − e − x ∑ k = 0 2 n x k k ! f_{2N}(x)=1-e^{-x}\sum_{k=0}^{2n}\frac{x^{k}}{k!} f2N(x)=1exk=02nk!xk

3.二体势的局限

1.对势的局限
  • 通常一个体系的总能量可以根据个体、对势、三体势等的坐标划分为不同的贡献项: V = ∑ i v 1 ( r ⃗ i ) + ∑ i ∑ j > i v 2 ( r ⃗ i , r ⃗ j ) + ∑ i ∑ j > i ∑ k > j > i v 3 ( r ⃗ i r ⃗ j r ⃗ k ) + . . . V=\sum_{i}v_{1}(\vec{r}_{i})+\sum_{i}\sum_{j>i}v_{2}(\vec{r}_{i},\vec{r}_{j})+\sum_{i}\sum_{j>i}\sum_{k>j>i}v_{3}(\vec{r}_{i}\vec{r}_{j}\vec{r}_{k})+... V=iv1(r i)+ij>iv2(r i,r j)+ij>ik>j>iv3(r ir jr k)+...
  • 对势近似给出了对体系总能量非常好的描述,因为通过定义“有效”对势可以部分地包括平均三体效应。计算机模拟中采用的通常是这种有效对势,代表了部分多体效应 V ≈ ∑ i v 1 ( r i ⃗ ) + ∑ i ∑ j > i v 2 e f f ( r i j ) V\approx\sum_{i}v_{1}(\vec{r_{i}})+\sum_{i}\sum_{j>i}v_{2}^{eff}(r_{ij}) Viv1(ri )+ij>iv2eff(rij)
  • 所以为了再现实验数据所需的有效对势可能依赖于材料的密度、温度等,而真正的原子间对势则不然
  • 在实际材料体系中,原子间相互作用不仅仅取决于键长,而且其键能取决于化学环境
  • 二体势的问题在于其本身的形式,而不在于其参数
  • 对势模型:原子间的键能不受周围其他的成键情况;实际情况:当中心原子与更多原子成键时,平均键能降低 对势预测: E ∝ Z 对势预测:E\propto Z 对势预测:EZ 实际体系: E ∝ Z 实际体系:E\propto \sqrt{Z} 实际体系:EZ
2.空位形成能的对势计算
  • 原子配位数为Z,仅限于最近邻原子作用 E t o t a l ( N ) = 1 2 N Z E b o n d E_{total}(N)=\frac{1}{2}NZE_{bond} Etotal(N)=21NZEbond
  • 内聚能 / 结合能 E c o h e s i v e ( N ) = E t o t a l N = 1 2 Z E b o n d E_{cohesive}(N)=\frac{E_{total}}{N}=\frac{1}{2}ZE_{bond} Ecohesive(N)=NEtotal=21ZEbond
  • 空位形成能 ε v a c = E v a c ( N − 1 ) − N − 1 N E t o t a l ( N ) \varepsilon_{vac}=E_{vac}(N-1)-\frac{N-1}{N}E_{total}(N) εvac=Evac(N1)NN1Etotal(N)   代入 E t o t a l ( N ) = 1 2 N Z E b o n d E_{total}(N)=\frac{1}{2}NZE_{bond} Etotal(N)=21NZEbond E v a c ( N − 1 ) = E t o t a l ( N ) − Z E b o n d E_{vac}(N-1)=E_{total}(N)-ZE_{bond} Evac(N1)=Etotal(N)ZEbond   求得 ε v a c = − 1 2 Z E b o n d \varepsilon_{vac}=-\frac{1}{2}ZE_{bond} εvac=21ZEbond
  • 对势近似下,空位形成能数值上等于结合能(符号相反),与对势的具体参数无关!
  • 但实际材料体系中,空位形成能与结合能比值 ~ 1/3
Ecoh(eV)Evac(eV)Evac/Ecoh
Al3.390.750.22
Ni3.5161.60.46
Cu3.6151.20.33
Ag4.0861.150.28
Pt3.9241.40.36
Au4.0790.950.23
3.一维无穷长链的对势计算
  • 相邻原子间距为a,以Lennard-Jones势为例 E = 1 2 × 2 × 4 ε ∑ n = 1 [ ( σ a n ) 12 − ( σ a n ) 6 ] \quad\quad E=\frac{1}{2}\times 2\times 4\varepsilon \sum_{n=1}[(\frac{\sigma}{an})^{12}-(\frac{\sigma}{an})^{6}] E=21×2×4εn=1[(anσ)12(anσ)6] = 4 ε [ 1.00 ( σ a ) 12 − 1.02 ( σ a ) 6 ] = 4\varepsilon [1.00(\frac{\sigma}{a})^{12}-1.02(\frac{\sigma}{a})^{6}] =4ε[1.00(aσ)121.02(aσ)6]
  • 能量极值 a = ( 2 1.02 ) 1 / 6 σ ≈ 1.118 σ a=(\frac{2}{1.02})^{1/6}\sigma\approx1.118\sigma a=(1.022)1/6σ1.118σ     与平衡位置相比处于压缩状态 ε c = 1.04 ε \varepsilon_{c}=1.04\varepsilon εc=1.04ε
  • 原子表面受力 F = 4 ε ∑ n = 1 ∞ [ 12 r n ( σ r n ) 12 − 6 r n ( σ r n ) 6 ] x ^ F=4\varepsilon\sum_{n=1}^{\infty}[\frac{12}{r_{n}}(\frac{\sigma}{r_{n}})^{12}-\frac{6}{r_{n}}(\frac{\sigma}{r_{n}})^{6}]\hat{x} F=4εn=1[rn12(rnσ)12rn6(rnσ)6]x^ = 4 ε a ∑ n = 1 ∞ [ 12 n 13 ( 1.02 2 ) 2 − 6 n 7 ( 1.02 2 ) ] x ^ \quad\quad\quad=\frac{4\varepsilon}{a}\sum_{n=1}^{\infty}[\frac{12}{n^{13}}(\frac{1.02}{2})^{2}-\frac{6}{n^{7}}(\frac{1.02}{2})]\hat{x} =a4εn=1[n1312(21.02)2n76(21.02)]x^ = 0.1456 ε a x ^ =0.1456\frac{\varepsilon}{a}\hat{x}\quad\quad\quad\quad\quad\quad\quad\;\; =0.1456aεx^ r n = n a = n ( 2 1.02 ) 1 / 6 σ r_{n}=na=n(\frac{2}{1.02})^{1/6}\sigma rn=na=n(1.022)1/6σ ( σ r n ) 6 = ( 1.02 2 ) 1 n 6 (\frac{\sigma}{r_{n}})^{6}=(\frac{1.02}{2})\frac{1}{n^{6}} (rnσ)6=(21.02)n61
  • Riemann zeta函数 ∑ n = 1 ∞ 1 n 13 = 1.00024 \sum_{n=1}^{\infty}\frac{1}{n^{13}}=1.00024 n=1n131=1.00024 ∑ n = 1 ∞ 1 n 7 = 1.00835 \sum_{n=1}^{\infty}\frac{1}{n^{7}}=1.00835 n=1n71=1.00835
  • 表面原子受到向外的净力,对势作用下将向表面外侧弛豫;而实际情况下,表面原子通常将向内侧弛豫

4.多体势与机器学习势

1.EAM势 MEAM势
  • 原子的能量非线性的依赖于周围的近邻原子(原子数目与距离),用“电子密度”作为对局域化学环境的一种衡量
  • EAM势 E c o h = ∑ i F i ( ρ i ) ⏟ + 1 2 ∑ i ∑ j ≠ i V ( R i j ) ⏟ Ecoh = \underbrace{\sum_{i}F_{i}(\rho_{i})}+\underbrace{\frac{1}{2}\sum_{i}\sum_{j\ne i}V(R_{ij})} Ecoh= iFi(ρi)+ 21ij=iV(Rij) ρ i = ∑ i ≠ j f ( R i j ) \rho_{i}=\sum_{i \ne j}f(R_{ij}) ρi=i=jf(Rij)     由原子核在电子气的嵌入能原子核之间的相互斥能组成,适用于:金属及合金原子间相互作用,如Fe、Cu、Ni、Pt、Au等
  • EAM势中的电子密度不具有方向性
  • Baskes, Michael I. “Modified embedded-atom potentials for cubic materials and impurities.” Physical review B 46.5 (1992): 2727.
  • MEAM势与EAM势方法类似,但是电子密度项中保留了不同的 spd 分量 E c o h = ∑ i F i ( ρ i ) ⏟ + 1 2 ∑ i ∑ j ≠ i V ( R i j ) ⏟ Ecoh = \underbrace{\sum_{i}F_{i}(\rho_{i})}+\underbrace{\frac{1}{2}\sum_{i}\sum_{j\ne i}V(R_{ij})} Ecoh= iFi(ρi)+ 21ij=iV(Rij) ρ i = ∑ j , k f ( R i j ) ⋅ f ( R i k ) ⋅ g ( c o s θ i j k ) \rho_{i}=\sum_{j,k}f(R_{ij})\cdot f(R_{ik})\cdot g(cos\theta_{ijk}) ρi=j,kf(Rij)f(Rik)g(cosθijk)     角度项对于过渡金属元素和共价体系尤为重要
2.分子力场
  • 成键作用:成键作用通常代表共价键的性质,键的拉伸、弯折、扭转可以表示为胡克定律
  • 非成键作用:非成键作用通常来自于静电作用、范德瓦尔斯作用等
  • 化学键的作用包括二体、三体、四体相互作用 U = 1 2 ∑ i , j V ( R i , R j ) + 1 6 ∑ i , j , k V ( R i , R j , R k ) + . . . U=\frac{1}{2}\sum_{i,j}V(R_{i},R_{j})+\frac{1}{6}\sum_{i,j,k}V(R_{i},R_{j},R_{k})+... U=21i,jV(Ri,Rj)+61i,j,kV(Ri,Rj,Rk)+...
    二体相互作用:简谐势、Lennard-Jones势、Morse势、Buckingham势等等
    三体相互作用 E θ = 1 2 k i j k s i n 2 θ i j k 0 [ c o s θ − c o s θ i j k 0 ] 2 E_{\theta}=\frac{1}{2}\frac{k_{ijk}}{sin^{2}\theta_{ijk}^{0}}[cos\theta-cos\theta_{ijk}^{0}]^{2} Eθ=21sin2θijk0kijk[cosθcosθijk0]2
    四体相互作用(二面角) E ( Φ ) = k i j k l [ 1 − c o s ( n j k ( Φ − Φ 0 ) ) ] E(\Phi)=k_{ijkl}[1-cos(n_{jk}(\Phi-\Phi_{0}))] E(Φ)=kijkl[1cos(njk(ΦΦ0))]
  • 分子力场的能量:简谐势描述的键振动和弯曲+键的扭转弯曲+库仑力与范德瓦尔斯作用 U = ∑ b o n d s 1 2 k r ( r i j − r 0 ) 2 + ∑ a n g l e s 1 2 k θ ( θ i j k − θ 0 ) 2 ⏟ + ∑ t o r s i o n s ∑ n k ϕ , n [ c o s ( n ϕ i j k l + δ n ) + 1 ] ⏟ + ∑ n o n − b o n d e d p a i r s [ q i q j 4 π ε 0 r i j + A i j r i j 12 − B i j r i j 6 ] ⏟ U=\underbrace{\sum_{bonds}\frac{1}{2}k_{r}(r_{ij}-r_{0})^{2}+\sum_{angles}\frac{1}{2}k_{\theta}(\theta_{ijk}-\theta_{0})^{2}}+\underbrace{\sum_{torsions}\sum_{n}k_{\phi,n}[cos(n\phi_{ijkl}+\delta_{n})+1]}+\underbrace{\sum_{non-bonded\; pairs}[\frac{q_{i}q_{j}}{4\pi\varepsilon_{0}r_{ij}}+\frac{A_{ij}}{r_{ij}^{12}}-\frac{B_{ij}}{r_{ij}^{6}}]} U= bonds21kr(rijr0)2+angles21kθ(θijkθ0)2+ torsionsnkϕ,n[cos(nϕijkl+δn)+1]+ nonbondedpairs[4πε0rijqiqj+rij12Aijrij6Bij]
3.反应力场
  • 反应力场的特点
        1.仅元素种类不足以确定原子间相互作用,例如:sp3 碳和 sp2 碳的行为不同
        2.传统的分子力场中,需要指定力场类型来建立原子的特性,在MD模拟之前确定力场类型和原子连接性,力场类型和原子间连接在运行期间保持固定
        3.反应力场(如Reaxff和REBO)纯粹根据原子位置描述相互作用,并允许原子改变配位和环境
  • Stillinger-Weber势,广泛应用于半导体材料 U = ∑ i ∑ j ≠ i f 2 ( r i j ) + ∑ i ∑ j ≠ i ∑ k ≠ i , k ≠ j f 3 ( r i j , r i k , c o s θ i j k ) U=\sum_{i}\sum_{j\ne i}f_{2}(r_{ij})+\sum_{i}\sum_{j\ne i}\sum_{k\ne i,k\ne j}f_{3}(r_{ij},r_{ik},cos\theta_{ijk}) U=ij=if2(rij)+ij=ik=i,k=jf3(rij,rik,cosθijk) f 2 ( r ) = { A ( B r − p − r − q ) e x p [ ( r − a ) − 1 ] r < a 0 r ≥ a f_{2}(r)=\left\{\begin{matrix}A(Br^{-p}-r^{-q})exp[(r-a)^{-1}] &r<a \\ 0 &r\ge a \end{matrix}\right. f2(r)={A(Brprq)exp[(ra)1]0r<ara f 3 ( r i , r j , r k ) = h ( r i j , r i k , θ j i k ) + h ( r j i , r j k , θ i j k ) + h ( r k i , r k j , θ i k j ) f_{3}(r_{i},r_{j},r_{k})=h(r_{ij},r_{ik},\theta_{jik})+h(r_{ji},r_{jk},\theta_{ijk})+h(r_{ki},r_{kj},\theta_{ikj}) f3(ri,rj,rk)=h(rij,rik,θjik)+h(rji,rjk,θijk)+h(rki,rkj,θikj) h ( r i j , r i k , θ j i k ) = λ e x p [ γ ( r i j − a ) − 1 + γ ( r i k − a ) − 1 ] × ( c o s θ j i k + 1 3 ) 2 h(r_{ij},r_{ik},\theta_{jik})=\lambda exp[\gamma(r_{ij}-a)^{-1}+\gamma(r_{ik}-a)^{-1}]\times(cos\theta_{jik}+\frac{1}{3})^{2} h(rij,rik,θjik)=λexp[γ(rija)1+γ(rika)1]×(cosθjik+31)2
  • Tersoff势
        1987年,Biswas和Hamann发现SW势能无法描述Si的非四面体构型,Tersoff意识到三体势的本质缺陷,基于Abell的理论工作提出,Abell, G. C. “Empirical chemical pseudopotential theory of molecular and metallic bonding.” Physical Review B 31.10 (1985): 6184. E b = ∑ i ∑ j > i [ a i j V R ( r i j ) − b i j V A ( r i j ) ] E_{b}=\sum_{i}\sum_{j>i}[a_{ij}V^{R}(r_{ij})-b_{ij}V^{A}(r_{ij})] Eb=ij>i[aijVR(rij)bijVA(rij)]      b i j b_{ij} bij键级参数(bond order),Si体系势能很大程度上取决于键级 b i j = ( 1 + β n ζ i j n ) − 1 / 2 n b_{ij}=(1+\beta^{n}\zeta_{ij}^{n})^{-1/2n} bij=(1+βnζijn)1/2n ζ i j = ∑ k ≠ i , j f c ( r i k ) g ( θ i j k ) e x p [ λ 3 3 ( r i j − r i k ) 3 ] \zeta_{ij}=\sum_{k\ne i,j}f_{c}(r_{ik})g(\theta_{ijk})exp[\lambda_{3}^{3}(r_{ij}-r_{ik})^{3}] ζij=k=i,jfc(rik)g(θijk)exp[λ33(rijrik)3] g ( θ ) = 1 + c 2 / d 2 − c 2 / [ d 2 + ( h − c o s θ ) 2 ] g(\theta)=1+c^{2}/d^{2}-c^{2}/[d^{2}+(h-cos\theta)^{2}] g(θ)=1+c2/d2c2/[d2+(hcosθ)2]     Tersoff势可以准确模拟多种共价体系的亚稳态结构,可扩展到SiC和SiO2等体系,Tersoff, Jerry. “New empirical approach for the structure and energy of covalent systems.” Physical review B 37.12 (1988): 6991.
  • 键级决定了两个原子之间的局部键能,原子环境➡键级➡共价键
        1.键长拉伸、角度和扭转项取决于所涉及的键级,例如区分 sp3sp2
        2.随着键级变为零,所有涉及的键能项也趋于零,键级是所有作用项的前置因子
        3.对过成键/欠成键的惩罚,限制一个原子可以成键的数目
  • REBO势和AIREBO势
        Tersoff potential考虑了碳的不同杂化形式,而在Si晶体的模拟上取得了巨大成功,但无法处理石墨的非局域共轭键。比如,它无法区分石墨中的C-C共轭键及分子中的C=C键,在模拟石墨以及碳氢有机系统时遇到了困难
        Brenner改进了 b i j b_{ij} bij 的解析形式,考虑了C-H相互作用,改善了对自由基的描述,开发了reactive empirical bond order(REBO)
        为了描述复杂的CH大分子,Stuart等人在原REBO势函数的基础上引入范德华力和四体扭转力,开发了Adaptive Intermolecular Reactive Empirical Bond Order(AIREBO)
        AIREBO解决了石墨的非局域共轭键的模拟问题,REBO家族被广泛用于碳纳米材料的模拟
4.机器学习势
  • 半经验势特点:假设某种给定函数形式(如二体或三体),能够找到实验中的一些数据,使用理论+模拟来确定参数
  • 机器学习势特点:以机器学习模型代替解析的函数形式,使用第一性原理数据确定参数
  • ML势准确可靠,但比从头计算要快得多

http://www.ppmy.cn/ops/145096.html

相关文章

Hive其四,Hive的数据导出,案例展示,表类型介绍

目录 一、Hive的数据导出 1&#xff09;导出数据到本地目录 2&#xff09;导出到hdfs的目录下 3&#xff09;直接将结果导出到本地文件中 二、一个案例 三、表类型 1、表类型介绍 2、内部表和外部表转换 3、两种表的区别 4、练习 一、Hive的数据导出 数据导出的分类&…

【C++】初识C++之C语言加入光荣的进化(上)

写在前面 本篇笔记作为C的开篇笔记&#xff0c;主要是讲解C关键字(C98)连带一点点(C11)的知识。掌握的C新语法新特性&#xff0c;当然C是兼容C的&#xff0c;我们学习C的那套在C中也是受用。 文章目录 写在前面一、命名空间域1.1、命名空间域的定义与使用1.2、命名空间域的细节…

基于3D-Speaker进行区分说话人项目搭建过程报错记录 | 通话录音说话人区分以及语音识别 | 声纹识别以及语音识别 | pyannote-audio

0. 研究背景 在外呼系统中&#xff0c;我们的后台管理系统通常要对电话录音的内容进行提取和分析。那么说到分析&#xff0c;我们就要对录音中的两个人的对话进行分离&#xff0c;然后分别分析&#xff0c;比如分析客户是否有合作的意愿&#xff0c;分析客服讲的话术是否合理&…

如何在 Ubuntu 22.04 上安装和使用 Composer

简介 如果你是一名 PHP 开发者&#xff0c;想要简化你的项目依赖管理&#xff0c;那么 Composer 是一个必不可少的工具。Composer 可以简化包管理&#xff0c;并允许你轻松地将外部库集成到你的项目中。 本教程将向你展示如何在 Ubuntu 22.04 操作系统上安装 Composer&#x…

Pytorch分布式训练

现在深度学习模型占用显存大&#xff0c;数据量也大&#xff0c;单张显卡上训练已经满足不了要求了&#xff0c;只有多GPU并行训练才能加快训练速度&#xff1b;并行训练又分为模型并行和数据并行两种。模型并行比较少用到&#xff0c;这里主要介绍数据并行&#xff0c;pytorch…

4-3 MCU中ARM存储器的作用

定义&#xff1a;在讨论单片机中的“ARMZ”时&#xff0c;看起来可能存在一些混淆。通常情况下&#xff0c;我们不会直接提到“ARMZ”作为单片机存储内容的描述。可能你指的是某种特定的存储器或寄存器&#xff0c;或者是关于ARM架构下的某种概念。为了更准确地回答你的问题&am…

【Rust自学】6.1. 定义枚举

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 6.1.1. 什么是枚举 枚举允许我们列举所有可能的值来定义一个类型。这与其他编程语言中的枚举类似&#xff0c;但 Rust 的枚举更加灵活和强…

ubuntu使用ffmpeg+ZLMediaKit搭建rtsp推流环境

最方便的方式&#xff0c;ubuntu上安装vlc播放器&#xff0c;通过vlc来推流&#xff0c;在网上有很多教程。这里采用ffmpegZLMediaKit 必备条件&#xff1a; 1、安装ffmpeg 2、安装ZLMediaKit 一、安装ffmpeg sudo apt update sudo apt install ffmpeg 二、安装ZLMediaKit…