schrodinger.application.matsci.bandshape_utils module

Utilities for bandshape calculations.

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.matsci.bandshape_utils.NormalMode(frequency, normal_mode)

Bases: tuple

__contains__

Return key in self.

__init__

Initialize self. See help(type(self)) for accurate signature.

__len__

Return len(self).

count(value) → integer -- return number of occurrences of value
frequency

Alias for field number 0

index(value[, start[, stop]]) → integer -- return first index of value.

Raises ValueError if the value is not present.

normal_mode

Alias for field number 1

class schrodinger.application.matsci.bandshape_utils.VibState(index, n_quantum, huang_rhys_f)

Bases: object

__init__(index, n_quantum, huang_rhys_f)

Initialize self. See help(type(self)) for accurate signature.

class schrodinger.application.matsci.bandshape_utils.Transition(index, energy, intensity, initial_vib_states, final_vib_states, max_n_imaginary)

Bases: object

__init__(index, energy, intensity, initial_vib_states, final_vib_states, max_n_imaginary)

Initialize self. See help(type(self)) for accurate signature.

schrodinger.application.matsci.bandshape_utils.is_bs_spectrum_file_key(key)

Return True if the given structure property key is a bandshape spectrum file key.

Parameters:key (str) – the structure property key to check
Return type:bool
Returns:True if the given key is a bandshape spectrum file key
schrodinger.application.matsci.bandshape_utils.get_temp_from_bs_spectrum_file_key(key)

Return the temperature from the given bandshape spectrum file structure property key.

Parameters:key (str) – the structure property key containing the temperature
Return type:float
Returns:the temperature in K
schrodinger.application.matsci.bandshape_utils.get_bs_spectrum_file_temps_keys(struct)

Return the bandshape spectrum file structure property keys and associated temperatures for the given structure.

Parameters:struct (schrodinger.structure.Structure) – the structure with the property keys
Return type:list
Returns:pair tuples of temperatures in K and bandshape spectrum file structure property keys
schrodinger.application.matsci.bandshape_utils.get_transition_type(atable)

Return the transition type of the given table.

Parameters:atable (table.Table) – the table to check
Return type:str or None
Returns:module constant ABSORPTION or EMISSION or None if it is unknown
class schrodinger.application.matsci.bandshape_utils.BandshapeSpectrumFile(data_file_name, spm_file_name, transition_type=None)

Bases: schrodinger.application.matsci.spectra.SpectrumFile

Manage a bandshape spectrum file.

ENERGY_KEY = 'r_j_Excitation_Energy_(eV)'
ENERGY_TITLE = 'Excitation Energy (eV)'
INTENSITY_KEY = 'r_j_Intensity'
INTENSITY_TITLE = 'Intensity'
SYMMETRY_KEY = 's_j_Symmetry'
SYMMETRY_TITLE = 'Symmetry'
SPECTRUM_KEY = 's_j_spectrum_type'
SPECTRUM_TITLE = 'Electronic Transition w/ Bandshape'
X_KEY = 's_j_x_label'
X_ALIAS = 'r_j_Excitation_Energy_(eV)'
Y_KEY = 's_j_y_label'
Y_ALIAS = 'r_j_Intensity'
HEADERS = {'s_j_spectrum_type': 'Electronic Transition w/ Bandshape', 's_j_x_label': 'r_j_Excitation_Energy_(eV)', 's_j_y_label': 'r_j_Intensity'}
COLUMNS = {'r_j_Excitation_Energy_(eV)': 'Excitation Energy (eV)', 'r_j_Intensity': 'Intensity', 's_j_Symmetry': 'Symmetry'}
EXT = '.uvv.spm'
DEFAULT_BIN_WIDTH = 400.0
__init__(data_file_name, spm_file_name, transition_type=None)

Create an instance.

Parameters:
  • data_file_name (str) – the text file containing whitespace separated energies and intensities, one pair per line, energies in eV
  • spm_file_name (str) – the name of the *spm file to create
  • transition_type (str or None) – module constant ABSORPTION or EMISSION or None if it is unknown
static isBandshapeTable(atable)

Return True if the given table is a bandshape table.

Parameters:atable (table.Table) – the table to check
Return type:bool
Returns:True if the given table is a bandshape table
static getTrimmedTable(filepath, bin_width=None)

Return a table of trimmed data for the given file path and bin width.

Parameters:
  • filepath (str) – the file path to the file with the data
  • bin_width (float) – the bin width in wavenumbers (cm-1) used for binning
Raises:

ValueError – if there isn’t any data

Return type:

table.Table

Returns:

table of trimmed data

static getData(data_file_name, separator=None, types=None)

Return the data from the given data file.

Parameters:
  • data_file_name (str) – the text file containing the data
  • separator (str) – the data separator
  • types (list) – a list of types used to type cast the data
Return type:

list

Returns:

contains data tuples

write()

Write the *spm file.

schrodinger.application.matsci.bandshape_utils.get_translated_xyz_vec(st)

Return a vector of cartesian coordinates of the given structure which have been translated so that the center of mass is at the (0, 0, 0) origin.

Parameters:st (schrodinger.structure.Structure) – the structure
Return type:numpy.array
Returns:the translated cartesian coordinates
schrodinger.application.matsci.bandshape_utils.get_mwc_to_nm_transform(jagout)

Return the mass-weighted Cartesian coordinate to normal mode transformation matrix.

Parameters:jagout (JaguarOutput) – the Jaguar output class
Return type:numpy.array or None
Returns:the transformation matrix or None if there isn’t one
schrodinger.application.matsci.bandshape_utils.get_huang_rhys_fs(ground_jo, excited_jo)

Return the Huang-Rhys factors for the ground and excited states.

Parameters:
  • ground_jo (JaguarOutput) – the Jaguar output class for the ground state
  • excited_jo (JaguarOutput) – the Jaguar output class for the excited state
Return type:

list, list

Returns:

Huang-Rhys factors for ground and excited states

schrodinger.application.matsci.bandshape_utils.get_transitions(bs_out_file_name, initial_jo=None, final_jo=None)

Return a list of transitions from the given band shape output file.

Parameters:
  • bs_out_file_name (str) – the band shape output file name
  • initial_jo (JaguarOutput or None) – the Jaguar output class for the initial state
  • final_jo (JaguarOutput or None) – the Jaguar output class for the final state
Return type:

list

Returns:

contains Transition

exception schrodinger.application.matsci.bandshape_utils.NormalModeAnalysisException

Bases: Exception

__init__

Initialize self. See help(type(self)) for accurate signature.

args
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

class schrodinger.application.matsci.bandshape_utils.NormalModeAnalysis(bs_out_file_name)

Bases: object

Manage normal mode analysis.

TAG = 'normal_mode_analysis'
N_ATOMS_KEY = 'i_j_atom_total'
FREQ_KEY = 'r_j_Frequency'
FREQ_TITLE = 'Frequency'
SYMM_KEY = 's_j_Symmetry'
SYMM_TITLE = 'Symmetry'
INTENSITY_KEY = 'r_j_Intensity'
INTENSITY_TITLE = 'Intensity'
RAMAN_ACT_KEY = 'r_j_Raman_Act'
RAMAN_ACT_TITLE = 'Raman Act'
RAMAN_INT_KEY = 'r_j_Raman_Int'
RAMAN_INT_TITLE = 'Raman Int'
X_KEY = 'r_j_x%s'
X_TITLE = 'x%s'
Y_KEY = 'r_j_y%s'
Y_TITLE = 'y%s'
Z_KEY = 'r_j_z%s'
Z_TITLE = 'z%s'
COLUMNS = {'r_j_Frequency': 'Frequency', 'r_j_Intensity': 'Intensity', 'r_j_Raman_Act': 'Raman Act', 'r_j_Raman_Int': 'Raman Int', 's_j_Symmetry': 'Symmetry'}
__init__(bs_out_file_name)

Create an instance.

Parameters:bs_out_file_name (str) – the band shape output file name
Raises:NormalModeAnalysisException – if there is an issue
getVibStates(energy_start, energy_stop)

Get all vibrational states within the given energy window for the initial and final states.

Parameters:
  • energy_start (float) – the lower bound on the energy in eV
  • energy_stop (float) – the upper bound on the energy in eV
Return type:

dict, dict

Returns:

initial and final vibrational states, keys are indices, values are sets of VibState

getVibStateWeight(state)

Return the weight of the given vibrational state.

Parameters:state (VibState) – the vibrational state
Return type:float
Returns:the weight
getAllVibData(all_states, jagout, include_n_quantum)

Return all frequencies and normal modes from the given vibrational states.

Parameters:
  • all_states (dict) – vibrational states, keys are indices, values are sets of VibState
  • jagout (JaguarOutput) – the Jaguar output class
  • include_n_quantum (bool) – whether to include effects due to vibrational quantum numbers
Return type:

list

Returns:

contains NormalMode

getAvgVibData(all_states, jagout, include_n_quantum)

Return an averaged frequency and normal mode from the given vibrational states.

Parameters:
  • all_states (dict) – vibrational states, keys are indices, values are sets of VibState
  • jagout (JaguarOutput) – the Jaguar output class
  • include_n_quantum (bool) – whether to include effects due to vibrational quantum numbers
Return type:

NormalMode

Returns:

the averaged NormalMode

getMaxVibData(all_states, jagout, include_n_quantum)

Return the frequency and normal mode with the largest weight from the given vibrational states.

Parameters:
  • all_states (dict) – vibrational states, keys are indices, values are sets of VibState
  • jagout (JaguarOutput) – the Jaguar output class
  • include_n_quantum (bool) – whether to include effects due to vibrational quantum numbers
Return type:

NormalMode

Returns:

the max (largest weight) NormalMode

writeVibFile(file_name, n_atoms, normal_modes)

Write the *.vib file for the given normal modes.

Parameters:
  • file_name (str) – the file name
  • n_atoms (int) – the number of atoms
  • normal_modes (list) – contains NormalMode
writeFiles(base_name, initial_normal_modes, final_normal_modes, title=None)

Write normal mode analysis files.

Parameters:
  • base_name (str) – a base name for the files
  • initial_normal_modes (list or None) – contains NormalMode for the initial state
  • final_normal_modes (list or None) – contains NormalMode for the final state
  • title (str) – a title to use for structures in the normal mode analysis output files
run(energy_start, energy_stop, average=False, maximum=False, include_n_quantum=False, base_name=None, title=None)

Run it.

Parameters:
  • energy_start (float) – the lower bound on the energy in eV
  • energy_stop (float) – the upper bound on the energy in eV
  • average (bool) – whether to average the normal modes
  • maximum (bool) – whether to report only the normal mode with the largest weight
  • include_n_quantum (bool) – whether to include effects due to vibrational quantum numbers
  • base_name (str) – a base name to use for the normal mode analysis output files
  • title (str) – a title to use for structures in the normal mode analysis output files
Raises:

NormalModeAnalysisException – if there is an issue

Return type:

str

Returns:

the name of the Maestro file written