TABLE OF CONTENTS
INTRODUCTION
&INPUTPP
prefix | outdir | filplot | lpunch
&PLOT
iflag | output_format | fileout | interpolation | x0 | nx | lebedev | e1 | x0 | nx | e1 | e2 | x0 | nx | ny | e1 | e2 | e3 | x0 | nx | ny | nz | radius | nx | ny
INTRODUCTION
Purpose of pprism.x: data analysis and plotting for 3D-RISM or Laue-RISM.
The code performs two steps:
(1) reads the output file produced by pw.x, extract and calculate
solvent's quantities (solvent charge, solvent potential, ...)
(2) writes solvent's quantities to file in a suitable format for
various types of plotting and various plotting programs
The input data of this program is read from standard input
or from file and has the following format:
NAMELIST &INPUTPP
containing the variables for step (1), followed by
NAMELIST &PLOT
containing the variables for step (2)
The two steps can be performed independently. In order to perform
only step (2), leave namelist &INPUTPP blank. In order to perform
only step (1), do not specify namelist &PLOT
Intermediate results from step 1 can be saved to disk (see
variable filplot in &INPUTPP) and later read in step 2.
Since the file with intermediate results is formatted, it
can be safely transferred to a different machine.
All output quantities are in ATOMIC (RYDBERG) UNITS unless
otherwise explicitly specified.
Namelist: &INPUTPP
|
prefix |
CHARACTER |
Default: |
'pwscf'
|
prefix of files saved by program pw.x
|
outdir |
CHARACTER |
Default: |
value of the ESPRESSO_TMPDIR environment variable if set;
current directory ('./') otherwise
|
directory containing the input data, i.e. the same as in pw.x
|
filplot |
CHARACTER |
Default: |
"prefix".pprism
|
file "filplot" contains solvent's quantities
(can be saved for further processing)
|
lpunch |
LOGICAL |
Default: |
.FALSE.
|
punch solvent's quantities to fileplot, or not
|
|
|
Namelist: &PLOT
|
iflag |
INTEGER |
Status: |
REQUIRED
|
0 1D plot of the spherical average
1 1D plot
2 2D plot
3 3D plot
4 2D polar plot on a sphere
|
output_format |
INTEGER |
Status: |
REQUIRED
|
(ignored on 1D plot)
0 = format suitable for gnuplot (1D)
1 = obsolete format no longer supported
2 = format suitable for plotrho (2D)
3 = format suitable for XCRYSDEN (2D or user-supplied 3D region)
4 = obsolete format no longer supported
5 = format suitable for XCRYSDEN (3D, using entire FFT grid)
6 = format as gaussian cube file (3D)
(can be read by many programs)
7 = format suitable for gnuplot (2D) x, y, f(x,y)
|
fileout |
CHARACTER |
Default: |
"prefix".3drism
|
name of the file to which the plot is written
|
interpolation |
CHARACTER |
Default: |
'fourier'
|
Type of interpolation:
- 'fourier'
- 'bspline' :
(EXPERIMENTAL)
|
IF iflag = 0 :
the following variables are REQUIRED:
x0(i), i=1,3 |
REAL |
3D vector, origin of the line
(in alat units)
|
nx |
INTEGER |
number of radial grids
|
lebedev |
INTEGER |
number of spherical grids of Lebedev quadrature
(only for interpolation = 'bspline')
|
|
ELSEIF iflag = 1 :
the following variables are REQUIRED:
e1(i), i=1,3 |
REAL |
3D vector which determines the plotting line
(in alat units)
|
x0(i), i=1,3 |
REAL |
3D vector, origin of the line (in alat units)
|
nx |
INTEGER |
number of points in the line:
rho(i) = rho( x0 + e1 * (i-1)/(nx-1) ), i=1, nx
|
|
ELSEIF iflag = 2 :
the following variables are REQUIRED:
e1(i),
e2(i),
i=1,3 |
REAL |
3D vectors which determine the plotting plane (in alat units)
BEWARE: e1 and e2 must be orthogonal
|
x0(i), i=1,3 |
REAL |
3D vector, origin of the plane (in alat units)
|
nx, ny |
INTEGER |
Number of points in the plane:
rho(i,j) = rho( x0 + e1 * (i-1)/(nx-1)
+ e2 * (j-1)/(ny-1) ), i=1,nx ; j=1,ny
|
|
ELSEIF iflag = 3 :
the following variables are OPTIONAL:
e1(i),
e2(i),
e3(i),
i=1,3 |
REAL |
3D vectors which determine the plotting parallelepiped
(if present, must be orthogonal)
e1, e2, and e3 are in alat units !
|
x0(i), i=1,3 |
REAL |
3D vector, origin of the parallelepiped
x0 is in alat units !
|
nx, ny, nz |
INTEGER |
Number of points in the parallelepiped:
rho(i,j,k) = rho( x0 + e1 * (i-1)/nx
+ e2 * (j-1)/ny
+ e3 * (k-1)/nz ),
i = 1, nx ; j = 1, ny ; k = 1, nz
- If output_format = 3 (XCRYSDEN), the above variables
are used to determine the grid to plot.
- If output_format = 5 (XCRYSDEN), the above variables
are ignored, the entire FFT grid is written in the
XCRYSDEN format - works for any crystal axis (VERY FAST)
- If e1, e2, e3, x0 are present,
and e1, e2, e3 are parallel to xyz
and parallel to crystal axis, a subset of the FFT
grid that approximately covers the parallelepiped
defined by e1, e2, e3, x0, is
written - untested, might be obsolete
- Otherwise, the required 3D grid is generated from the
Fourier components (may be VERY slow)
|
|
ELSEIF iflag = 4 :
the following variables are REQUIRED:
radius |
REAL |
Radius of the sphere (alat units), centered at (0,0,0)
|
nx, ny |
INTEGER |
Number of points in the polar plane:
phi(i) = 2 pi * (i - 1)/(nx-1), i=1, nx
theta(j) = pi * (j - 1)/(ny-1), j=1, ny
|
|
|
|
|
|