Example #1
0
def phonons():
    print("Preparing phonons object.")
    forceconstants = ForceConstants.from_folder(
        folder='kaldo/tests/si-crystal', supercell=[3, 3, 3], format='eskm')
    phonons = Phonons(forceconstants=forceconstants,
                      kpts=[5, 5, 5],
                      is_classic=False,
                      temperature=300,
                      storage='memory')
    return phonons
Example #2
0
def phonons():
    print("Preparing phonons object.")
    forceconstants = ForceConstants.from_folder(
        folder='kaldo/tests/si-amorphous', format='eskm')
    phonons = Phonons(forceconstants=forceconstants,
                      is_classic=False,
                      temperature=300,
                      third_bandwidth=1 / 4.135,
                      broadening_shape='triangle',
                      storage='memory')
    return phonons
def phonons():
    print("Preparing phonons object.")

    # Create a finite difference object
    forceconstants = ForceConstants.from_folder(
        folder='kaldo/tests/si-amorphous', format='eskm')

    # # Create a phonon object
    phonons = Phonons(forceconstants=forceconstants,
                      is_classic=False,
                      storage='memory')
    return phonons
Example #4
0
def phonons():
    print("Preparing phonons object.")

    # Create a finite difference object
    forceconstants = ForceConstants.from_folder(
        folder='kaldo/tests/si-amorphous', format='eskm')

    # # Create a phonon object
    phonons = Phonons(forceconstants=forceconstants,
                      is_classic=True,
                      temperature=300,
                      third_bandwidth=0.05 / 4.135,
                      storage='memory')
    return phonons
def phonons():
    print("Preparing phonons object.")
    forceconstants = ForceConstants.from_folder(
        folder='kaldo/tests/si-crystal', supercell=[3, 3, 3], format='eskm')
    phonons_config = {
        'kpts': [5, 5, 5],
        'is_classic': 0,
        'temperature': 300,
        'folder': 'ald',
        'storage': 'memory',
        'third_bandwidth': .1,
        'broadening_shape': 'gauss',
        'is_balanced': True,
        'grid_type': 'C'
    }

    phonons = Phonons(forceconstants=forceconstants, **phonons_config)
    return phonons
Example #6
0
# Import necessary packages

from ase.io import read
from kaldo.conductivity import Conductivity
from kaldo.forceconstants import ForceConstants
from kaldo.phonons import Phonons
import numpy as np

### Set up force constant objects via interface to LAMMPS ####

# Replicate the unit cell 'nrep'=1 time
nrep = 1
supercell = np.array([nrep, nrep, nrep])

# Load in computed 2nd, 3rd IFCs from LAMMPS outputs
forceconstants = ForceConstants.from_folder(folder='fc_aSi512',supercell=supercell,format='lammps')


# Configure phonon object
# 'is_classic': specify if the system is classic, True for classical and False for quantum
# 'temperature: temperature (Kelvin) at which simulation is performed
# 'folder': name of folder containing phonon property and thermal conductivity calculations
# 'storage': Format to storage phonon properties ('formatted' for ASCII format data, 'numpy' 
#            for python numpy array and 'memory' for quick calculations, no data stored)

phonons_config = {'is_classic': False, 
                  'temperature': 300, #'temperature'=300K
                  'folder': 'ALD_aSi512',
                   'third_bandwidth':0.5/4.135, # 0.5 eV is used here.
                   'broadening_shape':'triangle',
		   'storage': 'numpy'}
Example #7
0
from kaldo.conductivity import Conductivity
from kaldo.controllers import plotter
from kaldo.forceconstants import ForceConstants
from kaldo.phonons import Phonons
from kaldo.helpers.storage import get_folder_from_label
import numpy as np
import matplotlib.pyplot as plt
import os

plt.style.use('seaborn-poster')

# Config force constants object by loading in the IFCs
# from hiPhive calculations
forceconstants = ForceConstants.from_folder('hiPhive_si_bulk',
                                            supercell=[3, 3, 3],
                                            format='hiphive')

### Set up the phonon object and the anharmonic properties calculations ####

# Configure phonon object
# 'k_points': number of k-points
# 'is_classic': specify if the system is classic, True for classical and False for quantum
# 'temperature: temperature (Kelvin) at which simulation is performed
# 'folder': name of folder containing phonon property and thermal conductivity calculations
# 'storage': Format to storage phonon properties ('formatted' for ASCII format data, 'numpy'
#            for python numpy array and 'memory' for quick calculations, no data stored)

# Define the k-point mesh using 'kpts' parameter
k_points = 5  # 'k_points'=5 k points in each direction
phonons_config = {
Example #8
0
from ase.io import read
from kaldo.forceconstants import ForceConstants
from kaldo.phonons import Phonons
import matplotlib.pyplot as plt
import numpy as np

# Ballistico can config the finite difference object
# straightly from the docsource folder. Currently support
# format includes "eskm", "hiphive", "shengbte" and "shengbte-qe"

forceconstants = ForceConstants.from_folder(folder='structure_a_si_512',
                                            format='eskm')

# Here we will demonstrate the effect of band widths on the lifetimes. The effect will be shown for each
# broadening shape (a for loop is used in the name of efficiency). The graphs will be constructed here as well.
# Please see the preceeding section on shapes for a more in depth explanation.

shapes = ['triangle', 'gauss', 'lorentz']
labels = ['Triangle', 'Gaussian', 'Lorentzian']

# Initialize the string for phonon with one of the
# three bandwidths to perform the simulation

simulation_bandwidth_str = 'Gaussian'
index = np.where(simulation_bandwidth_str == np.array(labels))[0]

# Compute phonon bandwith with different widths, in the unit of THz

widths = [0.5 / 4.135, 1 / 4.135]
widths_l = [.121, .242]
plt.figure(figsize=(16, 12))
Example #9
0
from kaldo.controllers import plotter
from kaldo.forceconstants import ForceConstants
from kaldo.conductivity import Conductivity
from kaldo.phonons import Phonons

fold = 'ald'
kpts = [5, 5, 5]
supercell = [5, 5, 5]
temperature = 300
folder = 'fc'

forceconstant = ForceConstants.from_folder(folder=folder,
                                           supercell=[5, 5, 5],
                                           format='shengbte-qe')

for k in [5]:
    kpts = [k, k, k]

    phonons = Phonons(forceconstants=forceconstant,
                      kpts=kpts,
                      is_classic=False,
                      temperature=300,
                      folder='ald',
                      is_tf_backend=True,
                      grid_type='C')

    print('Inverse conductivity W/m/K')
    print(
        Conductivity(phonons=phonons, method='inverse',
                     storage='memory').conductivity.sum(axis=0))
Example #10
0
from kaldo.forceconstants import ForceConstants
from kaldo.phonons import Phonons
import matplotlib.pyplot as plt
from kaldo.conductivity import Conductivity
from ase.io import read
import numpy as np

supercell = np.array([3, 3, 3])
# forceconstants = ForceConstants.import_from_dlpoly_folder('si-dlpoly', supercell)


forceconstants = ForceConstants.from_folder('structures', supercell=supercell, format='lammps')

k = 5
kpts = [k, k, k]
is_classic = False
temperature = 300

# # Create a phonon object
phonons = Phonons(forceconstants=forceconstants,
                  kpts=kpts,
                  is_classic=is_classic,
                  temperature=temperature)

print('AF conductivity')
print(Conductivity(phonons=phonons, method='qhgk').conductivity.sum(axis=0))

plt.scatter(phonons.frequency.flatten()[3:], phonons.bandwidth.flatten()[3:], s=5)
plt.ylabel('gamma_THz', fontsize=16, fontweight='bold')
plt.xlabel("$\\nu$ (Thz)", fontsize=16, fontweight='bold')
plt.show()