Skip to content

Latest commit

 

History

History
117 lines (86 loc) · 6.39 KB

File metadata and controls

117 lines (86 loc) · 6.39 KB

Emmanuel's research scripts

Computational chemistry scripts for DFT (ORCA), electron-phonon coupling (beDeft), data analysis, and visualization — focused on fullerene and carbon nanostructure research.

bash_functions.sh

Shared Bash library sourced by all .sbatch scripts. Provides ORCA/beDeft module loading and execution helpers, ORCA output formatters (HOMO/LUMO gaps, polarizabilities, energies, frequencies, Raman, NMR, ESD), and post-processing functions (ionization energy, electron affinity, global reactivity indices).

orca/ — ORCA SLURM job scripts

All scripts follow the same pattern: source bash_functions.sh, copy inputs to scratch, generate ORCA input via heredoc, run, move results back.

Script Purpose
gs_run_orca.sbatch Ground-state optimization + numerical frequencies
ene_run_orca.sbatch Energy scan: ground, cation, anion states; HOMO/LUMO gap, IP, EA, reactivity indices
pol_run_orca.sbatch Static polarizability (reads MOs from .gbw)
pol_atom_run_orca.sbatch Atom-resolved polarizabilities and dipole moments
pol_array_orca.sbatch Frequency-dependent polarizability (array job over 15 frequencies)
tddft_run_orca.sbatch TD-DFT absorption spectrum (default 400 roots)
freq_run_orca.sbatch Hessian and vibrational frequencies
raman_run_orca.sbatch Raman activities and intensities
es_array_orca.sbatch Excited-state optimization array (state-specific PES scans)
esd_array_orca.sbatch Vibrationally-resolved ESD absorption spectra (Herzberg–Teller, Duschinsky)
vpt2_run_orca.sbatch VPT2 anharmonic vibrational analysis
vpt2_continue_orca.sbatch Resume an interrupted VPT2 calculation
gap_run_orca.sbatch Single-point HOMO–LUMO gap
preOPT_run_orca.sbatch Pre-optimisation at lower basis set
reOPT_run_orca.sbatch Re-optimisation with larger basis set (reads previous MOs)
docker_run_orca.sbatch Dimer/docking calculation (GFN-xTB or DFT)

beDeft/ — Electron–phonon coupling

Script Purpose
epc_array_beDeft.sbatch SLURM array job: for each normal mode index, generates displaced geometries, runs DFT, and computes coupling matrix elements g_mn via central-difference numerical differentiation
disp_single_mode.py Pre-processing: parses ORCA frequency output, computes Cartesian displacements along a specified normal mode, writes beDeft-format .inp files for equilibrium and displaced geometries

parsers/ — Data extraction from ORCA output

Each subdirectory contains a log_reader.py (parses output files) and data_parser.py (aggregates to CSV).

Subdirectory What it extracts
parser_energetics/ Point group, HOMO/LUMO, total energies (ground/cation/anion), polarizability, dipole
parser_atomic_pol/ Molecular and atom-resolved polarizabilities, atomic dipole tensors
parser_dynamic_pol/ Frequency-dependent polarizability tensor components
parser_electrochem/ Electrochemical data (voltammetry, amperometry, Tafel) from .txt files
parser_aniso/ Anisotropy analysis: point group, HOMO/LUMO, polarizability, dipole

graphs/ — Plotting scripts

Subdirectory Contents
energetics/ 14 publication-quality scripts: E(N), HOMO–LUMO gap, IP, EA, polarizability, hardness, softness, chemical potential, electrostatic/nuclear repulsion tensors
2025-10-15_IC/ Raman spectra and density of states used on the poster presented at the Grande Conférence de l'Institut Courtois (2025)
spectroscopy/ UV-Vis absorption spectra
to_adapt/ Scripts needing updates: HPLC before/after purification comparison, pair-potential ab model (J. Phys. Chem. C 2024, 128, 13283), isotropic vs effective polarizability, effective number of atoms from polarizability and ionization energy

intermol_dist/ — Intermolecular distance analysis

Script Purpose
intermol_dist.py Center-to-center and shortest interatomic distance between two molecules in an .xyz file
pyr_dist.py Fullerene–pyrene distances: center, wall, and pyrene-to-center
cnt_dist.py CNT–fullerene distances (2D projection and shortest)
mol_radius.py Molecular radius (min, max, average, N-shortest mean)
aspect_ratio.py Aspect ratio, length, diameter of elongated fullerenes/nanotubes

posym/ — Point-group symmetry analysis

Script Purpose
elec_sym.py Reads ORCA .fchk files, assigns symmetry labels to MOs using posym
mode_sym.py Reads ORCA .hess files, assigns symmetry labels to each normal mode using posym

thesis/ — Thesis analysis and figures

Subdirectory Contents
dynamic_pol/ C6 dispersion coefficients (London, Slater–Kirkwood), dynamic polarizability plots
retour_article2/ HPLC retention-time prediction: tR_pred.py, Stone potential models, experimental correlation plots
ideal_chromatogram.py Generates an idealised three-Gaussian chromatogram for thesis figures

hplc/ — HPLC chromatogram processing

Note: This is a legacy script. Consider using the Weaselytics package instead.

Script Purpose
hplc_extract.py Full pipeline: BEADS baseline correction (automatic cutoff via autocorrelation), peak detection, Gaussian and skew-normal fitting. Supports --show, --print, --export_bldata, --output_csv, --output_stats

crystal_C100/ — Crystal structure relaxation

File Purpose
c100_relax.py ASE + KIM relaxation of a C100 crystal (FIRE optimizer, hNN_WenTadmor_2019Grx_C potential)
preOPT.py Pre-optimisation of a C114-D3h fullerene with ASE + KIM
c100_crystal.abi ABINIT input for periodic C100 DFT calculation

xyz/ — Molecular structure library

122 .xyz files of carbon nanostructures. Organised by type:

catalysis/, CNTs/, eggs/, EMF/, heterojunction/, initial_geo/, math_structures/, PAH/, PYR_fullerene/, solvents/, spacer_effect/, stationary_phase/, TCNE/, TMS/

xyz_to_pdb/ — Format conversion

Script Purpose
parallel_openbabel.sbatch SLURM job converting .xyz files to .pdb via OpenBabel (OpenMP parallel)

misc/

Script Purpose
count_sym.sh Counts D-symmetry point groups (D2, D2h, … D6d) in a database file