Skip to content

Commit

Permalink
Version 3.6; Last update 2019/05/21; Accessed 2019/05/27
Browse files Browse the repository at this point in the history
  • Loading branch information
ruixingw committed May 27, 2019
1 parent 644dd54 commit 9a50dd0
Show file tree
Hide file tree
Showing 34 changed files with 3,518 additions and 619 deletions.
Binary file modified Multiwfn
Binary file not shown.
Binary file modified Multiwfn quick start.pdf
Binary file not shown.
Binary file renamed Multiwfn_3.6(dev).pdf → Multiwfn_3.6.pdf
Binary file not shown.
1,790 changes: 1,790 additions & 0 deletions examples/C4H8.wfn

Large diffs are not rendered by default.

65 changes: 65 additions & 0 deletions examples/CDFT.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
Note: the E(HOMO) of TCE used for evaluating nucleophilicity index is the value evaluated at B3LYP/6-31G* level

Hirshfeld charges, condensed Fukui functions and condensed dual descriptors
Units used below are "e" (elementary charge)
Atom q(N) q(N+1) q(N-1) f- f+ f0 CDD
1(C ) -0.0587 -0.1185 0.0852 0.1439 0.0598 0.1018 -0.0841
2(C ) -0.0390 -0.1674 0.0268 0.0658 0.1284 0.0971 0.0626
3(C ) -0.0597 -0.1873 0.0319 0.0916 0.1276 0.1096 0.0360
4(C ) 0.0737 0.0216 0.1739 0.1001 0.0522 0.0762 -0.0480
5(C ) -0.0731 -0.1956 0.0090 0.0821 0.1225 0.1023 0.0404
6(C ) -0.0415 -0.1730 0.0336 0.0751 0.1315 0.1033 0.0563
7(H ) 0.0417 -0.0048 0.0993 0.0576 0.0464 0.0520 -0.0112
8(H ) 0.0450 -0.0193 0.0904 0.0455 0.0642 0.0548 0.0187
9(H ) 0.0473 -0.0160 0.0953 0.0480 0.0633 0.0557 0.0153
10(H ) 0.0387 -0.0230 0.0854 0.0467 0.0617 0.0542 0.0150
11(H ) 0.0444 -0.0207 0.0914 0.0470 0.0651 0.0561 0.0181
12(O ) -0.1977 -0.2443 -0.0517 0.1460 0.0465 0.0963 -0.0995
13(H ) 0.1789 0.1482 0.2294 0.0505 0.0307 0.0406 -0.0197

Condensed local electrophilicity/nucleophilicity index (e*eV)
Atom Electrophilicity Nucleophilicity
1(C ) 0.02576 0.45535
2(C ) 0.05533 0.20827
3(C ) 0.05496 0.28982
4(C ) 0.02249 0.31688
5(C ) 0.05280 0.25977
6(C ) 0.05665 0.23773
7(H ) 0.02001 0.18234
8(H ) 0.02767 0.14394
9(H ) 0.02729 0.15195
10(H ) 0.02659 0.14779
11(H ) 0.02807 0.14875
12(O ) 0.02005 0.46203
13(H ) 0.01325 0.15965

Condensed local softnesses (Hartree*e) and relative electrophilicity/nucleophilicity (dimensionless)
Atom s- s+ s0 s+/s- s-/s+
1(C ) 0.3761 0.1562 0.2661 0.4154 2.4076
2(C ) 0.1720 0.3356 0.2538 1.9510 0.5126
3(C ) 0.2393 0.3333 0.2863 1.3926 0.7181
4(C ) 0.2617 0.1364 0.1990 0.5211 1.9190
5(C ) 0.2145 0.3202 0.2674 1.4925 0.6700
6(C ) 0.1963 0.3436 0.2700 1.7500 0.5714
7(H ) 0.1506 0.1213 0.1360 0.8057 1.2412
8(H ) 0.1189 0.1678 0.1433 1.4116 0.7084
9(H ) 0.1255 0.1655 0.1455 1.3187 0.7583
10(H ) 0.1221 0.1612 0.1416 1.3211 0.7570
11(H ) 0.1228 0.1702 0.1465 1.3858 0.7216
12(O ) 0.3816 0.1216 0.2516 0.3186 3.1384
13(H ) 0.1319 0.0804 0.1061 0.6094 1.6409

E(N): -307.464860 Hartree
E(N+1): -307.383614 Hartree
E(N-1): -307.163438 Hartree
E_HOMO(N): -0.218913 Hartree, -5.9569 eV
E_HOMO(N+1): 0.161297 Hartree, 4.3891 eV
E_HOMO(N-1): -0.464864 Hartree, -12.6496 eV
Vertical IP: 0.301421 Hartree, 8.2021 eV
Vertical EA: -0.081246 Hartree, -2.2108 eV
Mulliken electronegativity: 0.110088 Hartree, 2.9956 eV
Chemical potential: -0.110088 Hartree, -2.9956 eV
Hardness (=fundamental gap): 0.382667 Hartree, 10.4129 eV
Softness: 2.613235 Hartree^-1, 0.0960 eV^-1
Electrophilicity index: 0.015835 Hartree, 0.4309 eV
Nucleophilicity index: 0.116285 Hartree, 3.1643 eV
Binary file added examples/colorRGB.pdf
Binary file not shown.
15 changes: 15 additions & 0 deletions examples/phenol.xyz
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
13
Optimized at B3LYP/6-31G* level
C 0.02082100 -1.85733400 0.00000000
C 1.22048400 -1.14011500 0.00000000
C 1.21812200 0.25309000 0.00000000
C 0.00000000 0.94117500 0.00000000
C -1.20625800 0.23245100 0.00000000
C -1.18949000 -1.16312800 0.00000000
H 0.03003900 -2.94340800 0.00000000
H 2.16996900 -1.66955400 0.00000000
H 2.14242000 0.82231900 0.00000000
H -2.15282600 0.77102800 0.00000000
H -2.13099000 -1.70650600 0.00000000
O 0.05161500 2.30900800 0.00000000
H -0.85360600 2.65722900 0.00000000
91 changes: 91 additions & 0 deletions examples/scripts/showcub.vmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
#This script is used to draw isosurface map of cube files generated by Multiwfn
#Written by Tian Lu ([email protected]), 2019-May-18

proc cub {filename {isoval 0.05}} {
#default material
set mater Glossy

color Display Background white
display depthcue off
display rendermode GLSL
axes location Off
color Name C tan
color change rgb tan 0.700000 0.560000 0.360000
material change mirror Opaque 0.15
material change outline Opaque 4.000000
material change outlinewidth Opaque 0.5
material change ambient Glossy 0.1
material change diffuse Glossy 0.600000
material change opacity Glossy 0.75
material change shininess Glossy 1.0
light 3 on

foreach i [molinfo list] {
mol delete $i
}

mol new $filename.cub
mol modstyle 0 top CPK 0.800000 0.300000 22.000000 22.000000
mol addrep top
mol modstyle 1 top Isosurface $isoval 0 0 0 1 1
mol modcolor 1 top ColorID 12
mol modmaterial 1 top $mater
mol addrep top
mol modstyle 2 top Isosurface -$isoval 0 0 0 1 1
mol modcolor 2 top ColorID 22
mol modmaterial 2 top $mater
display distance -8.0
display height 10
}

proc cubiso {isoval} {
mol modstyle 1 top Isosurface $isoval 0 0 0 1 1
mol modstyle 2 top Isosurface -$isoval 0 0 0 1 1
}

proc cub2 {filename1 filename2 {isoval 0.05}} {
#default material
set mater Glossy

color Display Background white
display depthcue off
display rendermode GLSL
axes location Off
color Name C tan
color change rgb tan 0.700000 0.560000 0.360000
material change mirror Opaque 0.15
material change outline Opaque 4.000000
material change outlinewidth Opaque 0.5
material change ambient Glossy 0.1
material change diffuse Glossy 0.600000
material change opacity Glossy 0.75
material change shininess Glossy 1.0
light 3 on

foreach i [molinfo list] {
mol delete $i
}

mol new $filename1.cub
mol modstyle 0 top CPK 0.800000 0.300000 22.000000 22.000000
mol addrep top
mol modstyle 1 top Isosurface $isoval 0 0 0 1 1
mol modcolor 1 top ColorID 12
mol modmaterial 1 top $mater

mol new $filename2.cub
mol modstyle 0 top CPK 0.800000 0.300000 22.000000 22.000000
mol addrep top
mol modstyle 1 top Isosurface $isoval 0 0 0 1 1
mol modcolor 1 top ColorID 22
mol modmaterial 1 top $mater

display distance -8.0
display height 10
}

proc cub2iso {isoval} {
foreach i [molinfo list] {
mol modstyle 1 $i Isosurface $isoval 0 0 0 1 1
}
}
12 changes: 6 additions & 6 deletions settings.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// This file store parameters used by Multiwfn and can be modified by user. If this file is missing, Multiwfn will use default parameters.
// This file stores parameters used by Multiwfn and can be modified by user. If this file is missing, Multiwfn will use default parameters.
// Texts followed by "//" are comment, those after the first semicolon are allowed options or valid data range, the content after the second semicolon is default value.
// Before and after each value a space is needed, don't insert any space between variable name and equal sign.
Expand Down Expand Up @@ -64,7 +64,7 @@
iatom_on_plane_far= 0 // When showing atom labels in plane map, if also show the labels of the atoms that beyond "disshowlabel" as light face type; 0/1=Yes/No; 0/1; 0
iatmlabtype= 1 // When showing atom labels in plane map, =1 only plot element symbol, =2 only plot atom index, =3 plot both; 1/2/3; 1
iatmlabtype3D= 3 // When showing atom labels in 3D map, =1 only plot element symbol, =2 only plot atom index, =3 plot both, =4 Only show index of ghost atoms; 1/2/3/4; 3
graphformat= png // Format for outputting graph file; ps/eps/pdf/wmf/gif/tiff/bmp/svg; png
graphformat= png // Default format for outputting graphical file; ps/eps/pdf/wmf/gif/tiff/bmp/svg; png
graph1Dsize= 1600,1000 // Width and height of outputted graph file for line plotting; [1,inf) integer; 1600,1000
graph2Dsize= 1500,1200 // Width and height of outputted graph file for 2D plotting. If you want to adjust this value, you'd better ensure that the ratio of of the two values is 5:4, e.g. 3000:2400 and 1000:800; [1,inf) integer; 1500,1200
graph3Dsize= 2000,2000 // Width and height of outputted graph file for 3D plotting; [1,inf) integer; 2000,2000
Expand All @@ -74,7 +74,7 @@
fillcoloritpxy= 5,5 // The number of interpolation steps between grids in X and Y directions when drawing filled color map, increase it will make the graph prettier but plotting speed will be slow down; [1,inf) integer; 5,5
inowhiteblack= 0 // If set to 1, when plotting color-filled map, the regions where the value is higher than and lower than the color scale will not be colored as white and black, respectively; 0/1; 0
isurfstyle= 2 // Use which style to plot interbasin surface in 3D graph. =1 use a bunch of paths, =2 use solid surface consists of triangle tiles, =3 use solid surface consists of cylinders; 1/2/3; 2
bondRGB= 0.1,1.0,0.1 //The red, green and blue components of the color of bonds. 0,0,0 corresponds to black, 1,1,1 corresponds to white; [0,1] float; 0.1,1.0,0.1
bondRGB= 0.1,1.0,0.1 //The red, green and blue components of the color of bonds. 0,0,0 corresponds to black, 1,1,1 corresponds to white. If you do not know how to set color properly via RGB components, please consult examples\colorRGB.pdf; [0,1] float; 0.1,1.0,0.1
atmlabRGB= 0.0,0.0,0.0 //The red, green and blue components of the atomic labels in 3D plot. 0,0,0 corresponds to black, 1,1,1 corresponds to white; [0,1] float; 0.0,0.0,0.0
CP_RGB= 0.72,0,0.72, 1,0.5,0, 1,1,0, 0,1,0 // RGB color for (3,-3), (3,-1), (3,+1) and (3,+3) type critical points; [0,1] float; 0.72,0,0.72, 1,0.5,0, 1,1,0, 0,1,0
atmcolorfile= none // The path of the file defining the color of atom spheres in 3D plots. "examples\element_color.txt" is a template file, in which red, green and blue components (between 0.0~1.0) are defined for every element, you can alter color for specific element by changing corresponding values. If write "none", default colors will be used.
Expand All @@ -83,8 +83,8 @@
//Below are the parameters about system environment
nthreads= 4 //How many threads are used in parallel mode, if equals 1, parallel mode will be disabled; [1,inf) integer; 4
ompstacksize= 100000000 //For parallel implementation in windows version, this variable sets stacksize for each thread, unit is in Byte. If available memory is insufficient, this value should be decreased. If your task size is huge and crashes during calculation, try to increase ompstacksize. ompstacksize does not affect Linux or Mac OS version, for which you should modify KMP_STACKSIZE environment variable instead; [0,inf) integer; 100000000
gaupath= "/sob/g16/g16" //The path of Gaussian executable file (not the GUI interface such as g16w.exe), quotation marks are needed!
cubegenpath= "/sob/g16/cubegen.exe" //Gaussian cubegen path. If this parameter is set to actual path of cubegen utility of Gaussian, then Multiwfn will automatically invoke cubegen to calculate electrostatic potential in due time to reduce overall computational time.
gaupath= "/sob/g09/g09" //The path of Gaussian executable file (not the GUI interface such as g16w.exe), quotation marks are needed!
cubegenpath= "/sob/g16/cubegen" //Gaussian cubegen path. If this parameter is set to actual path of cubegen utility of Gaussian, then Multiwfn will automatically invoke cubegen to calculate electrostatic potential in due time to reduce overall computational time.
cubegendenstype= SCF //The type of density for evaluating electrostatic potential used by cubegen.
formchkpath= "/sob/g16/formchk" //The path of formchk utility in Gaussian folder. Set this to actual path can make Multiwfn be able to directly open .chk file.
isilent= 0 // If pop up graph or GUI interface immediately after calculation of line, plane... is finished or changing plotting parameter. This option is useful for batch processing, so that user needn't to manually close graph or GUI interface that popped up; 0/1; 0
Expand All @@ -93,4 +93,4 @@
ispecial= 0 // Sob only knows. 1=For RCY, 2=For shubin's 2nd project, Hirshfeld density as reference, or obtain Renyi entropy; 0/1/2; 0

//The last opened file name (There must be a space line in present file)
lastfile= c:\t.fch
lastfile= D:\CM\my_program\Multiwfn\examples\excit\NH2_C8_NO2\NH2_C8_NO2.fchk
47 changes: 26 additions & 21 deletions src/0123dim.f90
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ subroutine study1dim
use function
use plot
implicit real*8 (a-h,o-z)
character c200tmp*200,c400tmp*400,filename_tmp*200
character :: c200tmp*200,c400tmp*400,filename_tmp*200,graphformat_old*4

!Clean custom operation setting (global)that possibly defined by other modules
ncustommap=0
Expand Down Expand Up @@ -338,17 +338,19 @@ subroutine study1dim
curveymax=maxval(curvey)+exty
steplabx=maxval(curvex)/10
steplaby=exty
i=-1
graphformat_old=graphformat
isel=-1

do while(.true.)
if (isilent==0.and.i==-1) then
if (isilent==0.and.isel==-1) then
if (atomr1==atomr2) then !The line was defined by two terminal, so do not plot circles to highlight atoms
call drawcurve(curvex,curvey,npointcurve,0D0,maxval(curvex),steplabx,curveymin,curveymax,steplaby,"show")
else !The line was defined by two atoms, plot circles to highlight atoms
call drawcurve(curvex,curvey,npointcurve,0D0,maxval(curvex),steplabx,curveymin,curveymax,steplaby,"show",atomr1,atomr2)
end if
end if
write(*,*)
write(*,*)
write(*,*) "-2 Set format of exported image file, current: "//graphformat
write(*,*) "-1 Show the graph again"
write(*,*) "0 Return to main menu"
write(*,*) "1 Save the graph to a file in current folder"
Expand All @@ -368,19 +370,22 @@ subroutine study1dim
if (ilenunit1D==2) write(*,*) "11 Change length unit of the graph to Bohr"
write(*,"(a,i3)") " 12 Set width of curve line, current:",icurvethick

read(*,*) i
if (i==-1) then
read(*,*) isel
if (isel==-2) then
call setgraphformat
else if (isel==-1) then
cycle
else if (i==0) then
else if (isel==0) then
graphformat=graphformat_old
exit
else if (i==1) then
else if (isel==1) then
if (atomr1==atomr2) then
call drawcurve(curvex,curvey,npointcurve,0D0,maxval(curvex),steplabx,curveymin,curveymax,steplaby,"save")
else
call drawcurve(curvex,curvey,npointcurve,0D0,maxval(curvex),steplabx,curveymin,curveymax,steplaby,"save",atomr1,atomr2)
end if
write(*,"(a,a,a)") " The graph have been saved to ",trim(graphformat)," format file with ""DISLIN"" prefix in current directory"
else if (i==2) then
else if (isel==2) then
open(10,file="line.txt",status="replace")
do ipt=1,npointcurve !Output result to file
rnowx=orgx1D+(ipt-1)*transx
Expand All @@ -392,25 +397,25 @@ subroutine study1dim
write(*,*) "Data have been exported to line.txt in current folder"
write(*,"(a)") " Unit is Angstrom. The first three columns are actual coordinates, the fourth column &
is X position in the curve graph, the fifth column is function value"
else if (i==3) then
else if (isel==3) then
if (ilog10y==0) then
write(*,*) "Input minimum and maximum value of Y axis, e.g. -0.1,2"
else if (ilog10y==1) then
write(*,*) "Input minimum and maximum value of Y axis, e.g. -1,5 means from 10^-1 to 10^5"
end if
read(*,*) curveymin,curveymax
else if (i==4) then
else if (isel==4) then
if (icurve_vertlinex==0) then
write(*,*) "Input X position in Bohr, e.g. 1.78"
read(*,*) curve_vertlinex
icurve_vertlinex=1
else
icurve_vertlinex=0
end if
else if (i==5) then
else if (isel==5) then
write(*,*) "Input the ratio value, e.g. 0.6"
read(*,*) curvexyratio
else if (i==6) then
else if (isel==6) then
numlocmin=0
numlocmax=0
do ipt=2,npointcurve-1
Expand All @@ -435,7 +440,7 @@ is X position in the curve graph, the fifth column is function value"
end if
end do
write(*,"(' Totally found',i5,' minima,',i5,' maxima')") numlocmin,numlocmax
else if (i==7) then
else if (isel==7) then
write(*,*) "Input a value, e.g. 0.4"
read(*,*) specvalue
numfind=0
Expand All @@ -450,7 +455,7 @@ is X position in the curve graph, the fifth column is function value"
end if
end do
if (numfind==0) write(*,*) "Found nothing"
else if (i==8) then
else if (isel==8) then
if (ilog10y==1) then
ilog10y=0
!Recover default limit
Expand All @@ -461,10 +466,10 @@ is X position in the curve graph, the fifth column is function value"
write(*,*) "Input minimum and maximum value of Y axis, e.g. -1,5 means from 10^-1 to 10^5"
read(*,*) curveymin,curveymax
end if
else if (i==9) then
else if (isel==9) then
write(*,*) "Use which color?"
call selcolor(iclrcurve)
else if (i==10) then
else if (isel==10) then
if (ilog10y==0) then
write(*,*) "Input the step size between the labels in X and Y axes, respectively"
write(*,*) "e.g. 1.5,20"
Expand All @@ -473,13 +478,13 @@ is X position in the curve graph, the fifth column is function value"
write(*,*) "Input the step size between the labels in X axis, e.g. 1.5"
read(*,*) steplabx
end if
else if (i==11) then
else if (isel==11) then
if (ilenunit1D==1) then
ilenunit1D=2 !Angstrom
else if (ilenunit1D==2) then
ilenunit1D=1 !Bohr
end if
else if (i==12) then
else if (isel==12) then
write(*,*) "Input line width, e.g. 5"
read(*,*) icurvethick
end if
Expand Down Expand Up @@ -2257,14 +2262,14 @@ subroutine setcontour
end do
end if
else if (isel==6) then
write(*,*) "Input filename for exporting current setting, e.g. C:\ltwd.txt"
write(*,*) "Input file path for exporting current setting, e.g. C:\ltwd.txt"
read(*,*) outfilename
open(10,file=outfilename)
write(10,"(f19.8)") (ctrval(i),i=1,ncontour)
close(10)
write(*,"(a,a)") " Contour setting has been saved to ",trim(outfilename)
else if (isel==7) then
write(*,*) "Input filename, e.g. C:\ctr.txt"
write(*,*) "Input file path, e.g. C:\ctr.txt"
do while(.true.)
read(*,"(a)") extctrsetting
inquire(file=extctrsetting,exist=alive)
Expand Down
Loading

0 comments on commit 9a50dd0

Please sign in to comment.