ben-science-tools (bst) is meant to contain tools that Ben uses to streamline some of his porcesses while working on computaional chemistry. The project currently has two main modules process_data which is used for log file or computaional chemistry output file processing and analysis, and input_file_maker which is used to generate file inputs for computational chemistry
statp
takes a file patern and returns the number of stationary points in each file that fits that pattern.
Parameters
----------
file_patern (str) : a string that matches a certain string
Returns
-------
a string that gives nomber of occurences and line numbers of stationary points
out_file_scraper
This is a parent file scraper class meant to be altered or used for scraping log files for computations.
Attributes
----------
path : str
a path to an output file
file_list : list
a list of strings where each item is the corrsponding line in the file.
Methods
-------
`read_in_file()`
Reads in a file and retruns a list where each line is an item in the list
Parameters
----------
file_name : str
a path to an output file
Returns
-------
None
assignes self.file_list a list of all the lines in a file where each item in the list is an item.
`set_flag_function()`
Create the flag_functions dictionary mapping flag strings to the subparsing functions
Parameters
----------
flag : str
this is the flag you plan to add to the flag_functions dictionary
function_string : str
this is the method you plan to call if the flag is found
Returns
-------
None
Adds to the self.flag_functions dictionary
g16_scraper
This is a child class of out_file_scraper. To be a general scraper for Gaussian 16 output files
Attributes
----------
input_line : str
this is the input line used in the original gjf file
checkpoint_line : str
The "%chk=" in the original gjf file
nproc_line : str
The "%nproc=" in the original gjf file
memory_line : str
The "%mem=" line in the original gjf file
charge : int
Represents the charge of the system in the original gjf file
mult : int
represents the multiplicity of the system in the original gjf file
start_geometry: list[str]
the starting geometry of the sytem in the original gjf file
Methods
-------
`get_input_lines()`
Extracts the input information of the gaussian file
Parameters
----------
self
index : int
The index of the line this parsing function's flag is found in the file_list
Returns
-------
None
assigns respective values to:
checkpoint_line : str
nproc_line : str
memory_line : str
input_line : str
charge : int
multiplicity : int
start_geometry : list[str]
`recreate_gjf()`
Recreates the most basic starting gjf file (does not inclued anything after the starting geometry)
Parameters
----------
self
Returns
-------
str
a formatted string of a gjf file from the start of the run
g16_optfreq
Child of the g16_scraper. Meant to serve as a file scraper for Gaussian16 frequency calculations
Attributes
----------
zero_point_correction : float
unit: hartrees/particle
gives the gaussian calculated floating point number.
thermal_correction_to_energy : float
unit: hartrees/particle
gives the gaussian calculated floating point number.
thermal_correction_to_enthalpy : float
unit: hartrees/particle
gives the gaussian calculated floating point number.
thermal_correction_to_gibbs_free_energy : float
unit: hartrees/particle
gives the gaussian calculated floating point number.
sum_of_electronic_and_zero_point_energies : float
unit: hartrees/particle
gives the gaussian calculated floating point number.
sum_of_electronic_and_thermal_enthalpies : float
unit: hartrees/particle
gives the gaussian calculated floating point number.
sum_of_electronic_and_thermal_energies : float
unit: hartrees/particle
gives the gaussian calculated floating point number.
sum_of_electronic_and_thermal_free_energies : float
unit: hartrees/particle
gives the gaussian calculated floating point number.
zero_point_energy :float
unit: hartrees/particle
gives the zero point energy of the system
vibrational_thermal_contributions : dict {str : tuple(str,float)}
keys:
"Thermal_Energy"
unit : kcal/mol
returns a list of tuples with the the name : str of the of the contribution at index 0 and the value : float at index 0
"CV" (specific Heat)
unit : cal/(mol * kelvin)
returns a list of tuples with the the name : str of the of the contribution at index 0 and the value : float at index 0
"S" (Entropy)
unit : cal/(mol * kelvin)
returns a list of tuples with the the name : str of the of the contribution at index 0 and the value : float at index 0
Methods
-------
`get_thermochemistry_properties()`
Assigns the thermochemistry properties
Parameters
----------
index : int
The index of the starting line for the thermochemistry section in an opt freq gaussian job
Returns
-------
None
Assigns values to the following attributes:
zero_point_correction : float
thermal_correction_to_energy : float
thermal_correction_to_enthalpy : float
thermal_correction_to_gibbs_free_energy : float
sum_of_electronic_and_zero_point_energies : float
sum_of_electronic_and_thermal_energies : float
sum_of_electronic_and_thermal_enthalpies : float
sum_of_electronic_and_thermal_free_energies : float
zero_point_energy : float
vibrational_thermal_contributions
xyz_atom
an atom with x, y, and z coordinates
Attributes
----------
x_val : float
x postion
y_val : float
y postion
z_val : float
z postion
atom_type : str
the atomic coded for an atom i.e. C for carbon
Methods
-------
`as_string()`
returns a formatted string of atom type and xyz data
Parameters
----------
None
Returns
-------
A formatted string of atom type and xyz data
xyz_molecule
a list of xyz_atoms
Attributes
----------
atom_list : list[xyz_atom]
Methods
-------
`as_string()`
returns a formatted string of atom type and xyz data
Parameters
----------
None
Returns
-------
A formatted string of atom type and xyz data for each atom in the molecule on a new line
"""
`add_atom()`
adds an atom to the atom list
Parameters
----------
new_atom (xyz_atom)
Returns
-------
None
g16_input
A formatting object for g16_inputs
Attributes
----------
checkpoint : str
The name of the checkpoint file
file_name : str
The name of the associated input file
geometry : xyz_molecule
The systems geometry information
mem : int
The memory usage of the calculation in GB. default is 1
nproc : int
the number of processors used in the cacluation the default is 36
input_line : str
The input line of the input file
extra : str
Any information that may come after the geometry section
title_card : str
The Title card of the input file
charge : charge
The charge of the system
spin_mult : int
The spin multiplicity of the system
colors contains color pallets. in the form of a dictionary where keys are the name of the color and values are hex representations.
mines_primary
"dark_blue":"#21314d", "blaster_blue" : "#09396C", "light_blue" : "#879EC3" , "colorado_red" : "#CC4628", "pale_blue" : "#CFDCE9"
mines_neutral
"white" : "#FFFFFF", "light_gray" : "#AEB3B8", "silver" : "#81848A", "dark_gray" : "#75757D"
mines_accecnt
"earth_blue" : "#0272DE", "muted_blue" : "#57A2BD", "energy_yellow" : "#F0F600", "golden_tech" : "#F1B91A", "environment_green" : "#80C342", "red_flannel" : "#B42024"