29 November 2019

657. More on charges in nwchem and gaussian

A now ten-year old paper introduced the concept of Pauling bond-strength conserving terminations (PBS ) in the use of molecular codes for calculations involving extended crystalline systems ('Quantum-Chemical Calculations of Carbon-Isotope Fractionation in CO2(g), Aqueous Carbonate Species, and Carbonate Minerals' by James R. Rustad, Sierra L. Nelmes, Virgil E. Jackson, and David A. Dixon --  see link). The authors used NWChem for the calculations, most likely due to the affiliation between the lead author and PNNL, where NWChem is developed, and where the researchers have been banned from using Gaussian.

I use Gaussian almost exclusively these days, mainly due to how fast it is.

Unfortunately, Gaussian and NWChem behave quite differently when it comes to introduction of specified nuclear charges, so I here compare the two codes in terms of how to set up PBS calculations.

NWChem (6.8):
scratch_dir /scratch
Title "charge"

Start  charge

echo

charge 0

geometry noautosym noautoz units angstrom
 Mg     0.00000     0.00000     0.00000
 O     0.00000     2.09000     0.00000
 O     1.47785     2.22045e-16     1.47785
 O     -1.47785     -1.11022e-16     1.47785
 O     0.00000     -2.09000     0.00000
 O     -1.47785     2.22045e-16     -1.47785
 O     1.47785     -1.11022e-16     -1.47785
 H1     -0.691981     2.65500     -0.691981 charge 0.5 
 H1     0.691981     2.65500     0.691981 charge 0.5 
 H1     1.87737     0.978609     1.87737 charge 0.5 
 H1     1.87737     -0.978609     1.87737 charge 0.5 
 H     -1.18539     7.33956e-09     2.56935
 H     -2.56935     -7.33957e-09     1.18539
 H     -0.691981     -2.65500     0.691981
 H     0.691981     -2.65500     -0.691981
 H     -1.87737     -0.978609     -1.87737
 H     -1.87737     0.978609     -1.87737
 H     1.18539     -2.20187e-08     -2.56935
 H     2.56935     2.20187e-08     -1.18539
end

basis "ao basis" spherical print
  H library "def2-svp"
  Mg library "def2-svp"
  O library "def2-svp"
END

dft
  mult 1
  direct
  XC pbe0
  grid xfine
  mulliken
end

task dft energy   

This gives an energy of -655.860806066326.

Removing the charges for H1 and setting the total charge to +2 gives an energy of -657.044328628867

Gaussian (16.A01):
WRONG:
%nprocshared=6
%Mem=800000000
%Chk=charge.chk
#P GFINPUT rPBE1PBE/def2svp 5D  NoSymm  Punch=(MO) Pop=(full) 

charge

0 1 ! charge and multiplicity
 Mg     0.00000     0.00000     0.00000
 O     0.00000     2.09000     0.00000
 O     1.47785     2.22045e-16     1.47785
 O     -1.47785     -1.11022e-16     1.47785
 O     0.00000     -2.09000     0.00000
 O     -1.47785     2.22045e-16     -1.47785
 O     1.47785     -1.11022e-16     -1.47785
 H(znuc=0.5)     -0.691981     2.65500     -0.691981
 H(znuc=0.5)     0.691981     2.65500     0.691981
 H(znuc=0.5)     1.87737     0.978609     1.87737
 H(znuc=0.5)     1.87737     -0.978609     1.87737
 H     -1.18539     7.33956e-09     2.56935
 H     -2.56935     -7.33957e-09     1.18539
 H     -0.691981     -2.65500     0.691981
 H     0.691981     -2.65500     -0.691981
 H     -1.87737     -0.978609     -1.87737
 H     -1.87737     0.978609     -1.87737
 H     1.18539     -2.20187e-08     -2.56935
 H     2.56935     2.20187e-08     -1.18539

gives an energy of -655.679686484!

However,
2 1  ! charge and multiplicity
gives an energy of -655.860712881, which is what we want.

Removing the znuc specifications and using
2 1  ! charge and multiplicity
gives an energy of -657.044229333

Keeping the znuc specifications and defining those protons as fragment 2, and the rest of the cluster as fragment 1
 2 1 -2 1 4 1! charge and multiplicity
gives an energy of -655.860712881


Conclusion: 
both NWChem and Gaussian can be made to use PBS, but while you use the intended cluster charge (0) in NWChem, you need to use the unmodified charge (+2) in gaussian.

29 September 2019

656. Rant: On Academia and the English language

I used to think that (postgraduate) students didn't know how to write good manuscripts because they don't learn how to do so during their undergraduate education. I'm now even more cynical about it -- I believe that we actually actively teach them bad practices instead.

1. Honours students are particularly problematic, since they haven't yet had to write a thesis and are mainly exposed to scientific writing in the form of lab reports. Unfortunately, the way lab reports are written does not resemble any form of document that the students will produce in the career -- whether they go into industry or academia. So what's the point? Sure, they get to do a bit of thinking about the science behind the experiment in the process of writing -- and that's great -- but it does not teach them how to write up science.

2. The biggest problem is that students, regardless of level, are often told to write a certain number of words as part of their academic assignments --'write at least 800 words'. The idea is to make sure that they put in enough work, but the outcome is that you get papers with a lot of filler words and phrases.

I had a masters (by research) student write something along the lines of 
"'During the first week(s) of the course, a literature search will be conducted where appropriate sources are gathered'"
instead of
"Targets will be synthesised according to literature procedures"

It would be better to give students assignments where they are told what must be addressed in their essays, and then graded accordingly if they do a bad job of it. If they can complete the task in 400 words instead of 600, so be it.

I now tell my students to read Orwell's "Politics and the English language" in order to learn how to write, as it deals with this directly, and contains some great examples.

3. Postgraduate science writing courses are often geared towards teaching students to write popular science texts, and are often given by people outside their fields. Firstly, they are PhD students and first need to be able to write about science as experts before learning to write pop sci -- they WILL need to do the former, but are unlikely to need to do the latter. Secondly, (bad) pop sci writing often ends up being so devoid of actual information that it's impossible for someone in the field to figure out what it's about -- the way the Nobel prize in chemistry is presented in the newspapers is often so short on detail that it's impossible to know what the discovery is.

4.  Role models are hard to find. Few students think that the type of writing they see in social media works for science, but they might not realise that journalists are great sinners along the lines of point 2. Authors of fiction vary in quality, and I find it hard to read modern literature because of how self-indulgent many authors are.

I tell students at the beginning of their postgraduate course to have a look at some of the papers that they read when doing the initial literature search for their research, pick out one good and one bad example, and then try to work out WHY they felt that way.


30 October 2018

655. Linux for Edu -- creating lecture videos on linux

We're 'encouraged' to save money on teaching. The easiest (laziest?) way of doing this is to reduce teacher-led time. The ultimate time-saver (in terms of creation of content) is to simply record your lectures using screen-casting.

It's not a very good solution though.

From the point of the lecturer it is not very inspiring, recording 40 minutes of voice-over without mistakes in one take is hard, and updating the slides in the future is hard or impossible. Some solve the voice-over and update issue by using synthetic voices, but they are even more monotonous and uninspiring than most lecturers.

From the point of the student it can be hard to focus for 40 minutes, especially if all you're seeing is a series of slides with a droning voice over. There are other aspects that are bad too: you don't get to interact with the lecturer or your peers, and the lecture content/pace etc. can't be adjusted based on the dynamics of the class.

Some of these aspects can be solved or at least amended by using video editing software. The key is to not simply take a lecture and make a video, but to try to make the most of the medium, without having to become an expert at editing.

Key to making videos is to:
* make them short
...so that students don't need set aside a lot of time to watch them, and can maintain their concentration. It also helps you as a lecturer stay enthusiastic about the video project until it's finished. A long video will make you sick of it before you're done.

* cut everything up into small chunks
...so that you can replace slides and sections, and so you can (re-)record the narration is small chunks. This way you can do as many takes as you need to make sure that the voice over is punchy. No droning!

* to make them engaging
...so that it's fun to watch. This latter bit I haven't cracked. I have decided on a gimmick  though, where I put a countdown timer in the videos. I think/hope that it makes the student feel that the video is moving along quickly and feels 'dynamic'.

Received wisdom dictates that you should include a video of yourself lecturing. There's nothing precluding you from doing that in snippets too and using short Dissolve transitions between the video snippets.


Software:
One should use different tools for different purposes, so I use
* EasyScreenCast for capturing the desktop if necessary
Make sure to record as webm. Note: You need to transcode the VP8 webm files using the following command or they may show up as black when you render the video in kdenlive:
avconv -i in.webm -c:v libvpx -c:a vorbis -quality best -f webm out.webm

* Audacity for recording audio

* Cheese for recording videos of myself

* Synfig for making simple animation

* kdenlive for video editing

So, here's a quick overview of how to make a simple video using static slides (no screen casting):

1. I made slides in google slides, and then exported each one as a PNG file

2. I recorded the narration using audacity. One recording for each slide. Cut and export.

3. I put it together in kdenlive 
Just drag the length of the slide images to match the lengths of the narration. I also put in a countdown timer as video 2, and overlayed it with the 'composite and transform' transition. I could easily have done the same with a video/videos of myself recorded in cheese.

Either way, the point is that it's very easy to do this.


I also tried to make a simple animation in synfig, but it didn't really pan out. Might be a post in the future -- the students are struggling with visualising 3D objects like orbitals and molecules, and creating animations might help here.