Avogadro for NWchem periodic calculations

I’ve recently came up upon Avogadro. I think it’s awesome. I was wondering in NWChem input-output can be implemented, in particular related with periodic crystalline calculations… There is swarm of GUI for common computational packages, but almost none work with periodic crystals. I am ready to be harshest alpha, beta and even gamma tester

Jonas

Jonas Baltrusaitis wrote:

I’ve recently came up upon Avogadro. I think it’s awesome. I was wondering in NWChem input-output can be implemented, in particular related with periodic crystalline calculations… There is swarm of GUI for common computational packages, but almost none work with periodic crystals. I am ready to be harshest alpha, beta and even gamma tester

Jonas

Hi Jonas,

This is something I have been looking at recently - plane wave type
codes. Currently Avogadro has no plane wave implementation - just STOs
and GTOs. It could certainly be added but I am not sure I will find the
time anytime soon. I don’t have access to NWChem, nor does my research
involve plane wave calculations.

If someone were interested I would love to help them. If I were doing it
myself I would be tempted to look at ABINIT first as it is more widely
available. The current input deck generation extensions would be a good
point to start at if you wanted to implement it, then the output would
involve adding support for plane wave basis sets. We already have quite
good support for periodic systems and so visualization could build upon
that.

Thanks for your interest, glad to hear you like Avogadro so much. I
think it would be great to add plane wave type building and
visualization capabilities to Avogadro. May be there are other
developers lurking who work with these codes too.

Marcus

I’ve recently came up upon Avogadro. I think it’s awesome. I was
wondering in NWChem input-output can be implemented, in particular
related with periodic crystalline calculations…

On the input side, it’s not a big deal. Clone the code for Gaussian,
for example. I’ve been considering adding code for periodic unit cell
input for Gaussian 03 and MOPAC, which both support translation vectors.

As for reading output… I’d echo Marcus’s comments – solid state
code is definitely on the list, but probably won’t be implemented
until after 1.0 is released this spring.

I also think there are a few other issues for solid-state /
crystalline calculations we want to address:

  • Support for adding /editing coordinates in fractional unit cells
    (e.g., copying from a database)
  • A “space group browser” for changing the space group, particularly
    when building a new crystal lattice
  • Support for viewing particular Miller planes. (I have this, I just
    need to find time.)
  • Support for creating particular surface planes (e.g., creating a
    <110> or <100> slab).

In short, thanks for the complements. :slight_smile: If you or anyone else in the
NWChem community is interested in adding some support, we’ll be happy
to help them along. It wouldn’t take long for anyone who knows C++.

Cheers,
-Geoff

actually, I am a complete illiterate in coding. always wanted to learn, though. I’ll stick around with avogadro tough in a hope that eventually manipulation of input and output of crystalline nwchem calcs will be implemented as I feel a good vibe with this software

Jonas

— On Sat, 3/28/09, Geoffrey Hutchison geoff.hutchison@gmail.com wrote:

From: Geoffrey Hutchison geoff.hutchison@gmail.com
Subject: Re: [Avogadro-devel] Avogadro for NWchem periodic calculations
To: jasius_1@yahoo.com
Cc: avogadro-devel@lists.sourceforge.net
Date: Saturday, March 28, 2009, 12:37 PM

I’ve recently came up upon Avogadro. I think
it’s awesome. I was wondering in NWChem input-output can
be implemented, in particular related with periodic
crystalline calculations…

On the input side, it’s not a big deal. Clone the code
for Gaussian, for example. I’ve been considering adding
code for periodic unit cell input for Gaussian 03 and MOPAC,
which both support translation vectors.

As for reading output… I’d echo Marcus’s comments
– solid state code is definitely on the list, but probably
won’t be implemented until after 1.0 is released this
spring.

I also think there are a few other issues for solid-state /
crystalline calculations we want to address:

  • Support for adding /editing coordinates in fractional
    unit cells (e.g., copying from a database)
  • A “space group browser” for changing the space
    group, particularly when building a new crystal lattice
  • Support for viewing particular Miller planes. (I have
    this, I just need to find time.)
  • Support for creating particular surface planes (e.g.,
    creating a <110> or <100> slab).

In short, thanks for the complements. :slight_smile: If you or anyone
else in the NWChem community is interested in adding some
support, we’ll be happy to help them along. It
wouldn’t take long for anyone who knows C++.

Cheers,
-Geoff

in my wildest dreams I am implementing full NWChem plane wave output
input into Avogadro. In reality, I am a illiterate programmer wanna-
be. I was wondering if I could start learning C++ while doing some
minuscule task which would help NWCHem+Avogadro started?

Yes, I think we need to come up with some “junior jobs” for people who
want to learn more about C++ (or Python) and Avogadro.

I think we can come up with a few things off of the TODO list to get
people started.
http://avogadro.openmolecules.net/wiki/To_Do

Anyone else with some ideas? Better yet, Jonas, what would you want
your “workflow” to include? Besides NWChem and plane wave
visualization, what else do you want to see in Avogadro?

Cheers,
-Geoff

Good question. For the beginners, I would like to see spectra visualization and manipulation. Any spectra. That includes: IR, Raman, NMR, EPR, circular dichrosim, ultraviolatet, density of states (total and partial). But I am heading towards solid state again. Something like x axis scaling to a selected value and peak broadening to a selected value would be important. If we could get very flexible publications quality calculated spectra visualized in Avogadro (fonts, size, colors), that would be a big boost

I don’t think it’s fair me asking what should be done as I will definitely abuse that power: I am a chemist and want to have all the features I need in Avogadro. But I’ll do my best to be fair

— On Sun, 3/29/09, Geoffrey Hutchison geoff.hutchison@gmail.com wrote:

From: Geoffrey Hutchison geoff.hutchison@gmail.com
Subject: Re: [Avogadro-devel] Avogadro for NWchem periodic calculations
To: jasius_1@yahoo.com
Cc: “Avogadro-devel Devel” avogadro-devel@lists.sourceforge.net
Date: Sunday, March 29, 2009, 12:29 PM

in my wildest dreams I am implementing full NWChem
plane wave output input into Avogadro. In reality, I am a
illiterate programmer wanna-be. I was wondering if I could
start learning C++ while doing some minuscule task which
would help NWCHem+Avogadro started?

Yes, I think we need to come up with some “junior
jobs” for people who want to learn more about C++ (or
Python) and Avogadro.

I think we can come up with a few things off of the TODO
list to get people started.
http://avogadro.openmolecules.net/wiki/To_Do

Anyone else with some ideas? Better yet, Jonas, what would
you want your “workflow” to include? Besides
NWChem and plane wave visualization, what else do you want
to see in Avogadro?

Cheers,
-Geoff

On Sun, Mar 29, 2009 at 2:45 PM, Jonas Baltrusaitis jasius_1@yahoo.com wrote:

I would like to see spectra visualization and manipulation. Any spectra.
That includes: IR, Raman, NMR, EPR, circular dichrosim, ultraviolatet,
density of states (total and partial). But I am heading towards solid state
again. Something like x axis scaling to a selected value and peak broadening
to a selected value would be important. If we could get very flexible publications
quality calculated spectra visualized in Avogadro (fonts, size, colors), that would
be a big boost

Hi Jonas –

I’ve started work on creating IR spectra from calculated
vibrational modes. The code is in trunk (see
http://avogadro.openmolecules.net/wiki/Building:Development_Version
for instructions on installing it). Install it and load a molecule
with computed vibrations, then go to Extensions -> Vibrations ->
Plot. Currently you can scale the x axis to correct for computational
errors, overlay experimental spectra from a TSV file, label computed
peaks, and save to image. The image export is in no way publication
quality at this point (I just put it in a few days ago), but I plan to
add some customization options for colors, font size, etc. I’d really
like to add support for latex in the text labels, but I’m not sure if
that will be possible… Check it out and let me know if there is
anything else you’d like to see in it.

While I’m on the subject, I’m really still a beginner at computational
chemistry. Can someone more knowledgeable than myself confirm that this
plot is actually showing the IR-active vibrations, and not too much/
not enough information? To my understanding, the Hessian that the
vibration data is extracted from does contain the IR active modes, but
it’d be nice to hear that confirmed (or corrected before I put too much
more work into this :slight_smile: )

Dave

resending…

— On Sun, 3/29/09, David Lonie loniedavid@gmail.com wrote:

From: David Lonie loniedavid@gmail.com
Subject: Re: [Avogadro-devel] Avogadro for NWchem periodic calculations
To: jasius_1@yahoo.com
Date: Sunday, March 29, 2009, 3:32 PM
On Sun, Mar 29, 2009 at 5:25 PM, Jonas Baltrusaitis
jasius_1@yahoo.com wrote:

Incidentally, is there a way to compile a dev version
on cygwin? I am sort familiar with it

I’m not sure. I imagine it would be possible, since
there are gcc,
git, etc on cygwin. You’d probably have to compile
openbabel, eigen,
etc, too. This message didn’t go to the list – try
resending there,
maybe someone else knows.

Good luck!

Dave

Jonas Baltrusaitis wrote:

resending…

— On Sun, 3/29/09, David Lonie loniedavid@gmail.com wrote:

From: David Lonie loniedavid@gmail.com
Subject: Re: [Avogadro-devel] Avogadro for NWchem periodic calculations
To: jasius_1@yahoo.com
Date: Sunday, March 29, 2009, 3:32 PM
On Sun, Mar 29, 2009 at 5:25 PM, Jonas Baltrusaitis
jasius_1@yahoo.com wrote:

Incidentally, is there a way to compile a dev version

on cygwin? I am sort familiar with it

I’m not sure. I imagine it would be possible, since
there are gcc,
git, etc on cygwin. You’d probably have to compile
openbabel, eigen,
etc, too. This message didn’t go to the list – try
resending there,
maybe someone else knows.

http://avogadro.openmolecules.net/wiki/Compiling_on_Windows provides
instructions on setting up a Windows development environment and
compiling Avogadro along with its dependencies. If you have trouble feel
free to post here.

Thanks,

Marcus

On Sun, Mar 29, 2009 at 2:45 PM, Jonas Baltrusaitis jasius_1@yahoo.com wrote:

If we could get very flexible publications quality calculated spectra visualized in Avogadro (fonts, size, colors), that would be a big boost

I just made some commits to my fork that improve the quality of the
generated plots:

http://drunks.servebeer.com/david/misc/sample.png for a sample

Obviously not the default colors :slight_smile: The purple is the calculated
spectrum for methane that is in testfiles/, and the overlay is an
experimental spectra of [Mn(IV)(salpn)(u-O)]2 dimer. The image was
made using the Save Image function in the widget. Save the colors, is
this what you would consider publication quality? The experimental
spectrum can be easily removed, too.

Still to do:

  • Add a title to the plot
  • Try to speed up refreshes when a spectra is imported
  • TeX markup in labels (I wonder if there’s an easy way to do this in qt…)
  • Edit font type
  • Resize to a non-arbitrary size before saving picture
  • Look into pdf export
  • Anything else that can be suggested :slight_smile:

Dave

On Mar 29, 2009, at 9:16 PM, David Lonie wrote:

  • Anything else that can be suggested :slight_smile:

Jonas, I think these are some small projects that David mentioned and
might get you into C++ and Avogadro code.

As for printing / graphics export, I’d suggest looking at QPrinter,
which will give you PS and PDF export:
http://doc.trolltech.com/4.5/graphicsview.html#printing
http://doc.trolltech.com/4.5/qprinter.html#isValid

As for markup in the text widgets, you will want HTML:
http://doc.trolltech.com/4.5/richtext-html-subset.html

Cheers,
-Geoff

What about displaying multistep jobs? those are implemented in Gaussian, for example. What about software packages that don’t have any OpenBabel specific output, such as ORCA and NWChem?

Jonas

I misspoke or you misunderstood me. … For that it should be
flexible enough in font, line color thickness etc adjustment so it’s
easy and fast, user friendly

I understood you. But for me, publication quality requires some sort
of PDF file so the graph can be rendered at any size.

I think the font/color options are on the TODO list.

Which are those projects for C++ newb as I didn’t see any?

We don’t have such a list yet. Soon. :slight_smile:

Cheers,
-Geoff

Excellent!

BTW, for publication quality journals need tiff files with adjustable resolution, usually 300 dpi. Never seen one that asked for pdf

— On Tue, 3/31/09, Geoffrey Hutchison geoff.hutchison@gmail.com wrote:

From: Geoffrey Hutchison geoff.hutchison@gmail.com
Subject: Re: [Avogadro-devel] Avogadro for NWchem periodic calculations
To: jasius_1@yahoo.com
Cc: “Avogadro-devel Devel” avogadro-devel@lists.sourceforge.net
Date: Tuesday, March 31, 2009, 10:01 AM

I misspoke or you misunderstood me. … For that it
should be flexible enough in font, line color thickness etc
adjustment so it’s easy and fast, user friendly

I understood you. But for me, publication quality requires
some sort of PDF file so the graph can be rendered at any
size.

I think the font/color options are on the TODO list.

Which are those projects for C++ newb as I didn’t
see any?

We don’t have such a list yet. Soon. :slight_smile:

Cheers,
-Geoff

Since NWChem in now in the OpenBabel, would it be hard to implement NWChem input setup for crystal systems?

Jonas

Since NWChem in now in the OpenBabel, would it be hard to implement
NWChem input setup for crystal systems?I

As I said before, it’s not hard to implement the input… you’d take,
say Gaussian, modify the gaussiandialog.ui, and go from there.

And no, you don’t need Babel support to have Avogadro input. It does
help to have Babel support for the output format (which it does, i
this case).

Hope that helps,
-Geoff

Not so fast (diabolical laugh…). I meant plane wave NWChem calculations, e.g. being able to setup crystal with vectors and, furthermore, setup a supercell (which I saw has been started on being implementing)… Ideally, import data from cif, add any other molecules of interest (say adsorbed on a surface) and save as NWChem input. Now that’s trickier!

Also, is there a way to setup multijob inputs (Gaussian has those, for example, as well as NWChem)

Jonas

— On Wed, 4/1/09, Geoffrey Hutchison geoff.hutchison@gmail.com wrote:

From: Geoffrey Hutchison geoff.hutchison@gmail.com
Subject: Re: [Avogadro-devel] NwChem input
To: jasius_1@yahoo.com
Cc: avogadro-devel@lists.sourceforge.net
Date: Wednesday, April 1, 2009, 4:11 PM

Since NWChem in now in the OpenBabel, would it be hard
to implement NWChem input setup for crystal systems?I

As I said before, it’s not hard to implement the
input… you’d take, say Gaussian, modify the
gaussiandialog.ui, and go from there.

And no, you don’t need Babel support to have Avogadro
input. It does help to have Babel support for the output
format (which it does, i this case).

Hope that helps,
-Geoff

Not so fast (diabolical laugh…). I meant plane wave NWChem
calculations

I know what you meant. But you have to set up “regular” NWChem
calculations in order to submit plane wave ones too. :slight_smile:

e.g. being able to setup crystal with vectors and, furthermore,
setup a supercell (which I saw has been started on being implementing)

Both of these features are already available. They’re not supported in
input generations, but the Avogadro::Molecule class supports them just
fine.

… Ideally, import data from cif, add any other molecules of
interest (say adsorbed on a surface) and save as NWChem input. Now
that’s trickier!

We can already import data from CIF. The only “missing” feature is to
create a surface from a CIF. If you’d like, that can be another
"beginner" project for you. (i.e., going from the CIF and unit cell
data to generate a particular surface.)

Also, is there a way to setup multijob inputs (Gaussian has those,
for example, as well as NWChem)

You can do this manually, but no, we don’t have an automatic way to do
this.

Best regards,
-Geoff

Started reading the book for dummies on C++. Will take a while…

— On Thu, 4/2/09, Geoffrey Hutchison geoff.hutchison@gmail.com wrote:

From: Geoffrey Hutchison geoff.hutchison@gmail.com
Subject: Re: [Avogadro-devel] NwChem input
To: jasius_1@yahoo.com
Cc: avogadro-devel@lists.sourceforge.net
Date: Thursday, April 2, 2009, 8:02 AM

Not so fast (diabolical laugh…). I meant plane wave
NWChem calculations

I know what you meant. But you have to set up
"regular" NWChem calculations in order to submit
plane wave ones too. :slight_smile:

e.g. being able to setup crystal with vectors and,
furthermore, setup a supercell (which I saw has been started
on being implementing)

Both of these features are already available. They’re
not supported in input generations, but the
Avogadro::Molecule class supports them just fine.

… Ideally, import data from cif, add any other
molecules of interest (say adsorbed on a surface) and save
as NWChem input. Now that’s trickier!

We can already import data from CIF. The only
"missing" feature is to create a surface from a
CIF. If you’d like, that can be another
"beginner" project for you. (i.e., going from the
CIF and unit cell data to generate a particular surface.)

Also, is there a way to setup multijob inputs
(Gaussian has those, for example, as well as NWChem)

You can do this manually, but no, we don’t have an
automatic way to do this.

Best regards,
-Geoff

Geoffrey Hutchison wrote:

Also, is there a way to setup multijob inputs (Gaussian has those,
for example, as well as NWChem)

You can do this manually, but no, we don’t have an automatic way to do
this.

This becomes a question of how far the input generation should go too.
There comes a time when people are generating very complex input files -
do people just tend to enter these manually? I know I do, but find it
convenient to have a starting point in Avogadro.

One killer feature I would like to put in at some point for advanced
users is syntax highlighting of input files, and this is not very hard
to do. I am just not sure how I feel about trying to make an input deck
generator do everything…

Another good one for advanced users is input file templates with
replacement of keywords. That would allow people to generate templates
for complex jobs and have keywords replaced with the atom coordinates,
unit cell parameters etc. Would this be a better direction than trying
to create a dialog to expose every possible function in a quantum code?
It would allow a simple dialog that is personalized to each user,
classes could distribute input files etc.

These are all just ideas. I think I would prefer to add job templates
and syntax highlighting to provide a natural progression as people start
to use more advanced features.

Thanks,

Marcus