def __init__(self, supercell, primitive, mesh, fc2, nac_params=None, nac_q_direction=None, sigmas=None, cutoff_frequency=1e-4, frequency_step=None, num_frequency_points=None, temperatures=None, frequency_factor_to_THz=VaspToTHz, frequency_scale_factor=None, is_mesh_symmetry=True, symprec=1e-5, output_filename=None, log_level=0): if sigmas is None: self._sigmas = [None] else: self._sigmas = sigmas self._supercell = supercell self._primitive = primitive self._mesh = mesh self._fc2 = fc2 self._nac_params = nac_params self._nac_q_direction = nac_q_direction self._cutoff_frequency = cutoff_frequency self._frequency_step = frequency_step self._num_frequency_points = num_frequency_points self._temperatures = temperatures self._frequency_factor_to_THz = frequency_factor_to_THz self._frequency_scale_factor = frequency_scale_factor self._is_mesh_symmetry = is_mesh_symmetry self._symprec = symprec self._filename = output_filename self._log_level = log_level self._jdos = JointDos( self._mesh, self._primitive, self._supercell, self._fc2, nac_params=self._nac_params, nac_q_direction=self._nac_q_direction, cutoff_frequency=self._cutoff_frequency, frequency_step=self._frequency_step, num_frequency_points=self._num_frequency_points, temperatures=self._temperatures, frequency_factor_to_THz=self._frequency_factor_to_THz, frequency_scale_factor=self._frequency_scale_factor, is_mesh_symmetry=self._is_mesh_symmetry, symprec=self._symprec, filename=output_filename, log_level=self._log_level)
def __init__( self, supercell, primitive, mesh, fc2, nac_params=None, nac_q_direction=None, sigmas=None, cutoff_frequency=1e-4, frequency_step=None, num_frequency_points=None, temperatures=None, frequency_factor_to_THz=VaspToTHz, frequency_scale_factor=None, is_mesh_symmetry=True, symprec=1e-5, output_filename=None, log_level=0, ): if sigmas is None: self._sigmas = [None] else: self._sigmas = sigmas self._supercell = supercell self._primitive = primitive self._mesh = mesh self._fc2 = fc2 self._nac_params = nac_params self._nac_q_direction = nac_q_direction self._cutoff_frequency = cutoff_frequency self._frequency_step = frequency_step self._num_frequency_points = num_frequency_points self._temperatures = temperatures self._frequency_factor_to_THz = frequency_factor_to_THz self._frequency_scale_factor = frequency_scale_factor self._is_mesh_symmetry = is_mesh_symmetry self._symprec = symprec self._filename = output_filename self._log_level = log_level self._jdos = JointDos( self._mesh, self._primitive, self._supercell, self._fc2, nac_params=self._nac_params, nac_q_direction=self._nac_q_direction, cutoff_frequency=self._cutoff_frequency, frequency_step=self._frequency_step, num_frequency_points=self._num_frequency_points, temperatures=self._temperatures, frequency_factor_to_THz=self._frequency_factor_to_THz, frequency_scale_factor=self._frequency_scale_factor, is_mesh_symmetry=self._is_mesh_symmetry, symprec=self._symprec, filename=output_filename, log_level=self._log_level, )
def __init__(self, supercell, primitive, mesh, fc2, nac_params=None, sigmas=[], frequency_step=None, frequency_factor_to_THz=VaspToTHz, frequency_scale_factor=None, is_nosym=False, symprec=1e-5, output_filename=None, log_level=0): self._supercell = supercell self._primitive = primitive self._mesh = mesh self._fc2 = fc2 self._nac_params = nac_params self._sigmas = sigmas self._frequency_step = frequency_step self._frequency_factor_to_THz = frequency_factor_to_THz self._frequency_scale_factor = frequency_scale_factor self._is_nosym = is_nosym self._symprec = symprec self._filename = output_filename self._log_level = log_level self._jdos = JointDos( self._mesh, self._primitive, self._supercell, self._fc2, nac_params=self._nac_params, frequency_step=self._frequency_step, frequency_factor_to_THz=self._frequency_factor_to_THz, frequency_scale_factor=self._frequency_scale_factor, is_nosym=self._is_nosym, symprec=self._symprec, filename=output_filename, log_level=self._log_level)
class Phono3pyJointDos: def __init__(self, supercell, primitive, mesh, fc2, nac_params=None, nac_q_direction=None, sigmas=[], cutoff_frequency=1e-4, frequency_step=None, num_frequency_points=None, temperatures=None, frequency_factor_to_THz=VaspToTHz, frequency_scale_factor=None, is_nosym=False, symprec=1e-5, output_filename=None, log_level=0): self._supercell = supercell self._primitive = primitive self._mesh = mesh self._fc2 = fc2 self._nac_params = nac_params self._nac_q_direction = nac_q_direction self._sigmas = sigmas self._cutoff_frequency = cutoff_frequency self._frequency_step = frequency_step self._num_frequency_points = num_frequency_points self._temperatures = temperatures self._frequency_factor_to_THz = frequency_factor_to_THz self._frequency_scale_factor = frequency_scale_factor self._is_nosym = is_nosym self._symprec = symprec self._filename = output_filename self._log_level = log_level self._jdos = JointDos( self._mesh, self._primitive, self._supercell, self._fc2, nac_params=self._nac_params, nac_q_direction=self._nac_q_direction, cutoff_frequency=self._cutoff_frequency, frequency_step=self._frequency_step, num_frequency_points=self._num_frequency_points, temperatures=self._temperatures, frequency_factor_to_THz=self._frequency_factor_to_THz, frequency_scale_factor=self._frequency_scale_factor, is_nosym=self._is_nosym, symprec=self._symprec, filename=output_filename, log_level=self._log_level) def run(self, grid_points): for gp in grid_points: self._jdos.set_grid_point(gp) if self._log_level: weights = self._jdos.get_triplets_at_q()[1] print "--------------------------------- Joint DOS ---------------------------------" print "Grid point: %d" % gp print "Number of ir-triplets:", print "%d / %d" % (len(weights), weights.sum()) adrs = self._jdos.get_grid_address()[gp] q = adrs.astype('double') / self._mesh print "q-point:", q print "Phonon frequency:" frequencies = self._jdos.get_phonons()[0] print frequencies[gp] if self._sigmas: for sigma in self._sigmas: if sigma is None: print "Tetrahedron method" else: print "Sigma:", sigma self._jdos.set_sigma(sigma) self._jdos.run() self._write(gp, sigma=sigma) else: print "sigma or tetrahedron method has to be set." def _write(self, gp, sigma=None): write_joint_dos(gp, self._mesh, self._jdos.get_frequency_points(), self._jdos.get_joint_dos(), sigma=sigma, temperatures=self._temperatures, filename=self._filename, is_nosym=self._is_nosym)
class Phono3pyJointDos: def __init__(self, supercell, primitive, mesh, fc2, nac_params=None, nac_q_direction=None, sigmas=None, cutoff_frequency=1e-4, frequency_step=None, num_frequency_points=None, temperatures=None, frequency_factor_to_THz=VaspToTHz, frequency_scale_factor=None, is_nosym=False, symprec=1e-5, output_filename=None, log_level=0): if sigmas is None: sigmas = [] self._supercell = supercell self._primitive = primitive self._mesh = mesh self._fc2 = fc2 self._nac_params = nac_params self._nac_q_direction = nac_q_direction self._sigmas = sigmas self._cutoff_frequency = cutoff_frequency self._frequency_step = frequency_step self._num_frequency_points = num_frequency_points self._temperatures = temperatures self._frequency_factor_to_THz = frequency_factor_to_THz self._frequency_scale_factor = frequency_scale_factor self._is_nosym = is_nosym self._symprec = symprec self._filename = output_filename self._log_level = log_level self._jdos = JointDos( self._mesh, self._primitive, self._supercell, self._fc2, nac_params=self._nac_params, nac_q_direction=self._nac_q_direction, cutoff_frequency=self._cutoff_frequency, frequency_step=self._frequency_step, num_frequency_points=self._num_frequency_points, temperatures=self._temperatures, frequency_factor_to_THz=self._frequency_factor_to_THz, frequency_scale_factor=self._frequency_scale_factor, is_nosym=self._is_nosym, symprec=self._symprec, filename=output_filename, log_level=self._log_level) def run(self, grid_points): for gp in grid_points: self._jdos.set_grid_point(gp) if self._log_level: weights = self._jdos.get_triplets_at_q()[1] print("--------------------------------- Joint DOS " "---------------------------------") print("Grid point: %d" % gp) print("Number of ir-triplets: " "%d / %d" % (len(weights), weights.sum())) adrs = self._jdos.get_grid_address()[gp] q = adrs.astype('double') / self._mesh print("q-point: %s" % q) print("Phonon frequency:") frequencies = self._jdos.get_phonons()[0] print("%s" % frequencies[gp]) if self._sigmas: for sigma in self._sigmas: if sigma is None: print("Tetrahedron method") else: print("Sigma: %s" % sigma) self._jdos.set_sigma(sigma) self._jdos.run() self._write(gp, sigma=sigma) else: print("sigma or tetrahedron method has to be set.") def _write(self, gp, sigma=None): write_joint_dos(gp, self._mesh, self._jdos.get_frequency_points(), self._jdos.get_joint_dos(), sigma=sigma, temperatures=self._temperatures, filename=self._filename, is_nosym=self._is_nosym)
class Phono3pyJointDos: def __init__(self, supercell, primitive, mesh, fc2, nac_params=None, sigmas=[], frequency_step=None, frequency_factor_to_THz=VaspToTHz, frequency_scale_factor=None, is_nosym=False, symprec=1e-5, output_filename=None, log_level=0): self._supercell = supercell self._primitive = primitive self._mesh = mesh self._fc2 = fc2 self._nac_params = nac_params self._sigmas = sigmas self._frequency_step = frequency_step self._frequency_factor_to_THz = frequency_factor_to_THz self._frequency_scale_factor = frequency_scale_factor self._is_nosym = is_nosym self._symprec = symprec self._filename = output_filename self._log_level = log_level self._jdos = JointDos( self._mesh, self._primitive, self._supercell, self._fc2, nac_params=self._nac_params, frequency_step=self._frequency_step, frequency_factor_to_THz=self._frequency_factor_to_THz, frequency_scale_factor=self._frequency_scale_factor, is_nosym=self._is_nosym, symprec=self._symprec, filename=output_filename, log_level=self._log_level) def run(self, grid_points): for gp in grid_points: self._jdos.set_grid_point(gp) if self._log_level: weights = self._jdos.get_triplets_at_q()[1] print "------ Joint DOS ------" print "Grid point: %d" % gp print "Number of ir-triplets:", print "%d / %d" % (len(weights), weights.sum()) adrs = self._jdos.get_grid_address()[gp] q = adrs.astype('double') / self._mesh print "q-point:", q print "Phonon frequency:" frequencies = self._jdos.get_phonons()[0] print frequencies[gp] if self._sigmas: for sigma in self._sigmas: if sigma is None: print "Tetrahedron method" else: print "Sigma:", sigma self._jdos.set_sigma(sigma) self._jdos.run() self._write(gp, sigma=sigma) else: print "sigma or tetrahedron method has to be set." def _write(self, gp, sigma=None): write_joint_dos(gp, self._mesh, self._jdos.get_frequency_points(), self._jdos.get_joint_dos(), sigma=sigma, filename=self._filename, is_nosym=self._is_nosym)