Updating the cookbook

Update 05/26, added an incomplete draft of new chapter, yay😀, there's still a lot of work to do. Update 05/19, found some nasty typos in the old document.  

04/22. For a while I've been wanting to expand the cookbook, with applications. The theory part will always be incomplete [although it really needs chapter(s) on strong correlation, molecular dissociation, and electronic transport], advances happen by the hour in the literature. But computational applications are simply too important. So I hope the cookbook will double in size this year, with the new half devoted to applications. A crazy winter quarter is over!, and spring is slowly warming up, so it's time to add recipes to the notes 

ACS Energy Letters paper out

Check out our 'just accepted' paper [at ACS Energy Letters] on future prospects in quantum chemistry for research in materials and energy research (link here). Given the fast paced advancements in artificial intelligence and learning algorithms, we believe they will have considerable impact in computational chemistry. If the application of DFT survives this wave, an algorithm may choose or create a dft model for you to study some specific material, and its properties; or even come up with a candidate material for a given application. Otherwise, new forms of computer-generated theoretical models might arise for these purposes


Book on Group Theory

Browsing for irreps the other day I found this recent book on group theory and applications. It's an interesting and useful reference, includes formalism and examples of groups in solids and molecules. Link:

Printing correlation energy in nwchem dft calculations

I learned the hard way (examining the code, the variables nexc [sometimes nExc] and idecomp are confusing) that the keyword "decomp" activates decomposition of the exchange-correlation energy into exchange and correlation. So the dft block should look like:


Cheap Stabilization of a Perovskite Solar Cell

A news article popped up in my newsfeed about a record in stability. This article shows that copper thyocianate can work as hole-transport material in a lead-based perovskite solar cell. They seem to achieve 1k-hour stability. Very promising indeed. Does lead have its days numbered?

JCP paper out

Some of my work on the Runge-Gross theorem (the Hohenberg-Kohn theorem of TDDFT) was published this morning (JCP, 147, 134110). This theorem states that the time-dependent electronic density determines the potential uniquely (up to a constant), so we can define observables as time-dependent density-functionals. This manuscript extends the theorem to include time-dependent densities and potentials that are not Taylor expandable with respect to time. The Supp Info includes an alternative method, and an application to time-dependent current-density functional theory.

The Canonical Laws of C and Fortran

Just want to put some links here on the standard sources of the C language and Fortran. Sometimes it's reaffirming to read the official documents suggesting how the compilers should interpret the language. In general this page

http://gcc.gnu.org/readings.html ,

has most of those references, including info on chips. Although the standards aren't officially released very often, there seems to be constant communication discussing future updates.

The current standard of C is C11, public version:

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf .

Links to Fortran standards:

https://gcc.gnu.org/wiki/GFortranStandards#Fortran_77 .

This compact list of gnu packages is great:


search the package, its documentation, and download it into a .txt file (few exceptions). I just use vim to browse them. The g77 docs have some useful notes on interoperability between C and Fortran.


Back in college (Colombia), having access to powerful software was really difficult. If you plugged a usb drive into any pc running windows in campus you'd get a virus, and buying software was an expensive dream. The best alternative is switching to software libre. You get plenty of versatile programs, but at the cost of learning how to program in many languages. Sometimes it's frustrating, especially when dealing with wifi and other accessories.

Anyway, at this point I'm feeling temptation by the dark side to try intel libraries, math kernel library (mkl), for example. It seems faster than other free libraries.  It's interesting this mkl is available to you at no cost... if you are a student, researcher, or open source developer. These libraries are compatible with libre gnu compilers. But some folks might think, "I should keep everything under intel's control". If you're a student you can download their ifort and icc, $0. But researchers must purchase it for only $700. Apparently, you could get a 50% discount...

Excited-state Light Absorption

Scheme I: Caffeine molecule, in electronic state S1, being probed by alien

I totally forgot to write something about this paper. But before getting to that, an anecdote: Last month some friends and I were sitting out in a hallway of one of the hotels hosting the ACS national meeting. We were definitely looking tired. A guy, who seemed to be experienced in hiring, started talking to us about not giving up and practice more on elevator conversations: your ability to ultra-summarize your work to others. He did spend some time sharing his experiences with us. We must've looked really tired (especially me)...

So here is that elevator report for you (web visitor): We got a paper published on estimating the absorption spectrum of excited-states, here. You select an excited state (based on its symmetry, transition energy and oscillator strength from the ground state), and the program outputs its absorption spectrum (in terms of oscillator strengths). 

With some extra details, you run a regular linear-response "TDDFT" calculation (starting from the ground-state orbitals),  and choose the state. The algorithm perturbs the orbitals using the transition vectors of the chosen state, and then runs the linear-response calculations once again. At the end it prints out the oscillator strengths for transitions starting from the chosen excited-state. The tests I've run indicate the printed results are ok against experimental data. The paper is backed by a theory based on quantum mechanics (exact in principle), and the approximations are improvable.

If somebody paid me for an honest brief review of this paper, I'd say: Incomprehensible, intricate, complicated, but seems useful. I love it, but I understand the formalism is hard, but the implementation is quite simple. Applications to organic semiconductors are coming

Chaotic Microchips

                                       Anarchy(chaos)+Microchip = Happiness
"Chaos" is an interesting word in science, maybe 'cause is synonym of (according to thesaurus.com): anarchy, disorder, lawlessness, pandemonium, among others?. Aren't those words that draw our attention? (Many movies are about creating disorder and the journey of some folk trying to restore order). Anyway, it's been a while since the last post... my bad. 

I found this article about microchips operating under chaotic conditions https://news.ncsu.edu/2016/09/kia-mooreslaw/
Like 99% of the time, I don't understand the full operation. But the authors fabricated an integrated circuit that exploits the dynamical, non-linear behavior of the system (scientific paper here). It seems the circuit receives a combination of binary inputs, like 01, and the circuit shows a distinguishable response to it. The circuit is capable of identifying when the response is chaotic or stable periodic (if I understand correctly). I think the final goal would be developing circuits able of performing the function of many traditional transistors, exploiting complexity instead of miniaturization 

El Capitan drinks Quantum Espresso and then Feels Drowsy

To compile a slow version of quantum espresso for an iMac: i) Download last version, and extract somewhere. ii), use this script, "qe_conf.sh":

FL="-L/opt/local/lib -lfftw3"
LAPACK_LIBS="-L/lapack-folder -llapack -lrefblas"
BLAS_LIBS="-L/lapack-folder -lrefblas"

./configure CC=$CC F77=$F77 LAPACK_LIBS="$LAPACK_LIBS" \
  BLAS_LIBS="$BLAS_LIBS" FFT_LIBS="$FL" --enable-openmp

If you don't have fftw libs type in a terminal "sudo port install fftw-3". Follow the steps from previous post to get consistent mpi commands. iii), Build your module typing "make X", where X = pw, ph, pwcond, etc. Note: There is an ATLAS package that can be installed with port, but I don't know yet how much it will speed up the computations. 

NWChem in El Capitan

I installed it in a mid 2011 iMac, and used gcc compilers. First, get the right compilers (or make sure gcc5, or alike, is installed). 

sudo port install gcc5 +gfortran+universal 

(I needed to make symbolic links in /opt/local/bin for gfortran, gcc, g++, and cpp. Port installs them as gsomething-mp-5). Also make sure you have mpich. If not, type 

sudo port install mpich-gcc5


sudo port select --set mpi mpich-gcc5-fortran

This last step is to use the mpi commands linked to gcc, instead of clang.

Download nwchem-6.6 from here, and extract the .tar.gz file into some folder. The environmental variables are:

export NWCHEM_TOP=`pwd`
export NWCHEM_MODULES="all"
export USE_MPI="y"
export USE_MPIF="y"
export USE_MPIF4="y"
export LIBMPI=" -lmpifort -lmpi -lpmpi -lpthread"
export BLASOPT=" "
export FC=gfortran
export CC=gcc

To compile:

cd $NWCHEM_TOP/src
make nwchem_config


All these variables and make commands can be written into a my_comp.sh file and just be run as "sh my_comp.sh". I ran some QA tests and they looked fine. Finally, note that blasopt is empty. NWChem uses its internal BLAS. I tried to compile ATLAS to get optimize libraries but failed in the attempt :_(   Apparently, ATLAS has some issues working with Apple machines from Hell.