Closed ixsluo closed 1 year ago
重复结构判断与记录
判断方法 pymatgen StructureMatcher (找到每批结构,以及其中能量最低的结构) (需要补充)
数据库记录
与rawcol
分开,单独储存uniquecol
表分,但是仍记录其在rawcol
内的_id
{
"_id": ..., # 与rawcol中相同的,焓最低的结构的_id
"formula": ..., # str
"elements": [...],
"nelements": 2,
"natoms": 3,
"pressure": 0.0,
"enthalpy_per_atom": 0.0, # 最低的能量,方便查询
"volume": 0.0, # 方便查询
... # (待补充其他属性)
"cell": 3x3, # 方便直接提取结构 "positions": ndarray, "scaled_positions": ndarray,
"symmetry": { # 可以只储存一个空间群信息 "symprec": 1e-2, "number": 187, "symbol": "P-6m2", }, "rawid": [ # 与该结构对应的rawcol表中所有结构的_id ObjectId(...), ObjectId(...), ] }
为保持rawdata字段与单个结构的字段一致,多frame的放在traj
前缀下,单独储存最后一步结构
判断结构相似性的思路
根据空间群和能量分段,每一段进行判断
定义一个函数, 输入为一批结构{s1,s2,...} 输出为一个字典,{s1:{'origin': True/False, 'same_list': [s2, s5]}}
origin的key是为了判断每一堆相似的结构中取出来哪一个 same_list可以在构建ini opt映射时几种不同的ini都去到同一个opt
判断结构相似性的思路
根据空间群和能量分段,每一段进行判断
定义一个函数, 输入为一批结构{s1,s2,...} 输出为一个字典,{s1:{'origin': True/False, 'same_list': [s2, s5]}}
origin的key是为了判断每一堆相似的结构中取出来哪一个 same_list可以在构建ini opt映射时几种不同的ini都去到同一个opt
最终完成字段见README
Description & Motivation
calydb
数据库,rawcol
表mongodb字段
Pitch
No response
Alternatives
No response
Additional context
随时补充