Jump to: Navigation
Projects
At any given time I have several ideas, some quite ridiculous, but others end up making it into reality. Assembled here are some original ideas and many more functional tools modified from the very clever work of others. I will be adding links to the repos as they become useful and I feel like bringing them out in public! —
D3.js Visual Storytelling
I am not working on anything specific at the moment, but I will be playing around with Javascript and D3.js (among other packages) to develop fun and informative methods for teaching various concepts in quantum mechanics through visualization.
At the end of the day, quantum mechanics is best ‘understood’ through various flavors of projective geometry and different algebraic representations.
The trouble is – visualizing high-dimensional fixed objects is difficult enough – let alone trying to imagine the dynamical ebbs and flows of energy through excited molecular states. Perhaps using D3 and various other visual- storytelling methods can help me, as well as other visitors to my site, first imagine and visualize these complex processes underpinning literally everything we see!
Task Management Algorithms
I have a heck of a time prioritizing things sometimes when things get busy, so I have come up with some neat ideas for custom algorithms for managing my tasks after “brain-dumping” them, and allowing me a little more freedom from deciding what to do first!
Encalculable
Encalculable
is an open-source package for helping coders, scientists, and engineers with dyscalculia or dyslexia. It does this by color-coding the digits 0-9 or letters A-Z such that commonly transposed letters and/or numbers are colored with complementary colors from the color-wheel (e.g., yellow and blue, magenta and green, etc. see figure)
The user will be able to install the package, choose a good color scheme for their use, and easily tweak a number of syntax highlighting settings in a Python- script command line interface tool that generates the appropriate changes in the global Vim or Neovim configuration files. The user may also be able to select color-deficiency-friendly color schemes and the package will adapt the highlighting appropriately.
If it works, the end objective is to assemble packages for various text applications and web browsers instead of just Vim or Neovim plugins. However, I need to work out the specifics of how to arrange the color pallette at the moment.
Python Time-Frequency Analysis Visualization Toolkit
In my role as a researcher, I have needed to perform time-frequency analysis on large time series. In some cases I have required visualizations that are not part of the standard toolkit in most plotting software, so I cobbled together a program that parses the time series output from your simulation software or data collection rig and creates a 2-dimensional array of time-resolved frequency spectra (i.e., as the window slides along the time-domain, a new frequency is generated and the evolution of features in the frequency domain may be tracked with respect to time.)
I will explain the methodology and construction of the package in a later blog post.
Coming Someday…
Eventually I’m going to refactor this into something a little faster, like Julia or C++, but for the time being, this has been quite useful for me as a computational chemist studying dynamical molecular processes.
Dotfiles
My own special blend of dotfiles for setup on a personal or work machine. Some of my colleagues have called it:
- “Inspired!”
- “Colorful!”
- “Ugh, an Eyesore!” (thanks, DBWY… appreciate it…)
It’s set up so there’s high contrast and easy readability and differentiation of various filetypes, directories, etc. There is also an obscene number of color- schemes for Vim/Neovim in this repo.
Coming soon
Automated global system configuration and tool installation. Admittedly, this one is a long way off at the moment. I have a lot of tools, and writing a repo so it’s easily reconfigured and generalizable is quite a challenge sometimes. Stay tuned though!
Gaussian 16 Input-Output Syntax Markup for Vim/Neovim
A set of *.vim
files for syntax highlighting of keywords and various other features of interest in Gaussian input (*.com
, *.gjf
) and output (*.fchk
, *.log
) files. These were not built from scratch, but are based on various other iterations cobbled together and heavily modified to suit my tastes as a researcher in quantum dynamics using the various development and deployment versions of Gaussian.
Admittedly, this is just my added modifications to a delightful set of these files I found on GitHub.
Parsers and Automation of Various Types for Gaussian Logfiles
There comes a time in everyone’s life when they are just too cool to deal with slogging through incredibly long, verbose logfiles looking for a specific keyword or value.
And by that, I mean they’re too tired and under the gun to do the job well.
I was struggling with reading thousands of lines of logfiles from Gaussian in my role as a computational chemist. I was making so many mistakes that it was really irritating my research advisor (thanks, Boss!), so I wrote some parsers to do that particular job for me. The collection is written in Bash and Python, but I think in the near future I’d like to assemble it all into a Python package that could be deployed generally for various types of computational software logfiles. I just happen to be more intimately familiar with the Gaussian computational chemistry software logfiles than any others at the moment.
Other parts of this kit include:
- Automation for writing batches of Gaussian input files
- Automation for writing batch scripts on the UW Mox Cluster (thanks, UW-HPC!)
- Matrix parsers
- Selective frequency normal mode parsing
- Excited state spectra parsing from dynamics simulations in G16
- Time-evolving observables in Mixed Quantum-Classical Dynamical simulations
- Geometric distance parsing between particles, output as a handy time-series