forum@abinit.org
Subject: The ABINIT Users Mailing List ( CLOSED )
List archive
- From: Pascal Boulet <pascal.boulet@univ-provence.fr>
- To: forum@abinit.org
- Subject: Re: [abinit-forum] Can I generate "prtgeo 1" _GEO output files afterwards?
- Date: Mon, 25 May 2009 14:36:59 +0200
Hello Rob, I am not sure this post will answer your question. Here is a piece of basic code I wrote to parse the ABINIT output file. Basically, it gets the coordinates out of the ouput file and dump them into a xyz "trajectory" suitable for VMD. It should also work during the course of the calculation or if the job stopped for some reasons. Only the coordinates are read (no energies, no gradients). I would be glad to know if it works for you. Hope this help, Best Regards Pascal Rob wrote: 255164.18295.qm@web33308.mail.mud.yahoo.com" type="cite">once you have the structure, you can probably run the same input with a very lax tolerance, low ecut, 1 k-point, and nstep 1 (in a different directory of course, and transferring the converged lattice and atomic positions to the new input file) setting prtgeo 1: the electronic states are not used to give geo information. Tell us if it works. How do you use the GEO files for visualization?I like VMD for visualization. I'm about to write a plugin for VMD, so that ABINIT-generated files can be read directly by VMD. I'm interested in structure configurations and charge densities. The easiest files to parse for structure information are the _GEO files. Rob.On Mon, May 25, 2009 at 1:52 PM, Rob <spamrefuse@yahoo.com> wrote:Hi, I learned that a useful interface for visualization are the foobar_GEO output files, by specifying "prtgeo 1" in the input file. Now, if I did not (or have fogotten to) add this variable in the input file, is there a way to generate these "_GEO" files afterwards, without running the whole calculation again....? Thanks, Rob. -- Dr. Pascal Boulet, Computational Chemist University Aix-Marseille I Laboratoire Chimie Provence, UMR6264 Centre Saint-Jerome, Bat. MADIREL F-13397 MARSEILLE Cedex 20, France Tel. +33 (0) 491 63 71 17 Fax. +33 (0) 491 63 71 11 courriel: pascal.boulet@univ-provence.fr http://www.lc-provence.fr http://allos.up.univ-mrs.fr/boulet |
program abinit2xmol implicit none real(kind=8),parameter :: r0=0.52917720859d0 character(len=2),dimension(54),parameter :: sym=(/'H ','He', & 'Li','Be','B ','C ','N ','O ','F ','Ne', & 'Na','Mg','Al','Si','P ','S ','Cl','Ar', & 'K ','Ca','Sc','Ti','V ','Cr','Mn','Fe','Co','Ni','Cu','Zn', & 'Ga','Ge','As','Se','Br','Kr', & 'Rb','Sr','Y ','Zr','Nb','Mo','Tc','Ru','Rh','Pd','Ag','Cd', & 'In','Sn','Sb','Te','I ','Xe'/) real(kind=8),dimension(:,:),allocatable :: x character(len=2),dimension(:),allocatable :: elem real(kind=8),dimension(3) :: a integer,dimension(:),allocatable :: typatom integer,dimension(:),allocatable :: znuc integer :: i,j,k,l,n,ierr integer(kind=8) :: natom integer(kind=8) :: ntypatom character(len=80) :: line character(len=25) :: abinitfn print*,'abinit output filename?' read*,abinitfn open(10,file=abinitfn,status='old') open(11,file='abinit.xmol',status='unknown') line=' ' do while (index(line,'acell').eq.0) read(10,'(A80)') line enddo read(line(12:),*) (a(i),i=1,3) a=a*r0 do while (index(line,'natom').eq.0) read(10,'(A80)') line enddo read(line(12:),*) natom allocate(x(natom,3)) allocate(typatom(natom)) allocate(elem(natom)) do while (index(line,'ntypat').eq.0) read(10,'(A80)') line enddo read(line(12:),*) ntypatom allocate(znuc(ntypatom)) line=' ' do while (index(line,'typat').eq.0) read(10,'(A80)') line enddo i=int(natom/20) j=mod(natom,20) if (i.eq.0) then read(line(12:),*) (typatom(k),k=1,natom) else if (i.eq.1) then read(line(12:),*) (typatom(k),k=1,20) n=k read(10,'(A80)') line read(line(12:),*) (typatom(k),k=n,n+j-1) else if (i.gt.1) then read(line(12:),*) (typatom(k),k=1,20) n=k do l=1,i-1 read(10,'(A80)') line read(line(12:),*) (typatom(k),k=n,n+19) n=k enddo read(10,'(A80)') line read(line(12:),*) (typatom(k),k=n,n+j-1) endif line=' ' do while (index(line,'znucl').eq.0) read(10,'(A80)') line enddo read(line(12:),*) (znuc(i),i=1,ntypatom) l1:do do while (index(line,'Cartesian coordinates (bohr)').eq.0) read(10,'(A80)',iostat=ierr) line if (ierr.ne.0) exit l1 enddo do i=1,natom read(10,'(A80)',iostat=ierr) line if (ierr.ne.0) exit l1 read(line,*,iostat=ierr) (x(i,j),j=1,3) if (ierr.ne.0) exit l1 elem(i)=sym(znuc(typatom(i))) enddo write(11,'(I5)') natom write(11,'(A)') '' x=x*r0 do i=1,natom write(11,'(A2,X,3(F15.8))') elem(i),(x(i,j),j=1,3) enddo enddo l1 close(10) close(11) end program abinit2xmol
- [abinit-forum] Can I generate "prtgeo 1" _GEO output files afterwards?, Rob, 05/25/2009
- Re: [abinit-forum] Can I generate "prtgeo 1" _GEO output files afterwards?, matthieu verstraete, 05/25/2009
- <Possible follow-up(s)>
- Re: [abinit-forum] Can I generate "prtgeo 1" _GEO output files afterwards?, Rob, 05/25/2009
- Re: [abinit-forum] Can I generate "prtgeo 1" _GEO output files afterwards?, Pascal Boulet, 05/25/2009
Archive powered by MHonArc 2.6.15.