#!/usr/bin/env python
import string
from math import log10
from optparse import OptionParser
from Dacapo import Dacapo
from ASE.IO.Cube import WriteCube
cmd = OptionParser(usage = '%prog input_nc_file output_cube_file')
(opt, argv) = cmd.parse_args()
if len(argv) != 2:
    raise SystemExit
ncfile = argv[0]
cubefile = argv[1]
basename = string.split(cubefile, '.cube')
model = Dacapo.ReadAtoms(ncfile)
calculator = model.GetCalculator()
if not calculator.GetSpinPolarized():
  filename_total= basename[0] + '.cube'
  filename_total= basename[0] + '_total.cube'
  filename_diff= basename[0] + '_diff.cube'
  filename_spin0= basename[0] + '_spin0.cube'
  filename_spin1= basename[0] + '_spin1.cube'
  density0 = calculator.GetDensityArray(spin = 0)
  density1 = calculator.GetDensityArray(spin = 1)
  WriteCube(model, density0, filename_spin0)
  WriteCube(model, density1, filename_spin1)
  diff = density1 - density0
  WriteCube(model, diff, filename_diff)
density = calculator.GetDensityArray()
WriteCube(model, density, filename_total)


$ gettotaldensity 
usage: gettotaldensity input_nc_file output_cube_file
  -h, --help  show this help message and exit
script/gettotaldensity.txt · 最終更新: 2009/02/01 00:48 by kimi Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0