示例#1
0
    def _set_settings(self):
        ConfParser.set_settings(self)
        params = self._parameters

        # Supercell size for fc2
        if params.has_key('dim_extra'):
            self._settings.set_supercell_matrix_extra(params['dim_extra'])

        # Sets of band indices that are summed
        if params.has_key('band_indices'):
            self._settings.set_band_indices(params['band_indices'])

        if params.has_key('mesh_shift'):
            self._settings.set_mesh_shift(params['mesh_shift'])

        # Grid points
        if params.has_key('grid_points'):
            self._settings.set_grid_points(params['grid_points'])

        # Calculate thermal conductivity in BTE-RTA
        if params.has_key('is_bterta'):
            self._settings.set_is_bterta(params['is_bterta'])

        # Calculate linewidths
        if params.has_key('is_linewidth'):
            self._settings.set_is_linewidth(params['is_linewidth'])
        # Tell Normal and Umklapp process apart

        if params.has_key("read_fc2"):
            self._settings.set_read_fc2(params['read_fc2'])

        if params.has_key("read_fc2_extra"):
            self._settings.set_read_fc2_extra(params['read_fc2_extra'])

        # Read gammas from hdf5
        if params.has_key('read_gamma'):
            self._settings.set_read_gamma(params['read_gamma'])

        # Sum partial kappa at q-stars
        if params.has_key('no_kappa_stars'):
            self._settings.set_no_kappa_stars(params['no_kappa_stars'])

        # Temperatures
        if params.has_key('temperature'):
            self._settings.set_temperature(params['temperature'])

        # Write gamma to hdf5
        if params.has_key('write_gamma'):
            self._settings.set_write_gamma(params['write_gamma'])
示例#2
0
    def _set_settings(self):
        ConfParser.set_settings(self)
        params = self._parameters

        # Supercell size for fc2
        if params.has_key('dim_extra'):
            self._settings.set_supercell_matrix_extra(params['dim_extra'])

        # Sets of band indices that are summed
        if params.has_key('band_indices'):
            self._settings.set_band_indices(params['band_indices'])

        if params.has_key('mesh_shift'):
            self._settings.set_mesh_shift(params['mesh_shift'])

        # Grid points
        if params.has_key('grid_points'):
            self._settings.set_grid_points(params['grid_points'])

        # Calculate thermal conductivity in BTE-RTA
        if params.has_key('is_bterta'):
            self._settings.set_is_bterta(params['is_bterta'])

        # Calculate linewidths
        if params.has_key('is_linewidth'):
            self._settings.set_is_linewidth(params['is_linewidth'])
        # Tell Normal and Umklapp process apart

        if params.has_key("read_fc2"):
            self._settings.set_read_fc2(params['read_fc2'])

        if params.has_key("read_fc2_extra"):
            self._settings.set_read_fc2_extra(params['read_fc2_extra'])

        # Read gammas from hdf5
        if params.has_key('read_gamma'):
            self._settings.set_read_gamma(params['read_gamma'])

        # Sum partial kappa at q-stars
        if params.has_key('no_kappa_stars'):
            self._settings.set_no_kappa_stars(params['no_kappa_stars'])

        # Temperatures
        if params.has_key('temperature'):
            self._settings.set_temperature(params['temperature'])

        # Write gamma to hdf5
        if params.has_key('write_gamma'):
            self._settings.set_write_gamma(params['write_gamma'])
示例#3
0
    def _set_settings(self):
        ConfParser.set_settings(self)
        params = self._parameters

        # Supercell dimension for fc2
        if params.has_key('dim_fc2'):
            self._settings.set_phonon_supercell_matrix(params['dim_fc2'])

        # Boundary mean free path for thermal conductivity calculation
        if params.has_key('boundary_mfp'):
            self._settings.set_boundary_mfp(params['boundary_mfp'])

        # Peierls type approximation for squared ph-ph interaction strength
        if params.has_key('constant_averaged_pp_interaction'):
            self._settings.set_constant_averaged_pp_interaction(
                params['constant_averaged_pp_interaction'])

        # Cutoff distance of third-order force constants. Elements where any
        # pair of atoms has larger distance than cut-off distance are set zero.
        if params.has_key('cutoff_fc3_distance'):
            self._settings.set_cutoff_fc3_distance(
                params['cutoff_fc3_distance'])

        # Cutoff distance between pairs of displaced atoms used for supercell
        # creation with displacements and making third-order force constants
        if params.has_key('cutoff_pair_distance'):
            self._settings.set_cutoff_pair_distance(
                params['cutoff_pair_distance'])

        # Grid addresses (sets of three integer values)
        if params.has_key('grid_addresses'):
            self._settings.set_grid_addresses(params['grid_addresses'])

        # Grid points
        if params.has_key('grid_points'):
            self._settings.set_grid_points(params['grid_points'])

        # Atoms are clamped under applied strain in Gruneisen parameter calculation
        if params.has_key('ion_clamped'):
            self._settings.set_ion_clamped(params['ion_clamped'])

        # Calculate thermal conductivity in BTE-RTA
        if params.has_key('is_bterta'):
            self._settings.set_is_bterta(params['is_bterta'])

        # Calculate imaginary part of self energy
        if params.has_key('is_imag_self_energy'):
            self._settings.set_is_imag_self_energy(
                params['is_imag_self_energy'])

        # Calculate lifetime due to isotope scattering
        if params.has_key('is_isotope'):
            self._settings.set_is_isotope(params['is_isotope'])

        # Calculate thermal conductivity in LBTE with Chaput's method
        if params.has_key('is_lbte'):
            self._settings.set_is_lbte(params['is_lbte'])

        # Calculate linewidths
        if params.has_key('is_linewidth'):
            self._settings.set_is_linewidth(params['is_linewidth'])

        # Calculate frequency_shifts
        if params.has_key('is_frequency_shift'):
            self._settings.set_is_frequency_shift(params['is_frequency_shift'])

        # Mass variance parameters
        if params.has_key('mass_variances'):
            self._settings.set_mass_variances(params['mass_variances'])

        # Maximum mean free path
        if params.has_key('max_freepath'):
            self._settings.set_max_freepath(params['max_freepath'])

        # Divisors for mesh numbers
        if params.has_key('mesh_divisors'):
            self._settings.set_mesh_divisors(params['mesh_divisors'][:3])
            if len(params['mesh_divisors']) > 3:
                self._settings.set_coarse_mesh_shifts(
                    params['mesh_divisors'][3:])

        # Cutoff frequency for pseudo inversion of collision matrix
        if params.has_key('pinv_cutoff'):
            self._settings.set_pinv_cutoff(params['pinv_cutoff'])

        # Read phonon-phonon interaction amplitudes from hdf5
        if params.has_key('read_amplitude'):
            self._settings.set_read_amplitude(params['read_amplitude'])

        # Read collision matrix and gammas from hdf5
        if params.has_key('read_collision'):
            self._settings.set_read_collision(params['read_collision'])

        # Read gammas from hdf5
        if params.has_key('read_gamma'):
            self._settings.set_read_gamma(params['read_gamma'])

        # Calculate imag-part self energy with integration weights from gaussian
        # smearing function
        if params.has_key('run_with_g'):
            self._settings.set_run_with_g(params['run_with_g'])

        # Sum partial kappa at q-stars
        if params.has_key('no_kappa_stars'):
            self._settings.set_no_kappa_stars(params['no_kappa_stars'])

        # Scattering event class 1 or 2
        if params.has_key('scattering_event_class'):
            self._settings.set_scattering_event_class(
                params['scattering_event_class'])

        # Temperatures
        if params.has_key('temperatures'):
            self._settings.set_temperatures(params['temperatures'])

        # Use averaged ph-ph interaction
        if params.has_key('average_pp_interaction'):
            self._settings.set_average_pp_interaction(
                params['average_pp_interaction'])

        # Write phonon-phonon interaction amplitudes to hdf5
        if params.has_key('write_amplitude'):
            self._settings.set_write_amplitude(params['write_amplitude'])

        # Write detailed imag-part of self energy to hdf5
        if params.has_key('write_detailed_gamma'):
            self._settings.set_write_detailed_gamma(
                params['write_detailed_gamma'])

        # Write imag-part of self energy to hdf5
        if params.has_key('write_gamma'):
            self._settings.set_write_gamma(params['write_gamma'])

        # Write collision matrix and gammas to hdf5
        if params.has_key('write_collision'):
            self._settings.set_write_collision(params['write_collision'])
示例#4
0
    def _set_settings(self):
        ConfParser.set_settings(self)
        params = self._parameters

        # Is getting least displacements?
        if 'create_displacements' in params:
            if params['create_displacements']:
                self._settings.set_create_displacements('displacements')

        # Supercell dimension for fc2
        if 'dim_fc2' in params:
            self._settings.set_phonon_supercell_matrix(params['dim_fc2'])

        # Boundary mean free path for thermal conductivity calculation
        if 'boundary_mfp' in params:
            self._settings.set_boundary_mfp(params['boundary_mfp'])

        # Peierls type approximation for squared ph-ph interaction strength
        if 'constant_averaged_pp_interaction' in params:
            self._settings.set_constant_averaged_pp_interaction(
                params['constant_averaged_pp_interaction'])

        # Cutoff distance of third-order force constants. Elements where any
        # pair of atoms has larger distance than cut-off distance are set zero.
        if 'cutoff_fc3_distance' in params:
            self._settings.set_cutoff_fc3_distance(
                params['cutoff_fc3_distance'])

        # Cutoff distance between pairs of displaced atoms used for supercell
        # creation with displacements and making third-order force constants
        if 'cutoff_pair_distance' in params:
            self._settings.set_cutoff_pair_distance(
                params['cutoff_pair_distance'])

        # This scale factor is multiplied to frequencies only, i.e., changes
        # frequencies but assumed not to change the physical unit
        if 'frequency_scale_factor' in params:
            self._settings.set_frequency_scale_factor(
                params['frequency_scale_factor'])

        # Gamma unit conversion factor
        if 'gamma_conversion_factor' in params:
            self._settings.set_gamma_conversion_factor(
                params['gamma_conversion_factor'])

        # Grid addresses (sets of three integer values)
        if 'grid_addresses' in params:
            self._settings.set_grid_addresses(params['grid_addresses'])

        # Grid points
        if 'grid_points' in params:
            self._settings.set_grid_points(params['grid_points'])

        # Atoms are clamped under applied strain in Gruneisen parameter calculation
        if 'ion_clamped' in params:
            self._settings.set_ion_clamped(params['ion_clamped'])

        # Calculate thermal conductivity in BTE-RTA
        if 'is_bterta' in params:
            self._settings.set_is_bterta(params['is_bterta'])

        # Calculate frequency_shifts
        if 'is_frequency_shift' in params:
            self._settings.set_is_frequency_shift(params['is_frequency_shift'])

        # Calculate full ph-ph interaction strength for RTA conductivity
        if 'is_full_pp' in params:
            self._settings.set_is_full_pp(params['is_full_pp'])

        # Calculate phonon-Gruneisen parameters
        if 'is_gruneisen' in params:
            self._settings.set_is_gruneisen(params['is_gruneisen'])

        # Calculate imaginary part of self energy
        if 'is_imag_self_energy' in params:
            self._settings.set_is_imag_self_energy(
                params['is_imag_self_energy'])

        # Calculate lifetime due to isotope scattering
        if 'is_isotope' in params:
            self._settings.set_is_isotope(params['is_isotope'])

        # Calculate joint-DOS
        if 'is_joint_dos' in params:
            self._settings.set_is_joint_dos(params['is_joint_dos'])

        # Calculate thermal conductivity in LBTE with Chaput's method
        if 'is_lbte' in params:
            self._settings.set_is_lbte(params['is_lbte'])

        # Calculate linewidths
        if 'is_linewidth' in params:
            self._settings.set_is_linewidth(params['is_linewidth'])

        # Solve reducible collision matrix but not reduced matrix
        if 'is_reducible_collision_matrix' in params:
            self._settings.set_is_reducible_collision_matrix(
                params['is_reducible_collision_matrix'])

        # Symmetrize fc2 by index exchange
        if 'is_symmetrize_fc2' in params:
            self._settings.set_is_symmetrize_fc2(params['is_symmetrize_fc2'])

        # Symmetrize phonon fc3 by index exchange
        if 'is_symmetrize_fc3_q' in params:
            self._settings.set_is_symmetrize_fc3_q(
                params['is_symmetrize_fc3_q'])

        # Symmetrize fc3 by index exchange
        if 'is_symmetrize_fc3_r' in params:
            self._settings.set_is_symmetrize_fc3_r(
                params['is_symmetrize_fc3_r'])

        # Mass variance parameters
        if 'mass_variances' in params:
            self._settings.set_mass_variances(params['mass_variances'])

        # Maximum mean free path
        if 'max_freepath' in params:
            self._settings.set_max_freepath(params['max_freepath'])

        # Divisors for mesh numbers
        if 'mesh_divisors' in params:
            self._settings.set_mesh_divisors(params['mesh_divisors'][:3])
            if len(params['mesh_divisors']) > 3:
                self._settings.set_coarse_mesh_shifts(
                    params['mesh_divisors'][3:])

        # Cutoff frequency for pseudo inversion of collision matrix
        if 'pinv_cutoff' in params:
            self._settings.set_pinv_cutoff(params['pinv_cutoff'])

        # Ph-ph interaction unit conversion factor
        if 'pp_conversion_factor' in params:
            self._settings.set_pp_conversion_factor(
                params['pp_conversion_factor'])

        # Read phonon-phonon interaction amplitudes from hdf5
        if 'read_amplitude' in params:
            self._settings.set_read_amplitude(params['read_amplitude'])

        # Read collision matrix and gammas from hdf5
        if 'read_collision' in params:
            self._settings.set_read_collision(params['read_collision'])

        # Read fc2 from hdf5
        if 'read_fc2' in params:
            self._settings.set_read_fc2(params['read_fc2'])

        # Read fc3 from hdf5
        if 'read_fc3' in params:
            self._settings.set_read_fc3(params['read_fc3'])

        # Read gammas from hdf5
        if 'read_gamma' in params:
            self._settings.set_read_gamma(params['read_gamma'])

        # Read phonons from hdf5
        if 'read_phonon' in params:
            self._settings.set_read_phonon(params['read_phonon'])

        # Calculate imag-part self energy with integration weights from gaussian
        # smearing function
        if 'run_with_g' in params:
            self._settings.set_run_with_g(params['run_with_g'])

        # Sum partial kappa at q-stars
        if 'is_kappa_star' in params:
            self._settings.set_is_kappa_star(params['is_kappa_star'])

        # Scattering event class 1 or 2
        if 'scattering_event_class' in params:
            self._settings.set_scattering_event_class(
                params['scattering_event_class'])

        # Temperatures
        if 'temperatures' in params:
            self._settings.set_temperatures(params['temperatures'])

        # Use averaged ph-ph interaction
        if 'use_ave_pp' in params:
            self._settings.set_use_ave_pp(params['use_ave_pp'])

        # Write phonon-phonon interaction amplitudes to hdf5
        if 'write_amplitude' in params:
            self._settings.set_write_amplitude(params['write_amplitude'])

        # Write detailed imag-part of self energy to hdf5
        if 'write_detailed_gamma' in params:
            self._settings.set_write_detailed_gamma(
                params['write_detailed_gamma'])

        # Write imag-part of self energy to hdf5
        if 'write_gamma' in params:
            self._settings.set_write_gamma(params['write_gamma'])

        # Write collision matrix and gammas to hdf5
        if 'write_collision' in params:
            self._settings.set_write_collision(params['write_collision'])

        # Write all phonons on grid points to hdf5
        if 'write_phonon' in params:
            self._settings.set_write_phonon(params['write_phonon'])
示例#5
0
    def _set_settings(self):
        ConfParser.set_settings(self)
        params = self._parameters

        # Supercell size for fc2
        if params.has_key('dim_extra'):
            self._settings.set_supercell_matrix_extra(params['dim_extra'])

        # Sets of band indices that are summed
        if params.has_key('band_indices'):
            self._settings.set_band_indices(params['band_indices'])

        # Cutoff distance between pairs of displaced atoms used for supercell
        # creation with displacements and making third-order force constants
        if params.has_key('cutoff_pair'):
            self._settings.set_cutoff_pair(
                params['cutoff_pair'])

        # Cutoff distance of third-order force constants. Elements where any
        # pair of atoms has larger distance than cut-off distance are set zero.
        if params.has_key('cutoff_triplet'):
            self._settings.set_cutoff_triplet(params['cutoff_triplet'])

        # Cutoff distance of reciprocal third-order force constants.
        if params.has_key('cutoff_radius'):
            self._settings.set_cutoff_radius(params['cutoff_radius'])

        #Cutoff sigmas for gaussian smearing.
        if params.has_key("cutoff_delta"):
            self._settings.set_cutoff_delta(params["cutoff_delta"])

        # Phonon modes larger than this frequency are ignored.
        if params.has_key('cutoff_hfrequency'):
            self._settings.set_cutoff_hfrequency(params['cutoff_hfrequency'])

        # Phonon modes smaller than this frequency are ignored.
        if params.has_key('cutoff_frequency'):
            self._settings.set_cutoff_frequency(params['cutoff_frequency'])

        # Cutoff lifetime used for thermal conductivity calculation
        if params.has_key('cutoff_lifetime'):
            self._settings.set_cutoff_lifetime(params['cutoff_lifetime'])

        # different lifetime (relative) used for iterative method
        if params.has_key('diff_kappa'):
            self._settings.set_diff_kappa(params['diff_kappa'])

        # Grid points
        if params.has_key('grid_points'):
            self._settings.set_grid_points(params['grid_points'])

        # Atoms are clamped under applied strain in Gruneisen parameter calculation
        if params.has_key('ion_clamped'):
            self._settings.set_ion_clamped(params['ion_clamped'])

        #Solve the Boltzmann Transport Equation Iteratively
        if params.has_key("is_ite"):
            self._settings.set_is_ite(params['is_ite'])

        #Solve the Boltzmann Transport Equation Iteratively using the conjugate gradient method
        if params.has_key("is_ite_cg"):
            self._settings.set_is_ite_cg(params['is_ite_cg'])

        #Get the image self energy for a specific grid point and band index
        if params.has_key("is_ise"):
            self._settings.set_is_ise(params['is_ise'])

        #The maximum iteration steps for the iterative method
        if params.has_key("max_ite"):
            self._settings.set_max_ite(params['max_ite'])

        #The sample length considering phonon boundary scattering
        if params.has_key("length"):
            self._settings.set_length(params['length'])

        # Calculate thermal conductivity in BTE-RTA
        if params.has_key('is_bterta'):
            self._settings.set_is_bterta(params['is_bterta'])

        # Calculate linewidths
        if params.has_key('is_linewidth'):
            self._settings.set_is_linewidth(params['is_linewidth'])
        # Tell Normal and Umklapp process apart
        if params.has_key('nu'):
            self._settings.set_nu(params['nu'])

        if params.has_key("read_fc2"):
            self._settings.set_read_fc2(params['read_fc2'])

        if params.has_key("read_fc2_extra"):
            self._settings.set_read_fc2_extra(params['read_fc2_extra'])

        if params.has_key("read_fc3"):
            self._settings.set_read_fc3(params['read_fc3'])

        # Calculate frequency_shifts
        if params.has_key('is_frequency_shift'):
            self._settings.set_is_frequency_shift(params['is_frequency_shift'])

        # Mass variance parameters
        if params.has_key('mass_variances'):
            self._settings.set_mass_variances(params['mass_variances'])

        # Maximum mean free path
        if params.has_key('max_freepath'):
            self._settings.set_max_freepath(params['max_freepath'])

        # Divisors for mesh numbers
        if params.has_key('mesh_divisors'):
            self._settings.set_mesh_divisors(params['mesh_divisors'][:3])
            if len(params['mesh_divisors']) > 3:
                self._settings.set_coarse_mesh_shifts(
                    params['mesh_divisors'][3:])

        # Multiple sigmas
        if params.has_key('multiple_sigmas'):
            self._settings.set_multiple_sigmas(params['multiple_sigmas'])

        #Adaptive smearing factor
        if params.has_key('adaptive_sigma_step'):
            if params['adaptive_sigma_step'] <= 0:
                print "Error! Step cannot be negative or 0"
                sys.exit(1)
            self._settings.set_adaptive_sigma_step(params['adaptive_sigma_step'])

        if params.has_key('kappa_write_step'):
            self._settings.set_kappa_write_step(params['kappa_write_step'])

        # Read phonon-phonon interaction amplitudes from hdf5
        if params.has_key('read_amplitude'):
            self._settings.set_read_amplitude(params['read_amplitude'])

        # Read gammas from hdf5
        if params.has_key('read_gamma'):
            self._settings.set_read_gamma(params['read_gamma'])
            
        # Sum partial kappa at q-stars
        if params.has_key('no_kappa_stars'):
            self._settings.set_no_kappa_stars(params['no_kappa_stars'])

        # Temperatures
        if params.has_key('temperatures'):
            self._settings.set_temperatures(params['temperatures'])

        # Write phonon-phonon interaction amplitudes to hdf5
        if params.has_key('write_amplitude'):
            self._settings.set_write_amplitude(params['write_amplitude'])

        # Write gamma to hdf5
        if params.has_key('write_gamma'):
            self._settings.set_write_gamma(params['write_gamma'])

        #write triplets to a file
        if params.has_key("write_triplet"):
            self._settings.set_write_triplet(params['write_triplet'])
示例#6
0
    def _set_settings(self):
        ConfParser.set_settings(self)
        params = self._parameters

        # Is getting least displacements?
        if 'create_displacements' in params:
            if params['create_displacements']:
                self._settings.set_create_displacements('displacements')
    
        # Supercell dimension for fc2
        if 'dim_fc2' in params:
            self._settings.set_phonon_supercell_matrix(params['dim_fc2'])

        # Boundary mean free path for thermal conductivity calculation
        if 'boundary_mfp' in params:
            self._settings.set_boundary_mfp(params['boundary_mfp'])

        # Peierls type approximation for squared ph-ph interaction strength
        if 'constant_averaged_pp_interaction' in params:
            self._settings.set_constant_averaged_pp_interaction(
                params['constant_averaged_pp_interaction'])

        # Cutoff distance of third-order force constants. Elements where any 
        # pair of atoms has larger distance than cut-off distance are set zero.
        if 'cutoff_fc3_distance' in params:
            self._settings.set_cutoff_fc3_distance(params['cutoff_fc3_distance'])

        # Cutoff distance between pairs of displaced atoms used for supercell
        # creation with displacements and making third-order force constants
        if 'cutoff_pair_distance' in params:
            self._settings.set_cutoff_pair_distance(
                params['cutoff_pair_distance'])

        # This scale factor is multiplied to frequencies only, i.e., changes 
        # frequencies but assumed not to change the physical unit
        if 'frequency_scale_factor' in params:
            self._settings.set_frequency_scale_factor(
                params['frequency_scale_factor'])

        # Gamma unit conversion factor
        if 'gamma_conversion_factor' in params:
            self._settings.set_gamma_conversion_factor(
                params['gamma_conversion_factor'])

        # Grid addresses (sets of three integer values)
        if 'grid_addresses' in params:
            self._settings.set_grid_addresses(params['grid_addresses'])

        # Grid points
        if 'grid_points' in params:
            self._settings.set_grid_points(params['grid_points'])

        # Atoms are clamped under applied strain in Gruneisen parameter calculation
        if 'ion_clamped' in params:
            self._settings.set_ion_clamped(params['ion_clamped'])

        # Calculate thermal conductivity in BTE-RTA
        if 'is_bterta' in params:
            self._settings.set_is_bterta(params['is_bterta'])

        # Calculate frequency_shifts
        if 'is_frequency_shift' in params:
            self._settings.set_is_frequency_shift(params['is_frequency_shift'])

        # Calculate full ph-ph interaction strength for RTA conductivity
        if 'is_full_pp' in params:
            self._settings.set_is_full_pp(params['is_full_pp'])

        # Calculate phonon-Gruneisen parameters
        if 'is_gruneisen' in params:
            self._settings.set_is_gruneisen(params['is_gruneisen'])

        # Calculate imaginary part of self energy
        if 'is_imag_self_energy' in params:
            self._settings.set_is_imag_self_energy(params['is_imag_self_energy'])

        # Calculate lifetime due to isotope scattering
        if 'is_isotope' in params:
            self._settings.set_is_isotope(params['is_isotope'])

        # Calculate joint-DOS
        if 'is_joint_dos' in params:
            self._settings.set_is_joint_dos(params['is_joint_dos'])

        # Calculate thermal conductivity in LBTE with Chaput's method
        if 'is_lbte' in params:
            self._settings.set_is_lbte(params['is_lbte'])

        # Calculate linewidths
        if 'is_linewidth' in params:
            self._settings.set_is_linewidth(params['is_linewidth'])

        # Solve reducible collision matrix but not reduced matrix
        if 'is_reducible_collision_matrix' in params:
            self._settings.set_is_reducible_collision_matrix(
                params['is_reducible_collision_matrix'])

        # Symmetrize fc2 by index exchange
        if 'is_symmetrize_fc2' in params:
            self._settings.set_is_symmetrize_fc2(params['is_symmetrize_fc2'])

        # Symmetrize phonon fc3 by index exchange
        if 'is_symmetrize_fc3_q' in params:
            self._settings.set_is_symmetrize_fc3_q(params['is_symmetrize_fc3_q'])

        # Symmetrize fc3 by index exchange
        if 'is_symmetrize_fc3_r' in params:
            self._settings.set_is_symmetrize_fc3_r(params['is_symmetrize_fc3_r'])

        # Mass variance parameters
        if 'mass_variances' in params:
            self._settings.set_mass_variances(params['mass_variances'])

        # Maximum mean free path
        if 'max_freepath' in params:
            self._settings.set_max_freepath(params['max_freepath'])

        # Divisors for mesh numbers
        if 'mesh_divisors' in params:
            self._settings.set_mesh_divisors(params['mesh_divisors'][:3])
            if len(params['mesh_divisors']) > 3:
                self._settings.set_coarse_mesh_shifts(
                    params['mesh_divisors'][3:])

        # Cutoff frequency for pseudo inversion of collision matrix
        if 'pinv_cutoff' in params:
            self._settings.set_pinv_cutoff(params['pinv_cutoff'])

        # Ph-ph interaction unit conversion factor
        if 'pp_conversion_factor' in params:
            self._settings.set_pp_conversion_factor(params['pp_conversion_factor'])

        # Read phonon-phonon interaction amplitudes from hdf5
        if 'read_amplitude' in params:
            self._settings.set_read_amplitude(params['read_amplitude'])

        # Read collision matrix and gammas from hdf5
        if 'read_collision' in params:
            self._settings.set_read_collision(params['read_collision'])

        # Read fc2 from hdf5
        if 'read_fc2' in params:
            self._settings.set_read_fc2(params['read_fc2'])
            
        # Read fc3 from hdf5
        if 'read_fc3' in params:
            self._settings.set_read_fc3(params['read_fc3'])
            
        # Read gammas from hdf5
        if 'read_gamma' in params:
            self._settings.set_read_gamma(params['read_gamma'])
            
        # Read phonons from hdf5
        if 'read_phonon' in params:
            self._settings.set_read_phonon(params['read_phonon'])

        # Calculate imag-part self energy with integration weights from gaussian
        # smearing function
        if 'run_with_g' in params:
            self._settings.set_run_with_g(params['run_with_g'])
            
        # Sum partial kappa at q-stars
        if 'is_kappa_star' in params:
            self._settings.set_is_kappa_star(params['is_kappa_star'])

        # Scattering event class 1 or 2
        if 'scattering_event_class' in params:
            self._settings.set_scattering_event_class(
                params['scattering_event_class'])

        # Temperatures
        if 'temperatures' in params:
            self._settings.set_temperatures(params['temperatures'])

        # Use averaged ph-ph interaction
        if 'use_ave_pp' in params:
            self._settings.set_use_ave_pp(params['use_ave_pp'])

        # Write phonon-phonon interaction amplitudes to hdf5
        if 'write_amplitude' in params:
            self._settings.set_write_amplitude(params['write_amplitude'])

        # Write detailed imag-part of self energy to hdf5
        if 'write_detailed_gamma' in params:
            self._settings.set_write_detailed_gamma(
                params['write_detailed_gamma'])

        # Write imag-part of self energy to hdf5
        if 'write_gamma' in params:
            self._settings.set_write_gamma(params['write_gamma'])

        # Write collision matrix and gammas to hdf5
        if 'write_collision' in params:
            self._settings.set_write_collision(params['write_collision'])
            
        # Write all phonons on grid points to hdf5
        if 'write_phonon' in params:
            self._settings.set_write_phonon(params['write_phonon'])
示例#7
0
    def _set_settings(self):
        ConfParser.set_settings(self)
        params = self._parameters

        # Supercell dimension for fc2
        if params.has_key('dim_fc2'):
            self._settings.set_phonon_supercell_matrix(params['dim_fc2'])

        # Boundary mean free path for thermal conductivity calculation
        if params.has_key('boundary_mfp'):
            self._settings.set_boundary_mfp(params['boundary_mfp'])

        # Peierls type approximation for squared ph-ph interaction strength
        if params.has_key('constant_averaged_pp_interaction'):
            self._settings.set_constant_averaged_pp_interaction(
                params['constant_averaged_pp_interaction'])

        # Cutoff distance of third-order force constants. Elements where any 
        # pair of atoms has larger distance than cut-off distance are set zero.
        if params.has_key('cutoff_fc3_distance'):
            self._settings.set_cutoff_fc3_distance(params['cutoff_fc3_distance'])

        # Cutoff distance between pairs of displaced atoms used for supercell
        # creation with displacements and making third-order force constants
        if params.has_key('cutoff_pair_distance'):
            self._settings.set_cutoff_pair_distance(
                params['cutoff_pair_distance'])

        # Grid addresses (sets of three integer values)
        if params.has_key('grid_addresses'):
            self._settings.set_grid_addresses(params['grid_addresses'])

        # Grid points
        if params.has_key('grid_points'):
            self._settings.set_grid_points(params['grid_points'])

        # Atoms are clamped under applied strain in Gruneisen parameter calculation
        if params.has_key('ion_clamped'):
            self._settings.set_ion_clamped(params['ion_clamped'])

        # Calculate thermal conductivity in BTE-RTA
        if params.has_key('is_bterta'):
            self._settings.set_is_bterta(params['is_bterta'])

        # Calculate lifetime due to isotope scattering
        if params.has_key('is_isotope'):
            self._settings.set_is_isotope(params['is_isotope'])

        # Calculate thermal conductivity in LBTE with Chaput's method
        if params.has_key('is_lbte'):
            self._settings.set_is_lbte(params['is_lbte'])

        # Calculate linewidths
        if params.has_key('is_linewidth'):
            self._settings.set_is_linewidth(params['is_linewidth'])

        # Calculate frequency_shifts
        if params.has_key('is_frequency_shift'):
            self._settings.set_is_frequency_shift(params['is_frequency_shift'])

        # Mass variance parameters
        if params.has_key('mass_variances'):
            self._settings.set_mass_variances(params['mass_variances'])

        # Maximum mean free path
        if params.has_key('max_freepath'):
            self._settings.set_max_freepath(params['max_freepath'])

        # Divisors for mesh numbers
        if params.has_key('mesh_divisors'):
            self._settings.set_mesh_divisors(params['mesh_divisors'][:3])
            if len(params['mesh_divisors']) > 3:
                self._settings.set_coarse_mesh_shifts(
                    params['mesh_divisors'][3:])

        # Cutoff frequency for pseudo inversion of collision matrix
        if params.has_key('pinv_cutoff'):
            self._settings.set_pinv_cutoff(params['pinv_cutoff'])

        # Read phonon-phonon interaction amplitudes from hdf5
        if params.has_key('read_amplitude'):
            self._settings.set_read_amplitude(params['read_amplitude'])

        # Read gammas from hdf5
        if params.has_key('read_gamma'):
            self._settings.set_read_gamma(params['read_gamma'])
            
        # Read collision matrix and gammas from hdf5
        if params.has_key('read_collision'):
            self._settings.set_read_collision(params['read_collision'])
            
        # Sum partial kappa at q-stars
        if params.has_key('no_kappa_stars'):
            self._settings.set_no_kappa_stars(params['no_kappa_stars'])

        # Scattering event class 1 or 2
        if params.has_key('scattering_event_class'):
            self._settings.set_scattering_event_class(
                params['scattering_event_class'])

        # Temperatures
        if params.has_key('temperatures'):
            self._settings.set_temperatures(params['temperatures'])

        # Use averaged ph-ph interaction
        if params.has_key('average_pp_interaction'):
            self._settings.set_average_pp_interaction(
                params['average_pp_interaction'])

        # Write phonon-phonon interaction amplitudes to hdf5
        if params.has_key('write_amplitude'):
            self._settings.set_write_amplitude(params['write_amplitude'])

        # Write gammas to hdf5
        if params.has_key('write_gamma'):
            self._settings.set_write_gamma(params['write_gamma'])

        # Write collision matrix and gammas to hdf5
        if params.has_key('write_collision'):
            self._settings.set_write_collision(params['write_collision'])
示例#8
0
    def _set_settings(self):
        ConfParser.set_settings(self)
        params = self._parameters

        # Supercell size for fc2
        if params.has_key('dim_extra'):
            self._settings.set_supercell_matrix_extra(params['dim_extra'])

        # Sets of band indices that are summed
        if params.has_key('band_indices'):
            self._settings.set_band_indices(params['band_indices'])

        # Cutoff distance between pairs of displaced atoms used for supercell
        # creation with displacements and making third-order force constants
        if params.has_key('cutoff_pair'):
            self._settings.set_cutoff_pair(params['cutoff_pair'])

        # Cutoff distance of third-order force constants. Elements where any
        # pair of atoms has larger distance than cut-off distance are set zero.
        if params.has_key('cutoff_triplet'):
            self._settings.set_cutoff_triplet(params['cutoff_triplet'])

        # Cutoff distance of reciprocal third-order force constants.
        if params.has_key('cutoff_radius'):
            self._settings.set_cutoff_radius(params['cutoff_radius'])

        #Cutoff sigmas for gaussian smearing.
        if params.has_key("cutoff_delta"):
            self._settings.set_cutoff_delta(params["cutoff_delta"])

        # Phonon modes larger than this frequency are ignored.
        if params.has_key('cutoff_hfrequency'):
            self._settings.set_cutoff_hfrequency(params['cutoff_hfrequency'])

        # Phonon modes smaller than this frequency are ignored.
        if params.has_key('cutoff_frequency'):
            self._settings.set_cutoff_frequency(params['cutoff_frequency'])

        # Cutoff lifetime used for thermal conductivity calculation
        if params.has_key('cutoff_lifetime'):
            self._settings.set_cutoff_lifetime(params['cutoff_lifetime'])

        # different lifetime (relative) used for iterative method
        if params.has_key('diff_kappa'):
            self._settings.set_diff_kappa(params['diff_kappa'])

        # Grid points
        if params.has_key('grid_points'):
            self._settings.set_grid_points(params['grid_points'])

        # Atoms are clamped under applied strain in Gruneisen parameter calculation
        if params.has_key('ion_clamped'):
            self._settings.set_ion_clamped(params['ion_clamped'])

        #Solve the Boltzmann Transport Equation Iteratively
        if params.has_key("is_ite"):
            self._settings.set_is_ite(params['is_ite'])

        #Solve the Boltzmann Transport Equation Iteratively using the conjugate gradient method
        if params.has_key("is_ite_cg"):
            self._settings.set_is_ite_cg(params['is_ite_cg'])

        #Get the image self energy for a specific grid point and band index
        if params.has_key("is_ise"):
            self._settings.set_is_ise(params['is_ise'])

        #The maximum iteration steps for the iterative method
        if params.has_key("max_ite"):
            self._settings.set_max_ite(params['max_ite'])

        #The sample length considering phonon boundary scattering
        if params.has_key("length"):
            self._settings.set_length(params['length'])

        # Calculate thermal conductivity in BTE-RTA
        if params.has_key('is_bterta'):
            self._settings.set_is_bterta(params['is_bterta'])

        # Calculate linewidths
        if params.has_key('is_linewidth'):
            self._settings.set_is_linewidth(params['is_linewidth'])
        # Tell Normal and Umklapp process apart
        if params.has_key('nu'):
            self._settings.set_nu(params['nu'])

        if params.has_key("read_fc2"):
            self._settings.set_read_fc2(params['read_fc2'])

        if params.has_key("read_fc2_extra"):
            self._settings.set_read_fc2_extra(params['read_fc2_extra'])

        if params.has_key("read_fc3"):
            self._settings.set_read_fc3(params['read_fc3'])

        # Calculate frequency_shifts
        if params.has_key('is_frequency_shift'):
            self._settings.set_is_frequency_shift(params['is_frequency_shift'])

        # Mass variance parameters
        if params.has_key('mass_variances'):
            self._settings.set_mass_variances(params['mass_variances'])

        # Maximum mean free path
        if params.has_key('max_freepath'):
            self._settings.set_max_freepath(params['max_freepath'])

        # Divisors for mesh numbers
        if params.has_key('mesh_divisors'):
            self._settings.set_mesh_divisors(params['mesh_divisors'][:3])
            if len(params['mesh_divisors']) > 3:
                self._settings.set_coarse_mesh_shifts(
                    params['mesh_divisors'][3:])

        # Multiple sigmas
        if params.has_key('multiple_sigmas'):
            self._settings.set_multiple_sigmas(params['multiple_sigmas'])

        #Adaptive smearing factor
        if params.has_key('adaptive_sigma_step'):
            if params['adaptive_sigma_step'] <= 0:
                print "Error! Step cannot be negative or 0"
                sys.exit(1)
            self._settings.set_adaptive_sigma_step(
                params['adaptive_sigma_step'])

        if params.has_key('kappa_write_step'):
            self._settings.set_kappa_write_step(params['kappa_write_step'])

        # Read phonon-phonon interaction amplitudes from hdf5
        if params.has_key('read_amplitude'):
            self._settings.set_read_amplitude(params['read_amplitude'])

        # Read gammas from hdf5
        if params.has_key('read_gamma'):
            self._settings.set_read_gamma(params['read_gamma'])

        # Sum partial kappa at q-stars
        if params.has_key('no_kappa_stars'):
            self._settings.set_no_kappa_stars(params['no_kappa_stars'])

        # Temperatures
        if params.has_key('temperatures'):
            self._settings.set_temperatures(params['temperatures'])

        # Write phonon-phonon interaction amplitudes to hdf5
        if params.has_key('write_amplitude'):
            self._settings.set_write_amplitude(params['write_amplitude'])

        # Write gamma to hdf5
        if params.has_key('write_gamma'):
            self._settings.set_write_gamma(params['write_gamma'])

        #write triplets to a file
        if params.has_key("write_triplet"):
            self._settings.set_write_triplet(params['write_triplet'])
示例#9
0
    def _set_settings(self):
        ConfParser.set_settings(self)
        params = self._parameters

        # Supercell size for fc2
        if params.has_key('dim_extra'):
            self._settings.set_phonon_supercell_matrix(params['dim_extra'])

        # Cutoff distance of third-order force constants. Elements where any 
        # pair of atoms has larger distance than cut-off distance are set zero.
        if params.has_key('cutoff_fc3_distance'):
            self._settings.set_cutoff_fc3_distance(params['cutoff_fc3_distance'])

        # Cutoff distance between pairs of displaced atoms used for supercell
        # creation with displacements and making third-order force constants
        if params.has_key('cutoff_pair_distance'):
            self._settings.set_cutoff_pair_distance(
                params['cutoff_pair_distance'])

        # Phonon modes below this frequency are ignored.
        if params.has_key('cutoff_frequency'):
            self._settings.set_cutoff_frequency(params['cutoff_frequency'])

        # Cutoff lifetime used for thermal conductivity calculation
        if params.has_key('cutoff_lifetime'):
            self._settings.set_cutoff_lifetime(params['cutoff_lifetime'])

        # Grid points
        if params.has_key('grid_points'):
            self._settings.set_grid_points(params['grid_points'])

        # Atoms are clamped under applied strain in Gruneisen parameter calculation
        if params.has_key('ion_clamped'):
            self._settings.set_ion_clamped(params['ion_clamped'])

        # Calculate thermal conductivity in BTE-RTA
        if params.has_key('is_bterta'):
            self._settings.set_is_bterta(params['is_bterta'])

        # Calculate thermal conductivity in LBTE with Chaput's method
        if params.has_key('is_lbte'):
            self._settings.set_is_lbte(params['is_lbte'])

        # Calculate linewidths
        if params.has_key('is_linewidth'):
            self._settings.set_is_linewidth(params['is_linewidth'])

        # Calculate frequency_shifts
        if params.has_key('is_frequency_shift'):
            self._settings.set_is_frequency_shift(params['is_frequency_shift'])

        # Mass variance parameters
        if params.has_key('mass_variances'):
            self._settings.set_mass_variances(params['mass_variances'])

        # Maximum mean free path
        if params.has_key('max_freepath'):
            self._settings.set_max_freepath(params['max_freepath'])

        # Divisors for mesh numbers
        if params.has_key('mesh_divisors'):
            self._settings.set_mesh_divisors(params['mesh_divisors'][:3])
            if len(params['mesh_divisors']) > 3:
                self._settings.set_coarse_mesh_shifts(
                    params['mesh_divisors'][3:])

        # Read phonon-phonon interaction amplitudes from hdf5
        if params.has_key('read_amplitude'):
            self._settings.set_read_amplitude(params['read_amplitude'])

        # Read gammas from hdf5
        if params.has_key('read_gamma'):
            self._settings.set_read_gamma(params['read_gamma'])
            
        # Read collision matrix and gammas from hdf5
        if params.has_key('read_collision'):
            self._settings.set_read_collision(params['read_collision'])
            
        # Sum partial kappa at q-stars
        if params.has_key('no_kappa_stars'):
            self._settings.set_no_kappa_stars(params['no_kappa_stars'])

        # Temperatures
        if params.has_key('temperatures'):
            self._settings.set_temperatures(params['temperatures'])

        # Write phonon-phonon interaction amplitudes to hdf5
        if params.has_key('write_amplitude'):
            self._settings.set_write_amplitude(params['write_amplitude'])

        # Write gammas to hdf5
        if params.has_key('write_gamma'):
            self._settings.set_write_gamma(params['write_gamma'])

        # Write collision matrix and gammas to hdf5
        if params.has_key('write_collision'):
            self._settings.set_write_collision(params['write_collision'])