home

Archive for the 'molecular electronics theory' Category

“OrtVc1 failed #1.” Workaround In Gaussian09; Warning About (Pre-)Resonance Raman Spectra In GaussView 4/5

Thursday, January 1st, 2015

And Happy New Year.

Two issues (one easily addressable, one only by external workaround) related to the prediction of Raman intensities in Gaussian09 – for which there’s next-to-nothing online to address either of them (likely because they don’t come up that often).

OrtVc1 failed #1.

In simulating the Raman spectra of very long (> C60) polyenes as a continuance of work related to the infinite polyacetylene case (see this post for details: Bond Alternation In Infinite Periodic Polyacetylene: Dynamical Treatment Of The Anharmonic Potential), I reached a length and basis set for which Gaussian provides the following output and error:

...
 Minotr:  UHF open shell wavefunction.
          Direct CPHF calculation.
          Differentiating once with respect to electric field.
                with respect to dipole field.
          Electric field/nuclear overlap derivatives assumed to be zero.
          Using symmetry in CPHF.
          Requested convergence is 1.0D-08 RMS, and 1.0D-07 maximum.
          Secondary convergence is 1.0D-12 RMS, and 1.0D-12 maximum.
          NewPWx=F KeepS1=T KeepF1=T KeepIn=T MapXYZ=F SortEE=F KeepMc=T.
          MDV=    3932153962 using IRadAn=       1.
 Generate precomputed XC quadrature information.
          Solving linear equations simultaneously, MaxMat=      72.
          There are     3 degrees of freedom in the 1st order CPHF.  IDoFFX=0 NUNeed=     3.
      3 vectors produced by pass  0 Test12= 3.94D-11 3.33D-08 XBig12= 2.15D+05 2.71D+02.
 AX will form     3 AO Fock derivatives at one time.
 FoFJK:  IHMeth= 1 ICntrl=       0 DoSepK=F KAlg= 0 I1Cent=   0 FoldK=F
 IRaf= 160000000 NMat=   3 IRICut=       1 DoRegI=T DoRafI=F ISym2E=-1.
 FoFCou: FMM=T IPFlag=           0 FMFlag=      100000 FMFlg1=        2001
         NFxFlg=           0 DoJE=F BraDBF=F KetDBF=F FulRan=T
         wScrn=  0.000000 ICntrl=       0 IOpCl=  1 I1Cent=           0 NGrid=           0
         NMat0=    3 NMatS0=      3 NMatT0=    0 NMatD0=    3 NMtDS0=    0 NMtDT0=    0
 Petite list used in FoFCou.
 FMM levels:  10  Number of levels for PrismC:   9
      3 vectors produced by pass  1 Test12= 3.94D-11 3.33D-08 XBig12= 1.52D+04 3.94D+01.
      3 vectors produced by pass  2 Test12= 3.94D-11 3.33D-08 XBig12= 1.29D+04 3.31D+01.
      3 vectors produced by pass  3 Test12= 3.94D-11 3.33D-08 XBig12= 1.65D+06 4.27D+01.
      3 vectors produced by pass  4 Test12= 3.94D-11 3.33D-08 XBig12= 1.92D+08 6.96D+02.
      3 vectors produced by pass  5 Test12= 3.94D-11 3.33D-08 XBig12= 4.40D+10 7.74D+03.
      3 vectors produced by pass  6 Test12= 3.94D-11 3.33D-08 XBig12= 4.42D+12 1.70D+05.
      3 vectors produced by pass  7 Test12= 3.94D-11 3.33D-08 XBig12= 3.50D+14 1.14D+06.
      3 vectors produced by pass  8 Test12= 3.94D-11 3.33D-08 XBig12= 3.13D+16 1.34D+07.
      3 vectors produced by pass  9 Test12= 3.94D-11 3.33D-08 XBig12= 1.75D+18 4.02D+07.
      3 vectors produced by pass 10 Test12= 3.94D-11 3.33D-08 XBig12= 1.28D+20 7.81D+08.
      3 vectors produced by pass 11 Test12= 3.94D-11 3.33D-08 XBig12= 1.50D+22 7.70D+09.
      3 vectors produced by pass 12 Test12= 3.94D-11 3.33D-08 XBig12= 1.12D+24 5.57D+10.
      3 vectors produced by pass 13 Test12= 3.94D-11 3.33D-08 XBig12= 2.86D+25 5.87D+11.
 OrtVc1:  Ph=1 IOff=     0 IPass=20 DotMx1= 2.08D-06
 OrtVc1:  Ph=1 M=  1181528 NPass=20 Test1= 3.94D-11 Small= 1.18D-06 VSmall= 1.00D-12
 OrtVc1 failed #1.
 Error termination via Lnk1e in /opt/g09/l1002.exe at Sat Oct 11 01:10:22 2014.

What little there is available online for the “OrtVc1 failed #1.” error (from CCL – here and here) is less than helpful in addressing the problem. The problem is also coordinate system-independent (Cartesian and z-matrix formats both provide the same error), but is sensitive to the choice of basis set (6-31G(d,p) would work fine through the Raman intensity predictions, 6-311G(2d,p) would fail at the stage above).

Directing the issue to Gaussian, the provided workaround is straightforward.

The prediction of Raman intensities requires using Coupled Perturbed Hartree-Fock (CPHF), for which a special sensitivity in the code (currently) exits when using both molecular symmetry and the fast multipole method, the use of which (FMM, that is) is governed by Gaussian09 based on the atom count.

The workaround, provided by Dr. Fernando Clemente at Gaussian, Inc., is to divide the calculation into two steps. My input for the first successful run is shown below. A few details:

1. The first stage contains no Raman keywords (just the plain “freq” call).

2. In the second stage, the cphf=rdfreq is reading an incident light frequency of 0 (cm-1 or nm) at the bottom of the input file (“0”). You can run the static or dynamic cases as you like at this stage.

3. Also in the second stage, FMM is turned off (nofmm).

4. Also still in the second stage, the option to calculate Raman intensities is turned on (polar=raman). This is, as it happens, a recommended way to perform Raman intensity calculations – run a typical normal mode analysis, then import the force constants (and geometry) from this calculation into a Link1 step while increasing the basis set size (for better intensity prediction).

%chk=checkpoint.chk
%nprocshared=12
%mem=50000MB
#p integral(grid=ultrafine) freq=hpmodes b3lyp/6-311++g(3df,3pd) scf=novaracc symm=loose

Part 1 - just the frequency calculation

0 1
 C                  0.00000000   48.56668920   -0.34496298
 C                  0.00000000   47.35252242    0.35603740
...
 H                  0.00000000  -49.50718415    0.19804614
 H                 -0.00000000   49.50718415    0.19804614
[blank line 1]
[blank line 2]
--link1--
%chk=checkpoint.chk
%nprocshared=12
%mem=50000MB
#p integral(grid=ultrafine) polar=raman cphf=rdfreq nofmm b3lyp/6-311++g(3df,3pd) geom=checkpoint

Part 2 - Raman intensities

0 1

0
[blank line 1]
[blank line 2]

In theory, your calculation should run just fine.

Raman Intensities And GaussView – Check Your .log File For Resonance

The next problem is GaussView-specific – one that only comes up when you’ve a system with dynamic polarizability (incredibly long polyenes being a prototypical example) or when you perform frequency-dependent Raman calculations and you slip near resonance.

When running a series of Raman intensity calculations with increasing incident light frequency (cphf=rdfreq, then an array of energies), Mode 17 of this particular molecule either has a really large activity (cannot be printed out) or we’re approaching resonance (also a case of really large activity and it can’t be printed out). This isn’t a problem with the code, it’s your molecule.

                     16                     17                     18
                     BG                     AG                     BG
 Frequencies --    218.8851               257.7857               266.9993
 Red. masses --      3.5318                 5.1372                 2.2022
 Frc consts  --      0.0997                 0.2011                 0.0925
 IR Inten    --      0.0000                 0.0000                 0.0000
 Raman Activ --      0.2046                 0.7412                 0.2871
 Depolar (P) --      0.7500                 0.3044                 0.7500
 Depolar (U) --      0.8571                 0.4667                 0.8571
 RamAct Fr= 1--      0.2046                 0.7412                 0.2871
  Dep-P Fr= 1--      0.7500                 0.3044                 0.7500
  Dep-U Fr= 1--      0.8571                 0.4667                 0.8571
...
 RamAct Fr=12--     90.1095           ************                 0.3406
  Dep-P Fr=12--      0.7500                 0.3333                 0.7500
  Dep-U Fr=12--      0.8571                 0.4999                 0.8571

This is all well-and-good if you only rely on the .log file. If you skip the .log file inspection and only ever use GaussView, the result of inspecting the Raman intensities is below.

2015jan1_Mode17_Wrong_Raman_Activity

Note that Mode 17 has the intensity of Mode 18, and Mode 18 has zero intensity. Something is afoot! If you know what to expect out of your system, the missing intensities should be obvious. If not, you’re missing some very important information about your molecule.

The GaussView developers are aware of the problem. In the meantime, you can get around this problem by globally replacing all of the ” ************ ” (note the spaces on either side!) with a huge number (at which point the Raman intensity issue will become obvious – careful to preserve the spacing in the .log file).

Commensurate Urea Inclusion Crystals With The Guest (E,E)‐1,4-Diiodo-1,3-Butadiene

Friday, December 20th, 2013

Published in Crystal Growth & Design (Cryst. Growth Des., 2013, 13 (9), pp. 3852–3855) earlier this year. The theory work is less impressive than the successful crystal growth, with initial solid-state efforts in Crystal09 only very recently now producing good results (leaving the molecular calculations to Gaussian09 in this paper). The procedure leading to the observed crystal structure of this inclusion complex is a significant step in the direction of testing the theory proposed in Bond Alternation In Infinite Periodic Polyacetylene: Dynamical Treatment Of The Anharmonic Potential published earlier this year in J. Mol. Struct.

2013dec20_DIBD_UIC

Caption: Two views along the ba and ca crystal axes of the (E,E)‐1,4-Diiodo-1,3-Butadiene : Urea Inclusion Complex.

Amanda F. Lashua, Tiffany M. Smith, Hegui Hu, Lihui Wei, Damian G. Allis, Michael B. Sponsler, and Bruce S. Hudson

Abstract: The urea inclusion compound (UIC) with (E,E)-1,4-diiodo-1,3-butadiene (DIBD) as a guest (DIBD:UIC) has been prepared and crystallographically characterized at 90 and 298 K as a rare example of a commensurate, fully ordered UIC. The crystal shows nearly hexagonal channels in the monoclinic space group P21/n. The DIBD guest molecules are arranged end-to-end with the nonbonding iodine atoms in the van der Waals contact. The guest structure is compared with that for DIBD at 90 K and with computations for the periodic UIC and isolated DIBD molecule.

Bond Alternation In Infinite Periodic Polyacetylene: Dynamical Treatment Of The Anharmonic Potential

Sunday, August 5th, 2012

In press (DOI:10.1016/j.molstruc.2012.07.051) in the Journal Of Molecular Structure. May go down in history as a hardest-fought paper acceptance. In a similar line of research as the [18]-annulene study, but exploring the infinite limit of geometry and bond length alternation energy barrier for this infinite case. If the numbers are correct, the infinite polyene chains (polyacetylene) do not exhibit bond length alternation because the Peierls’ barrier between the single-double and double-single bond alternate minima is below the vibrational zero-point level. Plenty of ramifications.

Bruce S. Hudson and Damian G. Allis

Abstract. The potential energy of the infinite periodic chain model of polyacetylene (pPA) is symmetric with two equivalent minima separated by the Peierls’ stabilization barrier. In this work it is shown how an energy scale and vibrational energy levels for this highly anharmonic Peierls’ degree of freedom can be estimated. Attention is given to the potential energy increase for large deformations. The Born-Kármán treatment of translational symmetry is applied. Two empirical methods and a direct periodic boundary condition (PBC) density functional theory (DFT) calculations are in semi-quantitative agreement, each leading to the conclusion that pPA has a zero-point level that is above the Peierls’ barrier. The argument does not depend critically on the barrier height or the other parameters of the model or the computation method. It is concluded that pPA will not exhibit bond alternation and that the zero-point average geometry does not preclude possible conductivity.

The Structure Of [18]-Annulene: Computed Raman Spectra, Zero-Point Level And Proton NMR Chemical Shifts

Saturday, August 4th, 2012

In press (DOI:10.1016/j.molstruc.2012.05.016) in the Journal Of Molecular Structure (Volume 1023, 12 September 2012, Pages 212–215) in the special issue: MOLECULAR VIBRATIONS AND STRUCTURES: THEORY AND EXPERIMENT — A collection of papers dedicated to Professor Jaan Laane on the occasion of his 70th birthday.

This paper on the “actual” geometry of [18]-annulene is part of several larger stories addressing a larger polyene (or larger-polyene) issue. First among these is the meaning of experimental results obtained by various spectroscopic methods (in this case, using previous X-ray, Raman (with the C2 (blue) and D6h (red) simulated spectra shown in the image above), IR, and NMR data that produce different results within the limitations of the methods to study the single molecule). Second is the quality of the theoretical method for reproducing certain types of spectroscopic data. In the case of the [N]-annulene series, the ever-present B3LYP density functional is found to produce the time-average geometry of [18]-annulene found in X-ray data, but another density functional (in this case, KMLYP), finds that bond-alternate minima exist. Third is the importance of the zero-point level in the treatment of systems for which bond-alternate geometries exist with transition-state barriers calculated to be below the zero-point level in the classical approximation of nuclear positions (the Born-Oppenheimer Approximation).

NOTE 1: The KMYLP density functional is called in Gaussian with the following keyword set:

BLYP iop(3/76=1000005570) iop(3/77=0000004430) iop(3/78=0448010000)

NOTE 2: Optimization and Frequency calculations must be performed as TWO SEPARATE CALCULATIONS. The iop-called density functional does not carry itself over between opt + freq (or other properties) in the same input file. If you opt + freq in the same input file, you will Opt with KMLYP but freq with BLYP. This will be obvious by the number of imaginary modes.

Bruce S. Hudson and Damian G. Allis

Abstract. [18]-annulene has been of great interest from the structural point of view of its bond alternation. High-level calculations based on structures selected for agreement with NMR spectra lead to a bond-alternate C2 form over a non-alternating planar D6h structure deduced from diffraction, infrared (IR) and electronic spectral studies. Here it is shown that computed Raman spectra for the D6h and C2 forms are expected to be very different. However, two equivalent non-D6h bond-alternate minima of D3h or C2 geometries are separated by only a small barrier along a motion that involves CC stretching and compression. It is shown here that the zero-point level is above the barrier for this species. In light of that fact, the NMR calculations are reconsidered with inclusion of zero-point level averaging.

Abinit 6.8.1 In Parallel With OpenMPI 1.4.1 In Ubuntu 10.04.2 LTS (And Related)

Monday, July 18th, 2011

It has been a banner week for Ubuntu installations.

The installation of Abinit 5.6.5 with OpenMPI 1.3.1 (previously reported at www.somewhereville.com/?p=384) wasn’t bad, but several games had to be played (at the time) to make everything compile and run correctly. I’m pleased to report that Abinit 6.8.1 and OpenMPI 1.4.1 seem to play better together, this simplified considerably over the previous installation guide by the use of the apt-get version of OpenMPI 1.4.1. A bit of option calling in the configure step is needed (and the errors for not doing it are included below).

0. For the Antsy Copy+Paste Crowd

Commands below.

sudo apt-get install autoconf bison build-essential cmake csh doxygen flex fort77 freeglut3-dev g++ g++-multilib gcc gcc-multilib gettext gfortran gnuplot ia32-libs lib32asound2 lib32gcc1 lib32gcc1-dbg lib32gfortran3 lib32gomp1 lib32mudflap0 lib32ncurses5 lib32nss-mdns lib32z1 libavdevice52 libblas3gf libbz2-dev libc6-dev-i386 libc6-i386 libfreeimage-dev libglew1.5-dev liblapack3gf libnetcdf-dev libopenal1 libopenexr-dev libopenmpi-dev libpng12-dev libqt4-dev libssl-dev libstdc++6-4.3-dbg libstdc++6-4.3-dev libstdc++6-4.3-doc libxext-dev libxi-dev libxml-simple-perl libxmu-dev libxt-dev mercurial netcdf-bin nfs-common nfs-kernel-server openmpi-bin patch portmap python2.6-dev rpm ssh tcsh xorg-dev zlib1g-dev libblas-doc libblas-dev liblapack-doc liblapack-dev

sudo aptitude update

sudo aptitude upgrade

sudo shutdown -r now

pico .profile

INSERT: LD_LIBRARY_PATH="/usr/lib64/openmpi/lib/"

source .profile

gunzip abinit-6.8.1.tar.gz 

tar xvf abinit-6.8.1.tar 

cd abinit-6.8.1/

./configure --enable-mpi --with-mpi-level=2 FC=mpif90 --with-linalg-libs="-llapack -lblas"

make mj4

sudo make install

For the “why?” crowd, a bit more about the steps is provided below.

1. apt-get Installs

As has been standard procedure for all of my posts like this, I blindly install a “core set” of things I’ve needed for various other build processes and am largely uninterested in identifying specific things needed by each program I build (hard drives are cheap). This list below includes plenty you likely don’t need for Abinit installations. Feel free to send me a shortened list if you diagnose it.

The list below includes the OpenMPI installation and all of the build tools needed by Abinit. I finish the installation with an aptitude update/upgrade (which one can skip). If you’re using a 32-bit version of Ubuntu, you’ll get plenty of errors about not being able to find various lib32 files. Simply delete the “lib32___” stuff.

user@machine:~/abinit-6.8.1$ sudo apt-get install autoconf bison build-essential cmake csh doxygen flex fort77 freeglut3-dev g++ g++-multilib gcc gcc-multilib gettext gfortran gnuplot ia32-libs lib32asound2 lib32gcc1 lib32gcc1-dbg lib32gfortran3 lib32gomp1 lib32mudflap0 lib32ncurses5 lib32nss-mdns lib32z1 libavdevice52 libblas3gf libbz2-dev libc6-dev-i386 libc6-i386 libfreeimage-dev libglew1.5-dev liblapack3gf libnetcdf-dev libopenal1 libopenexr-dev libopenmpi-dev libpng12-dev libqt4-dev libssl-dev libstdc++6-4.3-dbg libstdc++6-4.3-dev libstdc++6-4.3-doc libxext-dev libxi-dev libxml-simple-perl libxmu-dev libxt-dev mercurial netcdf-bin nfs-common nfs-kernel-server openmpi-bin patch portmap python2.6-dev rpm ssh tcsh xorg-dev zlib1g-dev libblas-doc libblas-dev liblapack-doc liblapack-dev
user@machine:~$ sudo aptitude update
user@machine:~$ sudo aptitude upgrade
user@machine:~$ sudo shutdown -r now

2. LD_LIBRARY_PATH Addition To .profile

If you’re using a 32-bit Ubuntu install, change the “lib64” to simply “lib”.

user@machine:~$ pico .profile

Copy and paste the following into your .profile.

LD_LIBRARY_PATH="/usr/lib64/openmpi/lib/"

Crtl-X and Yes.

user@machine:~$ source .profile

3. Installing Abinit 6.8.1

And the fun begins.

user@machine:~$ gunzip abinit-6.8.1.tar.gz 
user@machine:~$ tar xvf abinit-6.8.1.tar 
user@machine:~$ cd abinit-6.8.1/

NOTE: I performed several problematic trials before a successful parallel installation. If you saw the following from previous attempts…

configure: creating ./config.status
config.status: error: cannot find input file: `config.dump.in'

… don’t diagnose, just delete the current directory and re-extract a fresh copy of the abinit source.

My first simple ./configure run produced the following output:

DO NOT USE: user@machine:~/abinit-6.8.1$ ./configure

...

Summary of important options:

  * C compiler      : gnu version 4.4
  * Fortran compiler: gnu version 4.4
  * architecture    : unknown unknown (64 bits)

  * debugging       : basic
  * optimizations   : standard

  * MPI    enabled  : no
  * MPI-IO enabled  : no
  * GPU    enabled  : no (none)

  * TRIO   flavor = netcdf+etsf_io-fallback
  * TIMER  flavor = abinit (libs: ignored)
  * LINALG flavor = netlib-fallback (libs: internal)
  * FFT    flavor = none (libs: ignored)
  * MATH   flavor = none (libs: ignored)
  * DFT    flavor = libxc-fallback+atompaw-fallback+bigdft-fallback+wannier90-fallback

Configuration complete.
You may now type "make" to build ABINIT.
(or, on a SMP machine, "make mj4", or "make multi multi_nprocs=")

Note the lack of MPI-enabling. Changing the options in configure to announce-enable MPI and specify the compiler location…

DO NOT USE: user@machine:~/abinit-6.8.1$ ./configure --enable-mpi --with-mpi-prefix="/usr/bin"
 
Summary of important options:

  * C compiler      : gnu version 4.4
  * Fortran compiler: gnu version 4.4
  * architecture    : unknown unknown (64 bits)

  * debugging       : basic
  * optimizations   : standard

  * MPI    enabled  : yes
  * MPI-IO enabled  : yes
  * GPU    enabled  : no (none)

  * TRIO   flavor = netcdf+etsf_io-fallback
  * TIMER  flavor = abinit (libs: ignored)
  * LINALG flavor = netlib-fallback (libs: internal)
  * FFT    flavor = none (libs: ignored)
  * MATH   flavor = none (libs: ignored)
  * DFT    flavor = libxc-fallback+atompaw-fallback+bigdft-fallback+wannier90-fallback

Configuration complete.
You may now type "make" to build ABINIT.
(or, on a SMP machine, "make mj4", or "make multi multi_nprocs=")

… did show MPI enabled.

The thrill of ./configure victory was short-lived. My first attempt to make ended as follows:

DO NOT USE: user@machine:~/abinit-6.8.1$ make mj4

...

Error: Symbol 'xmpi_offset_kind' at (1) has no IMPLICIT type
m_xmpi.F90:1875.25:

 integer(XMPI_OFFSET_KIND),intent(inout) :: offset
                         1
Error: Symbol 'xmpi_offset_kind' at (1) has no IMPLICIT type
m_xmpi.F90:2002.25:

 integer(XMPI_OFFSET_KIND),intent(out) :: my_offpad
                         1
Error: Symbol 'xmpi_offset_kind' at (1) has no IMPLICIT type
m_xmpi.F90:2244.25:

 integer(XMPI_OFFSET_KIND),intent(in) :: offset
                         1
Error: Symbol 'xmpi_offset_kind' at (1) has no IMPLICIT type
Fatal Error: Error count reached limit of 25.
make[5]: *** [m_xmpi.o] Error 1
make[5]: Leaving directory `/home/user/abinit-6.8.1/src/12_hide_mpi'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/user/abinit-6.8.1/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/user/abinit-6.8.1'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/user/abinit-6.8.1'
make[1]: *** [multi] Error 2
make[1]: Leaving directory `/home/user/abinit-6.8.1'
make: *** [mj4] Error 2

As usual, I put the error here because you’re likely searching against the same errors in your build attempts. Your first solution might be to try to force specify the fortran compiler (especially if you’re familiar with the integer(XMPI_OFFSET_KIND) errors, which appeared to me at first blush to be something specific to the GNU fortran compiler choice). As the code’s in f90, calling f77 won’t do you much good…

DO NOT USE: user@machine:~/abinit-6.8.1$ ./configure --enable-mpi="yes" FC=f77

...

checking whether f77 accepts -g... yes
checking whether we are using the GNU Fortran 77 compiler... yes
checking whether f77 accepts -g... yes
configure: setting up Fortran 90
checking for Fortran flag to compile .f90 files... unknown
configure: error: Fortran could not compile .f90 files
make[3]: *** [configure-stamp] Error 1
make[3]: Leaving directory `/home/user/abinit-6.8.1/plugins/netcdf'
make[2]: *** [package-ready] Error 2
make[2]: Leaving directory `/home/user/abinit-6.8.1/plugins/netcdf'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/user/abinit-6.8.1/plugins'
make: *** [multi] Error 2

Specifying gfortran might be your next solution,

DO NOT USE: user@machine:~/abinit-6.8.1$ ./configure --enable-mpi="yes" FC=gfortran --with-mpi-prefix=1

...

configure: Initializing MPI support
configure: looking for MPI in 1
configure: error: use --with-mpi-prefix or set FC, not both

And you may reach your moment of clarity. Why are you calling the non-mpi fortran compiler? Right! The BLAS and LAPACK are late additions (may or may not improve run speed).

user@machine:~/abinit-6.8.1$ ./configure --enable-mpi --with-mpi-level=2 FC=mpif90 --with-linalg-libs="-llapack -lblas"

 ...

 ==============================================================================
 === Overall startup                                                        ===
 ==============================================================================

checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... (cached) gawk
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
configure: not loading options (no config file available)

 ==============================================================================
 === Build-system information                                               ===
 ==============================================================================

configure: ABINIT version 6.8.1
configure: M4 010416 - Autoconf 026800 - Automake 011100 - Libtool 020204
configure: reporting user interface changes:

 ==============================================================================
 === Option consistency checking                                            ===
 ==============================================================================

configure: checking consistency of library-related options
configure:  |---> all OK
configure: 
configure: checking consistency of plug-in options
configure:  |---> all OK
configure: 
configure: checking consistency of experimental options
configure:  |---> all OK
configure: 
configure:  |---> all OK
configure: 
configure: parsing command-line options

 ==============================================================================
 === Connector startup                                                      ===
 ==============================================================================

configure: Initializing MPI support
checking for mpirun... mpirun
configure: WARNING: MPI runner mpirun may be incompatible with MPI compilers
configure: compiler checks deferred
configure: GPU support disabled from command-line

 ==============================================================================
 === Utilities                                                              ===
 ==============================================================================

checking for sh... /bin/sh
checking for mv... /bin/mv
checking for perl... /usr/bin/perl
checking for rm... /bin/rm
checking for dvips... dvips
checking for dvipdf... dvipdf
checking for latex... no
checking for markdown... no
checking for patch... patch
checking for ps2pdf... ps2pdf
checking for tar... tar
checking for wget... wget
checking for curl... no
configure: using internal version of MarkDown

 ==============================================================================
 === C support                                                              ===
 ==============================================================================

checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking which type of compiler we have... gnu 4.4
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking whether byte ordering is bigendian... no

 ==============================================================================
 === C++ support                                                            ===
 ==============================================================================

checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking which type of C++ compiler we have... gnu 4.4

 ==============================================================================
 === Fortran support                                                        ===
 ==============================================================================

checking for mpif90... /usr/bin/mpif90
checking whether we are using the GNU Fortran compiler... yes
checking whether mpif90 accepts -g... yes
checking which type of Fortran compiler we have... gnu 4.4
checking fortran 90 modules extension... mod
checking for Fortran flag to compile .F90 files... none
configure: determining Fortran module case
checking whether Fortran modules are upper-case... no
checking how to get verbose linking output from mpif90... -v
checking for Fortran libraries of mpif90...  -L/usr/lib/openmpi/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../.. -L/usr/lib/x86_64-linux-gnu -lmpi_f90 -lmpi_f77 -lmpi -lopen-rte -lopen-pal -ldl -lnsl -lutil -lgfortranbegin -lgfortran -lm -lpthread
checking for dummy main to link with Fortran libraries... none
checking for Fortran name-mangling scheme... lower case, underscore, no extra underscore

 ==============================================================================
 === Python support                                                         ===
 ==============================================================================

checking for python... python
checking for Python CPPFLAGS... -I/usr/include/python2.6
checking for bzr... no
checking for Python NumPy headers... not found
checking numarray/arrayobject.h usability... no
checking numarray/arrayobject.h presence... no
checking for numarray/arrayobject.h... no

 ==============================================================================
 === Libraries and linking                                                  ===
 ==============================================================================

checking for ar... ar
checking for ranlib... ranlib

 ==============================================================================
 === Hints                                                                  ===
 ==============================================================================

checking for cpp... cpp
checking for a true C preprocessor... cpp
checking which cpp hints to apply... default/default/default
checking which cc hints to apply... gnu/default/default
checking which xpp hints to apply... none/none/none
checking which cxx hints to apply... gnu/default/default
checking which fpp hints to apply... default/default/default
checking which fc hints to apply... gnu/default/default
checking which ar hints to apply... none/none/none
checking which Fortran preprocessor to use... 
checking which Fortran preprocessor flags to apply... 
checking whether to wrap Fortran compiler calls... no

 ==============================================================================
 === Debugging                                                              ===
 ==============================================================================

checking debugging status... enabled (profile mode: basic)
configure: setting C debug flags to '-g'
configure: setting C++ debug flags to '-g'
configure: setting Fortran debug flags to '-g'
checking whether to activate debug mode in source files... no
checking which cc debug flags to apply... gnu/default/default
checking which cxx debug flags to apply... none/none/none
checking which fc debug flags to apply... gnu/default/default
checking whether to activate design-by-contract debugging... no

 ==============================================================================
 === Optimizations                                                          ===
 ==============================================================================

checking optimization status... enabled (profile mode: standard)
checking which cc optimizations to apply... gnu/default/default
checking which cxx optimizations to apply... gnu/default/default
checking which fc optimizations to apply... gnu/default/default
checking whether to apply per-directory optimizations... yes

 ==============================================================================
 === 64-bit support                                                         ===
 ==============================================================================

checking for a 64-bit architecture... yes
checking whether to use 64-bit flags... no
checking for user-defined 64-bit flags... 

 ==============================================================================
 === Build flags                                                            ===
 ==============================================================================

configure: static builds may be performed

 ==============================================================================
 === Advanced compiler features                                             ===
 ==============================================================================

checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking mcheck.h usability... yes
checking mcheck.h presence... yes
checking for mcheck.h... yes
checking for abort... yes
checking size of char... 1
checking size of short... 2
checking size of int... 4
checking size of long... 8
checking size of long long... 8
checking size of unsigned int... 4
checking size of unsigned long... 8
checking size of unsigned long long... 8
checking size of float... 4
checking size of double... 8
checking size of long double... 16
checking size of size_t... 8
checking size of ptrdiff_t... 8
checking for an ANSI C-conforming const... yes
checking for size_t... yes
checking whether the Fortran compiler supports allocatable arrays in datatypes... yes
checking whether the Fortran compiler provides the iso_c_binding module... yes
checking whether the Fortran compiler accepts exit()... yes
checking whether the Fortran compiler accepts flush()... yes
checking whether the Fortran compiler accepts flush_()... no
checking whether the Fortran compiler accepts gamma()... yes
checking whether the Fortran compiler accepts getenv()... yes
checking whether the Fortran compiler accepts getpid()... no
checking whether the Fortran compiler accepts the null() intrinsic... yes
checking whether the Fortran compiler accepts quadruple integers... yes
checking whether the Fortran compiler accepts long lines... yes
checking whether the Fortran compiler supports stream IO... yes
checking whether the Fortran compiler accepts etime()... no
checking whether to use C clock for timings... no

 ==============================================================================
 === Connectors / Fallbacks                                                 ===
 ==============================================================================

checking whether the C compiler supports MPI... no
checking whether the C++ compiler supports MPI... no
checking whether the Fortran Compiler supports MPI... yes
checking whether MPI is usable... no
configure: WARNING: MPI support is broken!
configure: enabling MPI I/O support
checking whether to build MPI code... yes
checking whether to build MPI I/O code... yes
checking whether to build MPI time tracing code... no
checking which level of MPI is supported by the Fortran compiler... 2
configure: forcing MPI-2 standard support
checking whether the MPI library supports MPI_CREATE_TYPE_STRUCT... yes
checking whether to activate GPU support... no
checking for the requested transferable I/O support... netcdf+etsf_io
checking netcdf.h usability... yes
checking netcdf.h presence... yes
checking for netcdf.h... yes
checking for library containing nc_open... -lnetcdf
checking for library containing nf_open... -lnetcdff
checking for Fortran module includes... -I/usr/include
checking whether NetCDF Fortran wrappers work... yes
checking whether NetCDF supports MPI I/O... no
checking for ETSF_IO libraries to try... -letsf_io_utils -letsf_io
checking for Fortran module includes... -I/usr/include (cached)
checking whether ETSF_IO libraries work... no
configure: WARNING: falling back to internal etsf_io version
checking for the actual transferable I/O support... netcdf+etsf_io-fallback
checking for the requested timer support... abinit
checking for the actual timer support... abinit
checking for the requested linear algebra support... netlib
checking for BLAS support in specified libraries... no
checking for LAPACK support in specified libraries... no
checking for BLACS support in specified libraries... no
checking for ScaLAPACK support in specified libraries... no
checking whether we have a serial linear algebra support... no
configure: WARNING: falling back to internal linear algebra libraries
checking whether we have a parallel linear algebra support... no
checking for the actual linear algebra support... netlib-fallback
checking for the requested math support... none
checking for the actual math support... none
checking for the requested FFT support... none
checking for the actual FFT support... none
checking for the requested DFT support... atompaw+bigdft+libxc+wannier90
checking xc.h usability... no
checking xc.h presence... no
checking for xc.h... no
checking xc_funcs.h usability... no
checking xc_funcs.h presence... no
checking for xc_funcs.h... no
checking for library containing xc_func_init... no
checking for Fortran module includes... -I/usr/include (cached)
configure: WARNING: falling back to internal libxc version
configure: WARNING: AtomPAW recommends missing LibXC support
configure: WARNING: BigDFT requires missing linear algebra support
configure: WARNING: falling back to internal atompaw version
configure: WARNING: BigDFT requires missing LibXC support
configure: WARNING: BigDFT requires missing linear algebra support
configure: WARNING: falling back to internal bigdft version
configure: WARNING: wannier90 requires missing linear algebra support
configure: WARNING: falling back to internal wannier90 version
checking for the actual DFT support... libxc-fallback+atompaw-fallback+bigdft-fallback+wannier90-fallback
configure: using former plugins as a temporary workaround
configure: fallbacks to enable => atompaw bigdft etsf_io libxc linalg wannier90
checking whether to build atompaw... yes
checking whether to build bigdft... yes
checking whether to build etsf_io... yes
checking whether to build fox... no
checking whether to build libxc... yes
checking whether to build linalg... yes
checking whether to build netcdf... no
checking whether to build wannier90... yes
configure: using tarball repository /home/quantum/.abinit/tarballs
checking for a source tarball of LINALG... yes
checking for md5sum... md5sum
configure: tarball MD5 check succeeded
configure: applying LINALG tricks (vendor: gnu, version: 4.4)
checking whether to enable the LINALG fallback... yes
checking whether to build the LINALG fallback... yes
checking whether to enable the FOX fallback... no
checking whether to build the FOX fallback... no
checking whether to enable the NETCDF fallback... no
checking whether to build the NETCDF fallback... no
checking for a source tarball of ETSF_IO... yes
configure: tarball MD5 check succeeded
configure: applying ETSF_IO tricks (vendor: gnu, version: 4.4)
checking whether to enable the ETSF_IO fallback... yes
checking whether to build the ETSF_IO fallback... yes
checking for a source tarball of LIBXC... yes
configure: tarball MD5 check succeeded
configure: applying LIBXC tricks
checking whether to enable the LIBXC fallback... yes
checking whether to build the LIBXC fallback... yes
checking for a source tarball of ATOMPAW... yes
configure: tarball MD5 check succeeded
configure: applying AtomPAW tricks (vendor: gnu, version: 4.4)
checking whether to enable the ATOMPAW fallback... yes
checking whether to build the ATOMPAW fallback... yes
checking for a source tarball of BIGDFT... yes
configure: tarball MD5 check succeeded
configure: applying BigDFT tricks (vendor: gnu, version: 4.4)
checking whether to enable the BIGDFT fallback... yes
checking whether to build the BIGDFT fallback... yes
checking for a source tarball of WANNIER90... yes
configure: tarball MD5 check succeeded
configure: applying Wannier90 tricks (vendor: gnu, version: 4.4)
checking whether to enable the WANNIER90 fallback... yes
checking whether to build the WANNIER90 fallback... yes

 ==============================================================================
 === Nightly builds                                                         ===
 ==============================================================================

checking whether to build test timeout code... no
checking timeout for automatic tests... none

 ==============================================================================
 === Experimental developments                                              ===
 ==============================================================================

checking whether to enable bindings... no
checking whether to enable BSE unpacking... no
checking whether to enable CLib... no
checking whether to build exports... no
checking whether to accelerate 'make check'... no
checking whether to enable GW cut-off... no
checking whether to enable GW double-precision calculations... no
checking whether to enable optimal GW... no
checking whether to enable GW wrapper... no
checking whether to activate maintainer checks... no
checking whether to use macroave... yes
checking whether to reduce 'make check' for packaging... no
checking whether to read input from stdin... yes
checking whether to activate Symmetric Multi-Processing... no
checking whether to activate ZDOTC and ZDOTU workaround... no

 ==============================================================================
 === Subsystems                                                             ===
 ==============================================================================

configure: the Abinit GUI will never be built

 ==============================================================================
 === Output                                                                 ===
 ==============================================================================

configure: creating ./config.status
config.status: creating config.dump
config.status: creating config.mk
config.status: creating config.pc
config.status: creating config.sh
config.status: creating config/wrappers/wrap-fc
config.status: creating src/incs/Makefile
config.status: creating src/mods/Makefile
config.status: creating src/16_hideleave/m_build_info.F90
config.status: creating tests/tests.env
config.status: creating tests/tests-install.env
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/01_gsl_ext/Makefile
config.status: creating src/01_interfaces_ext/Makefile
config.status: creating src/01_macroavnew_ext/Makefile
config.status: creating src/01_qespresso_ext/Makefile
config.status: creating src/02_clib/Makefile
config.status: creating src/10_defs/Makefile
config.status: creating src/12_hide_mpi/Makefile
config.status: creating src/14_hidewrite/Makefile
config.status: creating src/15_gpu_toolbox/Makefile
config.status: creating src/16_hideleave/Makefile
config.status: creating src/18_memory_mpi/Makefile
config.status: creating src/18_timing/Makefile
config.status: creating src/27_toolbox_oop/Makefile
config.status: creating src/28_numeric_noabirule/Makefile
config.status: creating src/32_contract/Makefile
config.status: creating src/32_util/Makefile
config.status: creating src/42_geometry/Makefile
config.status: creating src/42_nlstrain/Makefile
config.status: creating src/42_parser/Makefile
config.status: creating src/43_ptgroups/Makefile
config.status: creating src/44_geomoptim/Makefile
config.status: creating src/45_psp_parser/Makefile
config.status: creating src/47_xml/Makefile
config.status: creating src/49_gw_toolbox_oop/Makefile
config.status: creating src/50_abitypes_defs/Makefile
config.status: creating src/51_manage_cuda/Makefile
config.status: creating src/51_manage_mpi/Makefile
config.status: creating src/52_fft_mpi_noabirule/Makefile
config.status: creating src/53_abiutil/Makefile
config.status: creating src/53_ffts/Makefile
config.status: creating src/53_spacepar/Makefile
config.status: creating src/56_mixing/Makefile
config.status: creating src/56_recipspace/Makefile
config.status: creating src/56_xc/Makefile
config.status: creating src/57_iovars/Makefile
config.status: creating src/59_io_mpi/Makefile
config.status: creating src/61_ionetcdf/Makefile
config.status: creating src/62_cg_noabirule/Makefile
config.status: creating src/62_iowfdenpot/Makefile
config.status: creating src/62_occeig/Makefile
config.status: creating src/62_poisson/Makefile
config.status: creating src/62_wvl_wfs/Makefile
config.status: creating src/63_bader/Makefile
config.status: creating src/64_atompaw/Makefile
config.status: creating src/65_nonlocal/Makefile
config.status: creating src/65_psp/Makefile
config.status: creating src/66_paw/Makefile
config.status: creating src/66_wfs/Makefile
config.status: creating src/67_common/Makefile
config.status: creating src/68_dmft/Makefile
config.status: creating src/68_recursion/Makefile
config.status: creating src/68_rsprc/Makefile
config.status: creating src/69_wfdesc/Makefile
config.status: creating src/70_gw/Makefile
config.status: creating src/71_bse/Makefile
config.status: creating src/72_response/Makefile
config.status: creating src/77_ddb/Makefile
config.status: creating src/77_lwf/Makefile
config.status: creating src/77_suscep/Makefile
config.status: creating src/79_seqpar_mpi/Makefile
config.status: creating src/83_cut3d/Makefile
config.status: creating src/93_rdm/Makefile
config.status: creating src/95_drive/Makefile
config.status: creating src/98_main/Makefile
config.status: creating src/libs/Makefile
config.status: creating tests/Nightly/Makefile
config.status: creating plugins/Makefile
config.status: creating plugins/atompaw/Makefile
config.status: creating plugins/bigdft/Makefile
config.status: creating plugins/etsf_io/Makefile
config.status: creating plugins/fox/Makefile
config.status: creating plugins/libxc/Makefile
config.status: creating plugins/linalg/Makefile
config.status: creating plugins/netcdf/Makefile
config.status: creating plugins/wannier90/Makefile
config.status: creating bindings/Makefile
config.status: creating bindings/parser/Makefile
config.status: creating doc/Makefile
config.status: creating tests/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing dump-optim commands
config.status: executing script-perms commands
config.status: executing long-lines commands

 ==============================================================================
 === Final remarks                                                          ===
 ==============================================================================


Summary of important options:

  * C compiler      : gnu version 4.4
  * Fortran compiler: gnu version 4.4
  * architecture    : unknown unknown (64 bits)

  * debugging       : basic
  * optimizations   : standard

  * MPI    enabled  : yes
  * MPI-IO enabled  : yes
  * GPU    enabled  : no (none)

  * TRIO   flavor = netcdf+etsf_io-fallback
  * TIMER  flavor = abinit (libs: ignored)
  * LINALG flavor = netlib-fallback (libs: internal)
  * FFT    flavor = none (libs: ignored)
  * MATH   flavor = none (libs: ignored)
  * DFT    flavor = libxc-fallback+atompaw-fallback+bigdft-fallback+wannier90-fallback

Configuration complete.
You may now type "make" to build ABINIT.
(or, on a SMP machine, "make mj4", or "make multi multi_nprocs=")

With that complete, we “make” our parallel Abinit install.

user@machine:~/abinit-6.8.1$ make mj4
user@machine:~/abinit-6.8.1$ sudo make install

The above runs successfully (for me) and places abinit in /usr/local/bin (which is already in your path).

To run tests, simply do the following:

user@machine:~/abinit-6.8.1$ cd tests/
user@machine:~/abinit-6.8.1/tests$ ls
user@machine:~/abinit-6.8.1/tests$ make tests_min
user@machine:~/abinit-6.8.1/tests$ 
user@machine:~/abinit-6.8.1/tests$ exit
user@adamant49:~/Programs$ exit

The above may not be an “optimized” installation, but works perfectly well (look for a possible tweak to the above that may effort some optimization).

Finally, running Abinit in parallel with OpenMPI is quite simple.

mpirun -np 4 /usr/local/bin/abinit < RUN.files >& RUN.log &

No -machinefile is needed, as we’re running in SMP mode, and no mpd daemon needs to be started.

Obligatory

  • CNYO

  • Sol. Sys. Amb.

  • Ubuntu 4 Nano

  • NMT Review

  • N-Fact. Collab.

  • Pres. Asn. CNY

  • T R P Nanosys

  • Nano Gallery

  • nano gallery
  • Aerial Photos

    More @ flickr.com

    Syracuse Scenes

    More @ flickr.com