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'])
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'])
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'])
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'])
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'])
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'])
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'])
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'])