如何将3×3数据点转换为指定矩阵格式并实现矩阵求和
VASP OUTCAR介电张量后处理
原始输出说明
执行终端命令:
grep ' MACROSCOPIC STATIC DIELECTRIC TENSOR' -A6 OUTCAR
会得到三个矩阵输出(标注matrix(i)为便于区分,实际无编号):
MACROSCOPIC STATIC DIELECTRIC TENSOR (including local field effects in DFT) ------------------------------------------------------ 21.231535 -0.000000 -0.000000 ---- matix. (1) -0.000000 21.231535 -0.000000 -0.000000 -0.000000 21.231535 ------------------------------------------------------ -- MACROSCOPIC STATIC DIELECTRIC TENSOR (including local field effects in DFT) ------------------------------------------------------ 21.231535 -0.000000 -0.000000 ---- matix. (2) -0.000000 21.231535 -0.000000 -0.000000 -0.000000 21.231535 ------------------------------------------------------ -- MACROSCOPIC STATIC DIELECTRIC TENSOR IONIC CONTRIBUTION ------------------------------------------------------ 4.671391 -0.000004 0.000000 ---- matix. (3) -0.000004 4.671584 0.000855 0.000000 0.000855 4.670146 ------------------------------------------------------
处理任务1:转换第二个矩阵为指定格式
直接执行以下终端命令,提取第二个矩阵并转换为要求的列表格式:
grep ' MACROSCOPIC STATIC DIELECTRIC TENSOR' -A6 OUTCAR | sed -n '12,14p' | awk '{printf " - [%s, %s, %s]\n", $1, $2, $3}'
输出结果:
- [21.231535, -0.000000, -0.000000] - [-0.000000, 21.231535, -0.000000] - [-0.000000, -0.000000, 21.231535]
处理任务2:第二个矩阵与第三个矩阵对应元素相加
- 创建名为
sum_dielectric.awk的脚本文件,内容如下:
BEGIN { # 跳过冗余行,读取第二个矩阵的3行数据 for (skip=1; skip<=11; skip++) getline; for (i=1; i<=3; i++) { getline; mat2[i][1] = $1; mat2[i][2] = $2; mat2[i][3] = $3; } # 跳过冗余行,读取第三个矩阵的3行数据 for (skip=1; skip<=6; skip++) getline; for (i=1; i<=3; i++) { getline; mat3[i][1] = $1; mat3[i][2] = $2; mat3[i][3] = $3; } # 计算元素和并按格式输出 for (i=1; i<=3; i++) { printf " - [%.6f, %.6f, %.6f]\n", mat2[i][1]+mat3[i][1], mat2[i][2]+mat3[i][2], mat2[i][3]+mat3[i][3]; } }
- 执行以下终端命令运行脚本:
grep ' MACROSCOPIC STATIC DIELECTRIC TENSOR' -A6 OUTCAR | awk -f sum_dielectric.awk
输出结果:
- [25.902926, -0.000004, -0.000000] - [-0.000004, 25.903119, -0.000855] - [-0.000000, -0.000855, 25.901681]
内容的提问来源于stack exchange,提问作者rekha
相关产品推荐
相关产品推荐

