コード例 #1
0
from qcldm.crystal_format.crystal_meta import CrystalMeta
from qcldm.util.log_colorizer import init_log
from qcldm.util.xyz_format import write_xyz
from qcldm.structures.cluster_embedding import Cluster
from qcldm.structures.bader_reader import read_baders
from qcldm.structures.atom_vector import AtomKeys

init_log(sys.argv)

c = CrystalMeta()
c.load('.')

co = CrystalOut.from_file(c.out_file)
dcm = CrystalMatrix.from_file(c.dm_file, co.cell, CrystalMatrix.DENSITY, 1e-3)
ocm = CrystalMatrix.from_file(c.olp_file, co.cell, CrystalMatrix.OVERLAP, 1e-3)
write_xyz(co.cell.cell, 'cell.xyz')
#write_xyz(cm.cell.supercell, 'supercell.xyz')

read_baders(co.cell)

num = int(sys.argv[1])
layers = int(sys.argv[2])
electro = int(sys.argv[3])
center = co.cell.cell[num - 1]
centers = [center]

tmpshells = co.cell.neighbours.neighbours_cluster(centers, 2)
for a in tmpshells[-1]:
    if a.name() != center.name():
        centers.append(a)
コード例 #2
0
ファイル: cluster_cutter.py プロジェクト: dlmv/qcldm
#!/usr/bin/python
import re, sys, math, logging
sys.dont_write_bytecode = True

from qcldm.openmx_format.dat_format import DAT_INPUT
from qcldm.applications.openmx_rewriter import rewrite_files
from qcldm.util.log_colorizer import init_log
from qcldm.util.xyz_format import write_xyz
from qcldm.matrix.matrix_reader import read_matrices
from qcldm.structures.cluster_embedding import Cluster
from qcldm.structures.bader_reader import read_baders

init_log(sys.argv)

d = DAT_INPUT.from_file('temporal_12345.input')
write_xyz(d.cell.cell, 'cell.xyz')

read_baders(d.cell)

dm, olp, atoms = read_matrices(d.cell, 1e-3)

num = int(sys.argv[1])
layers = int(sys.argv[2])
electro = int(sys.argv[3])

centers = [d.cell.cell[num - 1]]

cluster = Cluster(d.cell, centers, layers, electro)
cluster.estimate_charges(dm, olp)

dirname = "cluster%d_%d_%d" % (num, layers, electro)
コード例 #3
0
sys.dont_write_bytecode = True

from qcldm.crystal_format.crystal_out import CrystalOut
from qcldm.util.log_colorizer import init_log
from qcldm.util.xyz_format import write_xyz
from qcldm.structures.cluster_embedding import Cluster
from qcldm.structures.atom_vector import AtomKeys

init_log(sys.argv)

co = CrystalOut.from_file('out')
for a in co.cell.atoms:
    if a.name() == 'Yb':
        a.data()[AtomKeys.ESTIMATED_VALENCE] = 3
        a.data()[AtomKeys.ESTIMATED_CHARGE] = 3
write_xyz(co.cell.cell, 'cell.xyz')
write_xyz(co.cell.supercell, 'supercell.xyz')

num = int(sys.argv[1])
layers = int(sys.argv[2])
electro = int(sys.argv[3])

centers = [co.cell.cell[num - 1]]

cluster = Cluster(co.cell, centers, layers, electro)

key = AtomKeys.MULLIKEN_CHARGE

cluster.estimate_charges_dumb(key)

dirname = "cluster_%d_%d_%d" % (num, layers, electro)
コード例 #4
0
ファイル: xenocell.py プロジェクト: dlmv/qcldm
from qcldm.crystal_format.crystal_out import CrystalOut
from qcldm.crystal_format.crystal_meta import CrystalMeta
from qcldm.util.log_colorizer import init_log
from qcldm.util.xyz_format import write_xyz
from qcldm.embedding.cluster import Cluster
from qcldm.embedding.embedding_settings import EmbeddingSettings
from qcldm.structures.bader_reader import read_baders
from qcldm.structures.atom_vector import AtomKeys

init_log(sys.argv)

c = CrystalMeta()
c.load('.')

co = CrystalOut.from_file(c.out_file)
write_xyz(co.cell.cell, 'cell.xyz')
write_xyz(co.cell.supercell, 'supercell.xyz')

atoms = []
vectors = [6.91898051, 6.91898051, 6.06871692]
zero = [-2.3, -3, -2.3]
for a in co.cell.extended_cell(3):
    ok = True
    for k in range(3):
        if a.position()[k] < zero[k] or a.position(
        )[k] >= zero[k] + vectors[k]:
            ok = False
            break
    if ok:
        atoms.append(a)
write_xyz(atoms, 'ortho1.xyz')