首页 > 编程语言 >lammps统计六元环(非苯环)个数--Python实现

lammps统计六元环(非苯环)个数--Python实现

时间:2024-05-30 15:03:35浏览次数:26  
标签:六元 lammps -- float l1 Python l2 soot import

思路

1、六元碳环中,两原子最远距离为3X1.7=5.1

2、六个碳原子的集合中,每个碳原子彼此之间都只成两个C-C键的情况。只有一种可能————碳原子之间首尾相连连成六元环

步骤

1、找出距离目标原子距离<=5的所有原子,建立一个包含n个原子列表

2、在列表中随机取六个原子,建立一个小的合集,穷尽这种合集(排列组合C6/n)

3、哪一个合集中的六个原子满足彼此之间都恰好成两个键,则这一个合集能够组成一个苯环

#统计碳烟内部六元环的个数

import matplotlib.pyplot as plt
import numpy as np
import linecache
import itertools as it         #用于调用排列组合
from collections import Counter #用于调用列表中元素计数

#距离计算公式
def distant(l1,l2):
    a=np.sqrt((float(l1[2])-float(l2[2]))**2+(float(l1[3])-float(l2[3]))**2+(float(l1[4])-float(l2[4]))**2)
    return a 

def count_occurrences(lst, element):
    return Counter(lst)[element]

#打开碳烟颗粒的文件
with open("b.txt") as file_project:
    
    soot=[]
    lines =file_project.readlines()
    #print(lines)
    for line in lines:
        row = line.split()
        #print(row)
        soot.append(row)               #读取碳烟颗粒中每个原子信息
#print(soot)


C6=0
for atom1 in soot:
    circle=[]
    #circle.append(atom1)
    for atom2 in soot:
        if distant(atom1,atom2) <= 5:
            circle.append(atom2)
    #print(circle)
    combin=list(it.combinations(circle,6))
    print(len(combin))                  #排列组合的种类
    for num in combin:
        ever = []
        for atom1 in num:
            number=0
            for atom2 in num:
                if distant(atom1,atom2) <= 1.7:
                    number = number + 1
                    ever.append(number)                 
        a = count_occurrences(ever,2)
        print(a)
        if int(a) == 6 :
            C6 =C6 +1
print(C6)

















标签:六元,lammps,--,float,l1,Python,l2,soot,import
From: https://blog.csdn.net/weixin_45192240/article/details/139304542

相关文章

  • matplotlib
    mat—matrix矩阵plot—画图lib—library库matlab矩阵实验室mat—matrix矩阵lab实验室一、matplotlib三层结构1.容器层画板层Canvas画布层Figureplt.figure()绘图层/坐标系axesplt.subplots()axis坐标轴2.辅助显示层3.图像层图像......
  • 开源VS闭源:AI未来的十字路口
    人工智能领域的发展日益加速,其中关于模型的开源和闭源策略引起了业界的广泛关注。开源策略指的是将软件的源代码公开,允许任何人自由使用、研究甚至改进;而闭源策略则是指软件的源代码不公开,只有特定的个体或组织有权访问和修改。在人工智能尤其是深度学习模型的应用中,开源策略能......
  • numpy
    Numpy(NumericalPython)是一个开源的Python科学计算库,用于快速处理任意维度的数组。Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。Numpy—数值......
  • 各种“Ops“的对比:DevOps vs. DataOps vs. MLOps vs. AIOps
    文章目录0.前言1.DevOps2.DataOps3.MLOps4.AIOps5.总结6.参考0.前言近年来,缩略词“Ops”在IT运营领域中迅速普及,反映了该领域的一系列重要变革。传统的IT操作正在向自动化流程转变,以更高效地改善客户交付。这种转变旨在减少人为干预,增加操作的一致性......
  • Java 异常处理 throws
    Java异常处理throwsJava中异常对象的生成有两种方式:由虚拟机自动生成:程序运行过程中,虚拟机检测到程序发生了问题,那么针对当前代码,就会在后台自动创建一个对应异常类的实例对象并抛出。由开发人员手动创建:new异常类型([实参列表]);,如果创建好的异常对象不抛出对程序......
  • AnyCAD中的Editor示例代码学习1
    AnyCADRapidSDK(ARS)是一个包含三维几何造型、图形显示、数据管理等模块综合三维图形平台,支持Windows、Linux、MacOS多操作系统,支持.NET、Python、Java多开发语言,可以用于开发CAD/CAE/CAM/SIM应用程序,用于机械、建筑、电力、教育、机器人、科学计算等领域。目前计划基于Anyc......
  • 【ACM珠海分会、广州番职学院主办;IEEE Fellow、高校校长院长加盟!IEEE-CPS独立出版,EI快
    【ACM珠海分会、广州番职学院主办,IEEE-CPS独立出版】第四届管理科学和软件工程国际学术会议(ICMSSE2024)由ACM珠海分会,广州番禺职业技术学院主办;全国区块链行业产教融合共同体承办,将于2024年7月19-21日于广州召开。会议旨在为从事管理与软件工程领域的专家学者、工程技术人员......
  • 【IEEE独立出版,浙江工业大学主办 | CISAT往届均已完成见刊EI Compendex,Scopus检索,会议
    2024年计算机应用与计算机图形学国际学术会议(CACG2024)将于2024年7月12-14日在中国·杭州召开,该会议作为第七届计算机信息科学与应用技术国际学术会议(CISAT2024)分会场召开。会议由浙江工业大学主办、浙江工业大学计算机科学与技术学院承办。会议旨在为从事计算机应用与计算机......
  • 源代码管理工具介绍:Github
    GitHub是一个广泛使用的源代码管理工具,基于Git版本控制系统。它提供了丰富的功能,使开发者能够轻松地进行代码管理、协作和项目管理。以下是我对GitHub的介绍,包括了它的使用方法和优点:使用方法创建GitHub账户要使用GitHub,首先需要创建一个账户。访问GitHub官网,点击“......
  • 面试官:说说Netty的核心组件?
    Netty核心组件是指Netty在执行过程中所涉及到的重要概念,这些核心组件共同组成了Netty框架,使Netty框架能够正常的运行。Netty核心组件包含以下内容:启动器Bootstrap/ServerBootstrap事件循环器EventLoopGroup/EventLoop通道Channel通道处理器ChannelHandler通道......