【FCC】截断数组

本文介绍了一个简单的JavaScript函数,用于从数组的开头截断指定数量的元素,并返回剩余部分。使用了Array.slice()方法来实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求:

返回一个数组被截断n个元素后还剩余的元素,截断从索引0开始。

JavaScript实现
function slasher(arr, howMany) {  
  return arr.slice(howMany);
}
用到的资源

Array.slice()
Array.splice()

如有错误,或其他更好的建议,请在评论区指正,谢谢

import numpy as np from scipy.spatial.transform import Rotation as R def generate_fcc_supercell(n, a): """生成FCC超胞(优化版)""" base_grid = np.indices((n, n, n)).reshape(3, -1).T * a offsets = np.array([[0.0,0.0,0.0], [0.5,0.5,0.0], [0.5,0.0,0.5], [0.0,0.5,0.5]]) * a return (base_grid[:, np.newaxis, :] + offsets).reshape(-1, 3) def is_inside_truncated_octahedron(pos, s): """修正后的截角八面体判断条件""" x, y, z = np.abs(pos) return (x <= 2*s and y <= 2*s and z <= 2*s and (x + y + z) <= 3*s) def main(): # 参数配置 a = 3.635 # Cu的FCC晶格常数(Å) n = 16 # 超胞重复次数(需满足n*a > 4*s) s = 12.0 # 截角八面体特征尺寸(Å) center = np.array([n*a/2]*3) # 几何中心 # 旋转设置(示例:绕[1,1,1]轴旋转55°) rotation = R.from_rotvec(np.radians(0)*np.array([0,0,1])/np.sqrt(3)) # 生成超胞 print("生成FCC超胞...") atoms = generate_fcc_supercell(n, a) print(f"总原子数: {len(atoms):,}") # 坐标变换与筛选 print("执行几何过滤...") kept_atoms = [] for atom in atoms: # 坐标系变换流程 translated = atom - center rotated = rotation.inv().apply(translated) # 逆向旋转坐标系 if is_inside_truncated_octahedron(rotated, s): kept_atoms.append(atom) print(f"保留原子数: {len(kept_atoms):,} (占比{len(kept_atoms)/len(atoms):.2%})") # 写入POSCAR(带标准化坐标) print("生成POSCAR...") with open("POSCAR_Cu_TO", "w") as f: f.write("Cu Truncated Octahedron\n1.0\n") # 晶胞矢量(正交盒子,包含全部原子) f.write(f"{n*a:.9f} 0.000000000 0.000000000\n") f.write(f"0.000000000 {n*a:.9f} 0.000000000\n") f.write(f"0.000000000 0.000000000 {n*a:.9f}\n") f.write("Cu\n%d\nCartesian\n" % len(kept_atoms)) np.savetxt(f, kept_atoms, fmt="%.9f") if __name__ == "__main__": main() 我这个脚本在截取截角八面体时似乎有点问题,边长并不完全相同
03-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值