mirror of
https://github.com/nwchemgit/nwchem.git
synced 2026-07-29 06:35:39 -04:00
First round of corrections to Judi's modifications
This commit is contained in:
parent
4ab84abdff
commit
be2e43170a
17 changed files with 3229 additions and 1926 deletions
|
|
@ -1,21 +1,25 @@
|
|||
\label{sec:basis}
|
||||
In NWChem, basis sets consist of sets of generally contracted Cartesian
|
||||
Gaussian functions. (An optional functionality also exists that allows the
|
||||
user to specify an effective core potential (ECP) basis set; see
|
||||
section \ref{sec:ecp}.) The basis functions to be used for a given
|
||||
calculation can be drawn from a standard set in the EMSL basis set library
|
||||
that is included in the release of NWChem. (See Appendix \ref{knownbasis}
|
||||
for a list of the standard basis sets currently supplied with the release
|
||||
of the code.) Alternatively, the user can specify particular functions
|
||||
explicitly in the input defining a particular basis set.
|
||||
\label{sec:basis}
|
||||
|
||||
NWChem currently supports basis sets consisting of generally
|
||||
contracted Cartesian Gaussian functions. The {\tt BASIS} directive is
|
||||
used to define these, and also to specify use of an effective core
|
||||
potential (ECP) that is associated with a basis set; see section
|
||||
\ref{sec:ecp}.)
|
||||
|
||||
The basis functions to be used for a given calculation can be drawn
|
||||
from a standard set in the EMSL basis set library that is included in
|
||||
the release of NWChem. (See Appendix \ref{sec:knownbasis} for a list
|
||||
of the standard basis sets currently supplied with the release of the
|
||||
code.) Alternatively, the user can specify particular functions
|
||||
explicitly in the input defining a particular basis set.
|
||||
|
||||
The form of the \verb+BASIS+ directive is as follows;
|
||||
|
||||
\begin{verbatim}
|
||||
BASIS [<string name default "ao basis">] \
|
||||
[spherical || cartesian default cartesian] \
|
||||
[segment || nosegment default segment] \
|
||||
[print || noprint default print]
|
||||
[(spherical || cartesian) default cartesian] \
|
||||
[(segment || nosegment) default segment] \
|
||||
[(print || noprint) default print]
|
||||
|
||||
<string tag> library [<string tag_in_lib>] \
|
||||
<string standard set> [file <filename>]
|
||||
|
|
@ -29,94 +33,84 @@ The form of the \verb+BASIS+ directive is as follows;
|
|||
END
|
||||
\end{verbatim}
|
||||
|
||||
The string \verb+name+ allows the user to identify a specific basis set
|
||||
in the database for a calculation. The various modules in the code expect
|
||||
to find the
|
||||
basis set in the database under the name \verb+"ao basis"+. The user can
|
||||
assign the string \verb+name+ to \verb+"ao basis"+ using the \verb+SET+
|
||||
directive (see Section \ref{sec:set}), in the same manner as that in
|
||||
which different
|
||||
\verb+geometry+ objects are assigned the default name \verb+geometry+
|
||||
for specific tasks. This indirection allows the user to assign different
|
||||
basis sets to the same geometry object, or the same basis set to different
|
||||
geometry objects, for different calculations in
|
||||
the course of the same job.
|
||||
Examining first the keywords on the \verb+BASIS+ directive line:
|
||||
|
||||
|
||||
\begin{itemize}
|
||||
\item {\tt NAME}
|
||||
|
||||
By default the basis set is stored in the database with the name
|
||||
\verb+"ao basis". By specifying another name in the \verb=BASIS=
|
||||
directive, multiple basis sets may be stored at once in the database.
|
||||
Also, the DFT (Section \ref{sec:dft}), RISCF (Section \ref{sec:riscf})
|
||||
and RIMP2 (Section \ref{sec:rimp2}) modules require multiple basis
|
||||
sets with specific names.
|
||||
|
||||
The user can associate the \verb+"ao basis" with another named basis
|
||||
using the \verb+SET+ directive (see Section \ref{sec:set}).
|
||||
|
||||
\item {\tt SPHERICAL} and {\tt CARTESIAN}}
|
||||
|
||||
The keywords \verb+spherical+ and \verb+cartesian+ offer the option of
|
||||
specifying the basis functions in either spherical or cartesian coordinates.
|
||||
The keywords \verb+segment+ and \verb+nosegment+ allow the user to specify
|
||||
whether or not the functions will be segmented. Currently, NWChem assumes
|
||||
that all basis sets are segmented and cartesian, whether specified by the
|
||||
user or taken from the standard library sets.
|
||||
The options for spherical coordinates and unsegmented functions will become
|
||||
usable in all calculations only when the derivative integral code is
|
||||
extended to handle
|
||||
general contractions and sphericals. Currently, only the energy codes are
|
||||
able to handle these, which means that spherical basis functions can be used
|
||||
only for (************???what sort of calculations???**********).
|
||||
using either spherical-harmonic (5 d, 7 f, 9 g, \ldots) or Cartesian
|
||||
(6 d, 10 f, 15 g, \ldota) angular functions. The default is
|
||||
Cartesian because the current integral derivative program cannot
|
||||
handle spherical functions. If only energy calculations are being
|
||||
performed, then {\tt SPHERICAL} can be specified.
|
||||
|
||||
Note that the correlation-consistent basis sets were designed using
|
||||
spherical harmonics and to use these the \verb+SPHERICAL+ keyword
|
||||
should be present on the \verb+BASIS+ directive (in energy
|
||||
calculations). Use of spherical functions also helps eliminate
|
||||
problems with linear dependence.
|
||||
|
||||
|
||||
\item {{\tt SEGMENT} or {\tt NOSEGMENT}}
|
||||
|
||||
By default NWChem forces all basis sets to be segmented,
|
||||
even if they are input with either general contractions, or $L$ or sp
|
||||
shells. This is because the current derivative integral package cannot
|
||||
handle general contractions. If just computing energies a substantial
|
||||
performance gain can result from exploiting generally contracted basis
|
||||
sets, in which case {\tt NOSEGMENT} should be specified.
|
||||
|
||||
\item {{\tt PRINT} and {\tt NOPRINT}}
|
||||
|
||||
The keywords \verb+print+ and \verb+noprint+ allow the user to override
|
||||
instructions from the top level \verb+PRINT+ directive for the basis sets.
|
||||
The default is for the input module to print all basis sets encountered.
|
||||
Specifying the keyword \verb+noprint+ allows the user to supress this output.
|
||||
|
||||
% This directive describes a basis set of generally contracted Cartesian
|
||||
% Gaussian functions. By default basis sets are automatically segmented
|
||||
% and cartesian\footnote{This will change when the derivative integral
|
||||
% code is extended to handle general contractions and sphericals. Only
|
||||
% the energy codes can presently handle these.} even if general
|
||||
% contractions are input. Basis functions are associated with centers
|
||||
% in geometries through the tags or names of centers which must match
|
||||
% exactly (including case) and are limited to sixteen (16) characters.
|
||||
% Each center with the same tag will have the same basis set. By
|
||||
% default the input module prints each basis set encountered; use the
|
||||
% \verb+NOPRINT+ option to disable printing.
|
||||
%
|
||||
% In the same fashion as for geometries, basis sets are named, with the
|
||||
% default name being \verb+"ao basis"+. It should be clear from the
|
||||
% above discussion on geometries and database entries how indirection is
|
||||
% supported.
|
||||
%
|
||||
% Basis functions may be either drawn from a standard set in the EMSL
|
||||
% basis set library or specified explicitly. See Appendix
|
||||
% \ref{knownbas} for the current list of standard basis sets. An
|
||||
% installation default is provided for the path to the basis set
|
||||
% library, which may be overridden in the input. The case of names of
|
||||
% standard basis sets is ignored. By default the standard basis
|
||||
% appropriate to the atom on which it is centered is used, however this
|
||||
% may be overriden, for instance to place ghost functions on dummy
|
||||
% centers in counterpoise calculations. When explicitly specifying
|
||||
% generally contracted basis sets, simply specify on each line the
|
||||
% exponent followed by the contraction coefficients for each contraction
|
||||
% of that exponent. The following examples will make the use of this
|
||||
% directive clear.
|
||||
\end{itemize}
|
||||
|
||||
The input specified in lines beginning with the string \verb+tag+
|
||||
allows a particular center or atom in a calculation to be associated with
|
||||
a particular set of basis functions. The values specified for \verb+tag+
|
||||
must correspond exactly with the names supplied for the \verb+tag+ entries
|
||||
on the \verb+GEOMETRY+ directive for a particular calculation. Each atom
|
||||
or center with the same \verb+tag+ will have the same basis set, which must
|
||||
also be specified with the same name \verb+tag+.
|
||||
Basis sets are associated with centers by using the tag of a center in
|
||||
a geometry that has either been input by the user (Section
|
||||
\ref{sec:geom}) or created automatically. Each atom or center with
|
||||
the same \verb+tag+ will have the same basis set. All atoms must have
|
||||
basis functions assigned to them --- only dummy centers may have no
|
||||
basis functions.
|
||||
|
||||
The keyword \verb+library+ specifies that the calculation will use the
|
||||
We examine next how to reference standard basis sets in the basis set
|
||||
library, and, finally, how to define a basis using exponents and
|
||||
coefficients.
|
||||
|
||||
\subsection{Basis set library}
|
||||
|
||||
The keyword \verb+library+ specifies that the calculation will use the
|
||||
standard basis sets in NWChem. The string \verb+standard_set+ is the
|
||||
name that identifies the functions in the library. (See Appendix
|
||||
name that identifies the functions in the library. The names of
|
||||
standard basis sets are not case sensitive. See Appendix
|
||||
\ref{sec:knownbasis} for a complete list of the basis functions in the
|
||||
NWChem library.) If the string \verb+tag+ corresponds to
|
||||
a dummy center, the string \verb+tag_in_lib+ must also be entered on
|
||||
this line, to identify
|
||||
the correct name for the atom in the basis function library.
|
||||
NWChem library and their specification. If basis functions are to be
|
||||
placed upon a dummy center, the string \verb+tag_in_lib+ must also be
|
||||
entered on this line, to identify the correct atom type to use in the
|
||||
basis function library (see the ghost atom example in Section
|
||||
(\ref{sec:set} and below).
|
||||
|
||||
A default path to the basis set library
|
||||
is provided on installation of the code, and the user can specify a
|
||||
particular standard set by supplying the name in the library
|
||||
in the string \verb+tag_in_lib+. However, a different path can be defined
|
||||
for the particular basis set by specifying the keyword \verb+file+ after
|
||||
the keyword \verb+library+, and then explicitly naming the file to be
|
||||
accessed for the basis functions.
|
||||
A default path to the basis set library is provided on installation of
|
||||
the code, but a different path can be defined by specifying the
|
||||
keyword \verb+file+ and then explicitly naming the file to be accessed
|
||||
for the basis functions.
|
||||
|
||||
For example, NWChem contains the Thom Dunning cc-pvdz basis sets for
|
||||
For example, NWChem contains the Dunning cc-pvdz basis sets for
|
||||
oxygen and hydrogen in the standard basis set library. The \verb+BASIS+
|
||||
directive to use these basis sets in a calculation of the water molecule
|
||||
could be formulated quite simply as follows;
|
||||
|
|
@ -128,13 +122,6 @@ could be formulated quite simply as follows;
|
|||
end
|
||||
\end{verbatim}
|
||||
|
||||
\Large
|
||||
*****
|
||||
QUESTION: In Appendix A, this basis set is listed as ``cc-pVDZ''. Is
|
||||
this input case-sensitive, or not?
|
||||
******
|
||||
\normalsize
|
||||
|
||||
In this example, the cc-pvdz basis functions will be obtained from the
|
||||
NWChem library, as defined by the default path on installation. To obtain
|
||||
functions from some other library, such as the user's own experimental
|
||||
|
|
@ -148,20 +135,14 @@ explicitly. An example illustrating this option is as follows,
|
|||
end
|
||||
\end{verbatim}
|
||||
|
||||
This directive tells the code to use the basis sets \verb+3-21g+ in the
|
||||
file /usr/d3g681/nwchem/library for atoms or centers with \verb+tag+
|
||||
strings \verb+o+ and \verb+si+ , rather than looking for them in the
|
||||
default library.
|
||||
This directive tells the code to use the basis sets \verb+3-21g+ in
|
||||
the file /usr/d3g681/nwchem/library for atoms \verb+o+ and \verb+si+ ,
|
||||
rather than looking for them in the default library.
|
||||
|
||||
The basis functions must be defined for dummy centers as well for
|
||||
as atoms. Since the dummy centers are given \verb+tag+ names that begin
|
||||
with \verb+bq+ to distinguish them from atoms (see the description of the
|
||||
\verb+GEOMETRY+ directive in Section \ref{sec:geom}), the \verb+BASIS+
|
||||
directive must identify their corresponding functions explicitly. For
|
||||
example, to specify the cc-pvdz basis for a calculation on the water
|
||||
monomer in the dimer basis, where the dummy oxygen and dummy hydrogen
|
||||
centers have been identified as \verb+bqo+ and \verb+bqh+ respectively,
|
||||
the \verb+BASIS+ directive is as follows,
|
||||
Another example. To specify the cc-pvdz basis for a calculation on
|
||||
the water monomer in the dimer basis, where the dummy oxygen and dummy
|
||||
hydrogen centers have been identified as \verb+bqo+ and \verb+bqh+
|
||||
respectively, the \verb+BASIS+ directive is as follows,
|
||||
|
||||
\begin{verbatim}
|
||||
basis
|
||||
|
|
@ -172,36 +153,27 @@ the \verb+BASIS+ directive is as follows,
|
|||
end
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{Explicit basis set definition}
|
||||
|
||||
The user also has the option of explicitly specifying the generally
|
||||
contracted basis functions for particular elements. This can be useful
|
||||
as a means of specifying alternative basis functions for 'ghost' atoms
|
||||
or dummy centers in counterpoise calculations, for instance.
|
||||
|
||||
For those particular elements named in some string \verb+tag+ (and identified
|
||||
appropriately on a \verb+GEOMETRY+ directive), the string \verb+tag+ input
|
||||
line on the \verb+BASIS+ directive is of the form,
|
||||
|
||||
A generally contracted Gaussian basis function is associated with a
|
||||
center as follows
|
||||
\begin{verbatim}
|
||||
<string tag> <string shell\_type>
|
||||
<real exponent> <real list\_of\_coefficients>
|
||||
...
|
||||
\end{verbatim}
|
||||
|
||||
The string \verb+shell_type+ is used to specify the outer electron shell of
|
||||
the atom, which may be \verb+s+ for the s-shell, \verb+p+ for the p-shell,
|
||||
(***or whatever***). The user must then specify the real exponent for
|
||||
each electron(?), followed by the contraction coefficients for each
|
||||
contraction of that exponent. The input for the \verb+list_of_coefficients+
|
||||
is free-format, and assumed to be type 'real'.
|
||||
|
||||
For example, the \verb+BASIS+ directive to use Thom Dunning's cc-pvdz basis
|
||||
functions for the water molecule, as illustrated above,
|
||||
can be modified to add a specific basis function that defines a diffuse
|
||||
s-shell (specified by string {\em s} for \verb+shell_type+) for oxygen.
|
||||
The modified directive is of the form,
|
||||
The \verb+shell_type+ identifies the angular momentum of the shell,
|
||||
$s$, $p$, $d$, \ldots. By default, NWChem is configured to handle up
|
||||
to $i$ functions. Subsequent lines define the primitive function
|
||||
exponents and contraction coefficients. General contractions are
|
||||
specified by including multiple coefficients.
|
||||
|
||||
For example, the following \verb+BASIS+ directive augments the Dunning
|
||||
cc-pvdz basis set for the water molecule with a diffuse s-shell on
|
||||
oxygen
|
||||
\begin{verbatim}
|
||||
basis
|
||||
basis spherical nosegment
|
||||
oxygen library cc-pvdz
|
||||
hydrogen library cc-pvdz
|
||||
oxygen s
|
||||
|
|
@ -209,42 +181,9 @@ The modified directive is of the form,
|
|||
end
|
||||
\end{verbatim}
|
||||
|
||||
In all of these examples, the basis set is given the default name
|
||||
\verb+"ao basis"+. The functions are assumed segmented and cartesian,
|
||||
and the input module will print a description of the basis set. The functions
|
||||
of this basis set consist of the library functions for hydrogen, plus
|
||||
the library functions for oxygen as modifed based on the specified contraction
|
||||
coefficients.
|
||||
|
||||
The basis functions for a molecule can be explicitly specified for all
|
||||
atoms, with none of the functions drawn from the standard library. In such
|
||||
a case, the \verb+shell_type+, \verb+exponent+, and \verb+list_of_coefficients+
|
||||
must be supplied for each atom or center in the molecule. (Note that
|
||||
the name of
|
||||
each atom or center must also correspond to an appropriate entry for
|
||||
a \verb+tag+ string
|
||||
identifying each atom or center of the molecule on the corresponding
|
||||
\verb+GEOMETRY+ directive.)
|
||||
|
||||
% The following directive specifies exactly the same basis set as the
|
||||
% previous directive except that all basis functions are explicitly
|
||||
% described (all input is free format --- the formatting here is just
|
||||
% for readability).
|
||||
|
||||
The following example illustrates this option for the water molecule. The
|
||||
user must enter explicitly all the information that could be obtained
|
||||
simply by specifying the NWChem library functions using the lines
|
||||
|
||||
This is equivalent to the following explicit specification
|
||||
\begin{verbatim}
|
||||
oxygen library cc-pvdz
|
||||
hydrogen library cc-pvdz
|
||||
\end{verbatim}
|
||||
|
||||
The input for the \verb+BASIS+ directive in this example when the option
|
||||
for specifying explicit functions is selected becomes,
|
||||
|
||||
\begin{verbatim}
|
||||
basis
|
||||
basis spherical nosegment
|
||||
oxygen s
|
||||
11720.0000 0.000710 -0.000160
|
||||
1759.0000 0.005470 -0.001263
|
||||
|
|
@ -280,36 +219,6 @@ for specifying explicit functions is selected becomes,
|
|||
end
|
||||
\end{verbatim}
|
||||
|
||||
% Note that the correlation-consistent basis sets were designed using
|
||||
% spherical harmonics and to use these the \verb+SPHERICAL+ keyword must
|
||||
% be present on the \verb+BASIS+ directive.
|
||||
% *******NOTE: the above paragraph is not consistent with what has
|
||||
% already been said about the keywords spherical and
|
||||
% cartesian. And it's not consistent with the directive.
|
||||
% What is right here?
|
||||
% *******************************************************************
|
||||
%
|
||||
% This example uses a 3-21g basis set for centers \verb+o+ and \verb+si+
|
||||
% and explicitly specifies the path to the basis set library (perhaps
|
||||
% because you cannot find the copy installed with NWChem).
|
||||
% \begin{verbatim}
|
||||
% basis
|
||||
% o library 3-21g file /usr/d3g681/nwchem/library
|
||||
% si library 3-21g file /usr/d3g681/nwchem/library
|
||||
% end
|
||||
% \end{verbatim}
|
||||
%
|
||||
% In order to perform counterpoise corrections in standard basis sets it
|
||||
% is necessary to specify the atom type. The following input specifies a
|
||||
% cc-pvdz basis for a calculation on the water monomer in the dimer basis.
|
||||
% \begin{verbatim}
|
||||
% basis
|
||||
% o library cc-pvdz
|
||||
% h library cc-pvdz
|
||||
% bqo library o cc-pvdz
|
||||
% bqh library h cc-pvdz
|
||||
% end
|
||||
% \end{verbatim}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
216
doc/user/ecp.tex
216
doc/user/ecp.tex
|
|
@ -1,124 +1,58 @@
|
|||
\label{sec:ecp}
|
||||
|
||||
In addition to the standard basis sets that can be specified using the
|
||||
\verb+BASIS+ directive, the basis functions can be described in NWChem
|
||||
using a effective core potential (ECP) basis set. An ECP basis set
|
||||
consists of contracted gaussian functions that are fit to gaussians by the
|
||||
function,
|
||||
This directive describes an effective core potential (ECP) basis set
|
||||
of contracted gaussian functions. The ECPs are fit to Gaussians
|
||||
with the form
|
||||
\[
|
||||
r^2V_l(r) = \sum_{k} A_{lk} r^{n_{lk}} e^{B_{lk}r^{2}}
|
||||
r^2V_l(r) = \sum_{k} A_{lk} r^{n_{lk}} e^{B_{lk}r^{2}}
|
||||
\]
|
||||
where $A_{lk}$ is the contraction coefficient, $n_{lk}$ is the
|
||||
exponent of the ``r'' term (r-exponent), and $B_{lk}$ is the gaussian
|
||||
exponent. (Note: to be consistent with most of the literature on ECP
|
||||
functions, the r-exponent is shifted by 2; e.g., an r-exponent of 0
|
||||
implies $r^{-2}$).
|
||||
exponent. The r-exponent is shifted by 2 as per most of the ECP
|
||||
literature, e.g., an r-exponent of 0 implies $r^{-2}$.
|
||||
|
||||
The EMSL library does not currently support a standard set of ECP basis
|
||||
functions. Basis sets using these functions must be specified explicitly
|
||||
by user input in the \verb+ECP+ directive. This directive has
|
||||
essentially the same form as the standard \verb+BASIS+ directive,
|
||||
except for differences in the type of information to be supplied for
|
||||
each atom or center using the ECP basis set. The form of the input for
|
||||
the \verb+ECP+ directive is as follows;
|
||||
By default ECP basis sets are automatically segmented and cartesian
|
||||
even if general contractions are input.
|
||||
|
||||
\begin{verbatim}
|
||||
ecp [<string name default "ecp basis">] \
|
||||
[spherical || cartesian default cartesian] \
|
||||
[segment || nosegment default segment] \
|
||||
[print || noprint default print]
|
||||
\end{verbatim}
|
||||
ECP basis functions are associated with centers in geometries through
|
||||
the tags or names of centers which must match exactly (including case)
|
||||
and are limited to sixteen (16) characters. Each center with the same
|
||||
tag will have the same ECP basis set. By default the input module
|
||||
prints each ECP basis set encountered; use the \verb+NOPRINT+ option
|
||||
to disable printing. There can be only one active ECP basis set even
|
||||
though several may exist in the input deck. The ECP modules load
|
||||
``ecp basis'' with any ``ao basis'' present. The ECP functionality
|
||||
works for energy and gradients.
|
||||
|
||||
% <string tag> library [<string tag_in_lib>] \
|
||||
% <string standard set> [file <filename>]
|
||||
%
|
||||
% or
|
||||
%
|
||||
\begin{verbatim}
|
||||
<string tag> [nelec] <integer number_of_electrons_replaced>
|
||||
|
||||
...
|
||||
In the same fashion as for geometries or regular basis sets, ECP basis
|
||||
sets are named, with the default name being \verb+"ecp basis"+. It
|
||||
should be clear from the above discussion on geometries and database
|
||||
entries how indirection is supported.
|
||||
|
||||
<string tag> <string shell_type>
|
||||
<real r-exponent> <real gaussian-exponent> <real list_of_coefficients>
|
||||
...
|
||||
|
||||
END
|
||||
\end{verbatim}
|
||||
|
||||
|
||||
% This directive describes an effective core potential (ECP) basis set
|
||||
% of contracted gaussian functions. These are fit to gaussians by the
|
||||
% function:
|
||||
% \[
|
||||
% r^2V_l(r) = \sum_{k} A_{lk} r^{n_{lk}} e^{B_{lk}r^{2}}
|
||||
% \]
|
||||
% Where $A_{lk}$ is the contraction coefficient, $n_{lk}$ is the
|
||||
% exponent of the ``r'' term (r-exponent), and $B_{lk}$ is the gaussian
|
||||
% exponent. The r-exponent is shifted by 2 as per most of the ECP
|
||||
% literature, e.g., an r-exponent of 0 implies $r^{-2}$.
|
||||
%
|
||||
% By default basis sets are automatically segmented and cartesian even
|
||||
% if general contractions are input. Generally contracted ECP basis
|
||||
% sets are not in wide use but the functionality is available. ECP
|
||||
% basis functions are associated with centers in geometries through the
|
||||
% tags or names of centers which must match exactly (including case) and
|
||||
% are limited to sixteen (16) characters. Each center with the same tag
|
||||
% will have the same ecp basis set. By default the input module prints
|
||||
% each ecp basis set encountered; use the \verb+NOPRINT+ option to
|
||||
% disable printing. There can be only one active ECP basis set even
|
||||
% though several may exist in the input deck. The ECP modules load
|
||||
% ``ecp basis'' with any ``ao basis'' present. The ECP functionality
|
||||
% works for energy and gradients.
|
||||
%
|
||||
% In the same fashion as for geometries or regular basis sets, ecp basis
|
||||
% sets are named, with the default name being \verb+"ecp basis"+. It
|
||||
% should be clear from the above discussion on geometries and database
|
||||
% entries how indirection is supported.
|
||||
%
|
||||
% Basis functions currently may not be drawn from a standard set in the
|
||||
% EMSL basis set library; they must be specified explicitly. All
|
||||
% directives that are in common with the standard gaussian basis set
|
||||
% input have the same function and syntax.
|
||||
|
||||
The string \verb+name+ allows the user to identify a specific ECP basis set
|
||||
in the database for a calculation. If no name is specified explicitly, the
|
||||
default name is \verb+"ecp basis"+ The various modules in the code expect
|
||||
to find the
|
||||
basis set in the database under the name \verb+"ao basis"+. The user can
|
||||
assign the string \verb+name+ (or \verb+"ecp basis"+, if the default name
|
||||
is used) to \verb+"ao basis"+ using the \verb+SET+
|
||||
directive (see Section \ref{sec:set}), in the same manner as that in
|
||||
which standard basis sets of some (non-default) \verb+name+
|
||||
are assigned the default name \verb+"ao basis"+
|
||||
for specific tasks. This indirection allows the user to assign different
|
||||
basis sets to the same geometry object, or assign the same basis set to
|
||||
different geometry objects, for different calculations in
|
||||
the course of the same job. Only one ECP basis set can be active for a
|
||||
given task, although any number of such basis sets can be defined in the
|
||||
input under names other than \verb+"ecp basis"+.
|
||||
Basis functions currently may not be drawn from a standard set in the
|
||||
EMSL basis set library; they must be specified explicitly. All
|
||||
directives that are in common with the standard gaussian basis set
|
||||
input have the same function and syntax.
|
||||
|
||||
The keyword pairs
|
||||
|
||||
\begin{verbatim}
|
||||
spherical || cartesian
|
||||
segment || nosegment
|
||||
print || noprint
|
||||
spherical || cartesian
|
||||
segment || nosegment
|
||||
print || noprint
|
||||
\end{verbatim}
|
||||
|
||||
are interpreted
|
||||
in the \verb+ECP+ directive in the same manner as for the \verb+BASIS+
|
||||
directive, but only the defaults are currently available for
|
||||
the coordinate system and segmentation in the \verb+ECP+ directive.
|
||||
NWChem assumes
|
||||
that all ecp basis sets are segmented and cartesian.
|
||||
The keywords are included in the directive, however, because it is
|
||||
expected that eventually the code will include the options for the
|
||||
user to specify basis functions in either spherical or
|
||||
are interpreted in the \verb+ECP+ directive in the same manner as for
|
||||
the \verb+BASIS+ directive, but only the defaults are currently
|
||||
available for the coordinate system and segmentation in the \verb+ECP+
|
||||
directive. NWChem assumes that all ECP basis sets are segmented and
|
||||
cartesian. The keywords are included in the directive, however,
|
||||
because it is expected that eventually the code will include the
|
||||
options for the user to specify basis functions in either spherical or
|
||||
cartesian coordinates, segmented or unsegmented. The print keyword is
|
||||
currently active, and can be used to specify that the descriptions of
|
||||
the functions will be printed or not printed by the input module, at the user's
|
||||
discretion.
|
||||
the functions will be printed or not printed by the input module, at
|
||||
the user's discretion.
|
||||
% , whether specified by the
|
||||
% user or defined in the standard library sets.
|
||||
|
||||
|
|
@ -134,67 +68,55 @@ also be specified with the same name \verb+tag+.
|
|||
|
||||
The keyword \verb+NELEC+ allows the user to specify the number of core
|
||||
electrons replaced by
|
||||
the ecp basis specification for the atom represented by the tag. Additional
|
||||
the ECP basis specification for the atom represented by the tag. Additional
|
||||
input lines can then be used to define the specific coefficients.
|
||||
The string \verb+shell_type+ is used to specify the components of the
|
||||
ECP basis function. The label \verb+ul+ entered for \verb+shell_type+
|
||||
for a given atom or center (identified by the string \verb+tag+) denotes
|
||||
the local part of the ECP basis. This is equivalent to the highest
|
||||
angular momentum
|
||||
functions specified in the literature for most ecp basis sets. The
|
||||
functions specified in the literature for most ECP basis sets. The
|
||||
standard entries (\verb+s, p, d+, etc.) for \verb+shell_type+ delineate
|
||||
the angular momentum projector onto the local function. The shell type
|
||||
label of \verb+s+ indicates the \verb+ul-s+ projector input, \verb+p+
|
||||
indicates the \verb+ul-p+, etc.
|
||||
|
||||
An application of the \verb+ECP+ directive is illustrated in the following
|
||||
example using the molecule H$_2$CO. This input defines an ECP basis set
|
||||
example for the molecule H$_2$CO. This input defines an ECP basis set
|
||||
for the carbon and oxygen atoms in the molecule.
|
||||
\Large
|
||||
(*****What about the hydrogen molecule? What basis set does it use?******)
|
||||
\normalsize
|
||||
|
||||
% The following example illustrate the input of an ECP for H$_2$CO.
|
||||
|
||||
% \centerline{{\bf H$_2$CO }}
|
||||
|
||||
\begin{verbatim}
|
||||
ecp print
|
||||
C nelec 2 # ecp replaces 2 electrons on C
|
||||
C ul # d
|
||||
1 80.0000000 -1.60000000
|
||||
1 30.0000000 -0.40000000
|
||||
2 0.5498205 -0.03990210
|
||||
C s # s - d
|
||||
0 0.7374760 0.63810832
|
||||
0 135.2354832 11.00916230
|
||||
2 8.5605569 20.13797020
|
||||
C p # p - d
|
||||
2 10.6863587 -3.24684280
|
||||
2 23.4979897 0.78505765
|
||||
O nelec 2 # ecp replaces 2 electrons on O
|
||||
O ul # d
|
||||
1 80.0000000 -1.60000000
|
||||
1 30.0000000 -0.40000000
|
||||
2 1.0953760 -0.06623814
|
||||
O s # s - d
|
||||
0 0.9212952 0.39552179
|
||||
0 28.6481971 2.51654843
|
||||
2 9.3033500 17.04478500
|
||||
O p # p - s
|
||||
2 52.3427019 27.97790770
|
||||
2 30.7220233 -16.49630500
|
||||
end
|
||||
ecp print
|
||||
C nelec 2 # ecp replaces 2 electrons on C
|
||||
C ul # d
|
||||
1 80.0000000 -1.60000000
|
||||
1 30.0000000 -0.40000000
|
||||
2 0.5498205 -0.03990210
|
||||
C s # s - d
|
||||
0 0.7374760 0.63810832
|
||||
0 135.2354832 11.00916230
|
||||
2 8.5605569 20.13797020
|
||||
C p # p - d
|
||||
2 10.6863587 -3.24684280
|
||||
2 23.4979897 0.78505765
|
||||
O nelec 2 # ecp replaces 2 electrons on O
|
||||
O ul # d
|
||||
1 80.0000000 -1.60000000
|
||||
1 30.0000000 -0.40000000
|
||||
2 1.0953760 -0.06623814
|
||||
O s # s - d
|
||||
0 0.9212952 0.39552179
|
||||
0 28.6481971 2.51654843
|
||||
2 9.3033500 17.04478500
|
||||
O p # p - s
|
||||
2 52.3427019 27.97790770
|
||||
2 30.7220233 -16.49630500
|
||||
end
|
||||
\end{verbatim}
|
||||
|
||||
Generally contracted ECP basis sets are not in wide use, but the
|
||||
functionality has been included in NWChem for applications where
|
||||
they might be useful. The user should be aware, however, that
|
||||
the atomic SCF code does not currently handle the guess
|
||||
generation for ECP centers. Therefore, it may not be possible to obtain
|
||||
an initial set of orbitals for either the SCF or DFT when using an ECP
|
||||
basis set. It may be necessary to use a smaller basis set and then
|
||||
project those orbitals to the
|
||||
basis set that will be used, (refer to Section \ref{sec:vectors}). Convergence
|
||||
and starting orbital guesses are being addressed in ongoing development
|
||||
work with the code.
|
||||
functionality has been included in NWChem for applications where they
|
||||
might be useful.
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ specific resources, and differing services provided by the operating system.} .
|
|||
|
||||
To run NWChem sequentially on nearly all UNIX-based platforms simply
|
||||
use the command \verb+nwchem+ and provide the name of the input file
|
||||
as an argument (section \ref{sec:inputfilename}).
|
||||
as an argument (section \ref{sec:inputstructure}).
|
||||
|
||||
Output is to standard output, standard error and Fortran unit 6
|
||||
(usually the same as standard output). Files are created by default
|
||||
|
|
|
|||
29
doc/user/functionality.tex
Normal file
29
doc/user/functionality.tex
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
\label{sec:functionality}
|
||||
|
||||
Current functionality includes:
|
||||
\begin{itemize}
|
||||
\item Self Consistent Field or Hartree Fock energy and analytic
|
||||
gradients (RHF, UHF, high-spin ROHF). Analytic second derivatives
|
||||
under development.
|
||||
\item Gaussian Density Functional Theory (DFT) energy and analytic
|
||||
gradients with many local and non-local exchange-correlation potentials
|
||||
\item MP2 semi-direct energy and analytic gradients for RHF and UHF
|
||||
references (frozen core under development). Direct MP2 energy (RHF
|
||||
only) and resolution of the identity (RI) integral approximation MP2
|
||||
(RHF and UHF).
|
||||
\item Coupled-cluster (RHF) with linear triples (gradients under
|
||||
development).
|
||||
\item Complete active space SCF (CASSCF) energy (gradients under
|
||||
development).
|
||||
\item Selected-CI with perturbation correction energy.
|
||||
\item First derivatives for all methods by numerical difference of the
|
||||
energy if analytic derivative is not available.
|
||||
\item Second derivatives by numerical difference of gradients if
|
||||
analytic seconds are not available.
|
||||
\item Geometry Optimization (Minimization and Transition State) for
|
||||
all methods.
|
||||
\item Generation of the electron density file for the {\em Insight}
|
||||
graphical program.
|
||||
\item Interface to the natural bond orbital package.
|
||||
\item Interface to the COLUMBUS multi-reference CI package.
|
||||
\end{itemize}
|
||||
|
|
@ -1,272 +1,223 @@
|
|||
\label{sec:geom}
|
||||
|
||||
The \verb+GEOMETRY+ directive is used to define specific geometry objects
|
||||
for a calculation or series of calculations. The input for this directive
|
||||
allows the user to define the geometry of the molecule(s) to be considered
|
||||
in the calculation(s). NWChem already has a fairly good idea of what most
|
||||
atoms look like and the sort of molecular structures in which they might be
|
||||
arranged. This information is stored in the basis sets, which can be specified
|
||||
for a given task using the \verb+BASIS+ directive (see Section
|
||||
\ref{sec:basis}). The \verb+GEOMETRY+ directive allows the user to specify
|
||||
particular elements of the geometry objects, such as the coordinates of
|
||||
the individual atoms in a molecule, and the appropriate symmetry group.
|
||||
It is also possible to define multiple geometry objects for the same
|
||||
molecule under different names, for use in different tasks of the same
|
||||
calculation.
|
||||
|
||||
The form of the \verb+GEOMETRY+ directive is as follows;
|
||||
|
||||
\begin{verbatim}
|
||||
GEOMETRY [<string name default geometry>] \
|
||||
[units <string units default bohr>] \
|
||||
[units <string units default angstrom>] \
|
||||
[bqbq] \
|
||||
[print [xyz] || noprint]
|
||||
[print [xyz] || noprint] \
|
||||
[autoz]
|
||||
|
||||
[SYMMETRY GROUP <string group_name> [print]]
|
||||
[SYMMETRY [GROUP] <string group_name> [print]]
|
||||
|
||||
<geometry specification (cartesian or Z-matrix)>
|
||||
geometry specification (cartesian || Z-matrix)
|
||||
|
||||
[ZCOORD ... END]
|
||||
|
||||
END
|
||||
\end{verbatim}
|
||||
|
||||
% Cartesian geometry specification, as well as Z-matrix-like format is
|
||||
% available. As mentioned above (section
|
||||
% \ref{sec:arch}), multiple geometries may be stored in the database
|
||||
% provided each is given an independent name. The default name of
|
||||
% \verb+"geometry"+ is used by most application modules to access the
|
||||
% geometry at which to perform a calculation. Associating a named
|
||||
% geometry with the required name of \verb+"geometry"+ is described in
|
||||
% section \ref{sec:arch}. Known names for units are \verb+au+,
|
||||
% \verb+bohr+, or \verb+angstrom+ (the conversion factor used to convert
|
||||
% from Angstr\"{o}m to Bohr is $1.8897265$). By default, the input
|
||||
% module prints any geometry it encounters. Printing can be disabled
|
||||
% with the \verb+PRINT+ option. The \verb+XYZ+ qualifier to print
|
||||
% causes the geometry to also be printed in the \verb+XYZ+ format of
|
||||
% XMol.
|
||||
|
||||
This is a multiple directive and may contain many or few lines,
|
||||
depending on the application. The input supplied with this directive
|
||||
consists of three main sections;
|
||||
The input supplied with this directive consists of three main
|
||||
sections;
|
||||
|
||||
\begin{itemize}
|
||||
\item basic information to identify the geometry object in the code and
|
||||
define how it will be processed
|
||||
\item input to identify the symmetry group for the molecule
|
||||
\item input to specify the geometric locations of the atoms in the
|
||||
molecule (cartesian coordinates or Z-matrix)
|
||||
|
||||
\item keywords on the the line of the geometry directive that specify
|
||||
the name, units, etc.
|
||||
\item symmetry information
|
||||
\item input to specify the locations of the atoms and centers
|
||||
(cartesian coordinates or Z-matrix)
|
||||
\end{itemize}
|
||||
|
||||
The input options and keywords for each of these sections are
|
||||
discussed in detail in the following subsections.
|
||||
These are examined in the following subsections.
|
||||
|
||||
\subsection{Geometry Object Identification Input}
|
||||
\subsection{Keywords on the geometry directive}
|
||||
\subsubsection*{{\tt NAME}}
|
||||
The default \verb+name+ for a geometry object is \verb+geometry+, and
|
||||
most modules in the code look for a geometry with this name. The user
|
||||
can direct a module to a different geometry by assigning the string
|
||||
\verb+geomery+ to \verb+name+ using the \verb+SET+ directive (see the
|
||||
example in Section \ref{sec:set}).
|
||||
|
||||
The input for the first four lines of the directive allows the user to name
|
||||
the object, specify the geometry input format, decide how to treat dummy
|
||||
centers in the geometry, and tell the code what to do about printing
|
||||
the geometry information.
|
||||
\subsubsection*{{\tt UNITS}}
|
||||
The default units for the geometry input unit is {\AA}ngstr\"{o}m
|
||||
(\verb+bohr+ or \verb+au+), however atomic units or Bohr are used
|
||||
internally. However, the geometric coordinates can also be supplied
|
||||
in atomic units, nanometers and picometers by specifying the
|
||||
appropriate value for the \verb+UNITS+ keyword. (Note: The default
|
||||
conversion factor used in the code to convert from {\AA}ngstr\"{o}m to
|
||||
Bohr is $1.8897265$.)
|
||||
|
||||
The default \verb+name+ for a geometry object is the string \verb+geometry+,
|
||||
and most modules in the code look for an object with this name.
|
||||
The user can redirect the module to a different geometry object by assigning
|
||||
the string \verb+geomery+ to \verb+name+ using the \verb+SET+ directive
|
||||
(see Section \ref{sec:set}). The default for the geometry input unit
|
||||
is \verb+bohr+ (or \verb+au+), and this is the working unit for such
|
||||
distances in the code.
|
||||
However, the geometric coordinates can be supplied in
|
||||
\verb+angstrom+ by specifying this keyword in the directive.
|
||||
(Note: The conversion factor used in the code to convert from Angstr\"{o}m
|
||||
to Bohr is $1.8897265$.)
|
||||
Possible values for the \verb+UNITS+ keyword are (only the first two
|
||||
characters need be specified)
|
||||
\begin{itemize}
|
||||
\item \verb+angstrom+ --- {\AA}ngstr\"{o}m, the default. Converts
|
||||
to A.U. using the \AA\ to A.U. conversion factor.
|
||||
\item \verb+au+ or \verb+atomic+ or \verb+bohr+ --- Atomic units
|
||||
\item \verb+nm+ or \verb+nanometers+ --- nanometers (converts to
|
||||
A.U. using a conversion factor computed as $10.0$ times the
|
||||
\AA\ to A.U. conversion)
|
||||
\item \verb+pm+ or \verb+picometers+ --- picometers (converts to
|
||||
A.U. using a conversion factor computed as $0.01$ times the
|
||||
\AA\ to A.U. conversion)
|
||||
\end{itemize}
|
||||
|
||||
The default in NWChem is to ignore interactions between dummy centers.
|
||||
Specifying the keyword \verb+bqbq+ forces the code to include these
|
||||
interactions. The complimentary keywords \verb+print+ and \verb+noprint+
|
||||
allow the user to specify the print option for the geometry module,
|
||||
independent of any specifications in the top-level \verb+PRINT+ directive.
|
||||
The \verb+print+ keyword tells the code to print everything for this
|
||||
module, regardless of other instructions. In addition, the keyword
|
||||
\verb+xyz+ specifies that the coordinates will be printed in the XYZ
|
||||
format of XMol. If the keyword \verb+noprint+ is specified, the printing
|
||||
of all geometry output for this module is suppressed.
|
||||
E.g., the following directives all specify the same geometry for $H_2$
|
||||
(a bond length of 0.732556\ \AA).
|
||||
\begin{verbatim}
|
||||
geometry
|
||||
h 0 0 0
|
||||
h 0 0 0.732556
|
||||
end
|
||||
|
||||
geometry units nm
|
||||
h 0 0 0
|
||||
h 0 0 0.0732556
|
||||
end
|
||||
|
||||
geometry units pm
|
||||
h 0 0 0
|
||||
h 0 0 73.2556
|
||||
end
|
||||
|
||||
geometry units atomic
|
||||
h 0 0 0
|
||||
h 0 0 1.3843305
|
||||
end
|
||||
\end{verbatim}
|
||||
|
||||
\subsubsection*{{\tt BQBQ}}
|
||||
The default in NWChem is to ignore interactions between dummy centers
|
||||
(those beginning with \verb+bq+ or \verb+x+),
|
||||
when computing energies or energy derivatives. These interactions
|
||||
will be included if the keyword \verb+BQBQ+ is specified.
|
||||
|
||||
\subsubsection*{{\tt PRINT} and {\tt NOPRINT}}
|
||||
The complimentary keywords \verb+print+ and \verb+noprint+
|
||||
enable/disable printing of the geometry when it is read by the input
|
||||
module. It is printed by default. In addition, the print keyword may
|
||||
be qualitifed by the additional keyword \verb+XYZ+ which specifies
|
||||
that the coordinates should be printed in the XYZ format of XMol.
|
||||
|
||||
\subsubsection*{{\tt AUTOZ}}
|
||||
By default the Cartesian or Z-matrix parameters provided by the user
|
||||
in the body of the geometry directive are used in subsequent geometry
|
||||
optimizations. If \verb+AUTOZ+ is specified then the user's input is
|
||||
used {\em only} to define the starting geometry and NWChem will
|
||||
automatically generate a set of internal coordinates suitable for
|
||||
geometry optimization. See the Section \ref{sec:zcoord} for how to
|
||||
force the definition of specific internal variables in combination
|
||||
with automatically generated variables.
|
||||
|
||||
\subsection{Symmetry Group Input}
|
||||
|
||||
The input following the keyword \verb+SYMMETRY GROUP+ is used to specify
|
||||
the symmetry for the molecule modeled with this geometry object.
|
||||
There is no default for this input in the current version of NWChem, since
|
||||
the use of molecular symmetry is not yet automated in the code.
|
||||
Examples of expected input for the string \verb+group_name+ include
|
||||
such entries as
|
||||
The symmetry directive is used to specify the point group for the
|
||||
molecular geometry (space group information for 1-, 2-, and
|
||||
3-dimensional periodic systems is not yet documented). The point
|
||||
group name should be specified as the standard Sch\"{o}files symbol.
|
||||
|
||||
\begin{itemize}
|
||||
\item \verb+c2v+ -- for molecular symmetry C\_{2v}
|
||||
\item \verb+d2h+ -- for molecular symmetry D\_{2h}
|
||||
\item \verb+Td+ -- for molecular symmetry T\_{d}
|
||||
\item \verb+d6h+ -- for molecular symmetry D\_{6h}
|
||||
\end{itemize}
|
||||
|
||||
The user must know the symmetry of the molecule being modeled, and be able
|
||||
to specify the
|
||||
coordinates of the symmetry-unique atoms in a suitable orientation
|
||||
relative to the rotation axes and symmetry planes.
|
||||
Appendix \ref{symexamples} lists a number of examples of the \verb+geometry+
|
||||
directive input for specific molecules having symmetry patterns recognized
|
||||
by NWChem.
|
||||
The default is no symmetry ($C_1$ point group) and detection of point
|
||||
group symmetry is not yet automated, though this is planned. The user
|
||||
must also know the symmetry of the molecule being modeled, and be able
|
||||
to specify the coordinates of the symmetry-unique atoms in a suitable
|
||||
orientation relative to the rotation axes and symmetry planes.
|
||||
Appendix \ref{symexamples} lists a number of examples of the
|
||||
\verb+geometry+ directive input for specific molecules having symmetry
|
||||
patterns recognized by NWChem.
|
||||
|
||||
\subsection{Cartesian coordinate input}
|
||||
\label{sec:cart}
|
||||
|
||||
The default in NWChem is to specify the geometry information in Cartesian
|
||||
coordinates. Each atom of the molecule being modeled by the geometry
|
||||
object must be specified on a line in the directive. That is, each atom
|
||||
or center
|
||||
must be identified on a line of the following form;
|
||||
|
||||
The default in NWChem is to specify the geometry information entirely
|
||||
in Cartesian coordinates, and examples of this format have already
|
||||
appeared above (e.g, Section \ref{sec:realsample}). Each center
|
||||
(usually an atom) is identified on a line of the following form;
|
||||
\begin{verbatim}
|
||||
|
||||
<string tag> <real x> <real y> <real z> \
|
||||
[charge <real charge>] [mass <real mass>] [ghost]
|
||||
[charge <real charge>] [mass <real mass>]
|
||||
|
||||
\end{verbatim}
|
||||
|
||||
The string \verb+tag+ is the name of the atom or center. The string
|
||||
is limited to
|
||||
16 characters, and must correspond to the
|
||||
name of an atom in one of the basis sets defined for the calculation.
|
||||
Atoms or centers with the same \verb+tag+ will use the same basis set in
|
||||
the calculation.
|
||||
(See Section \ref{sec:basis} for a discussion of the input for the
|
||||
\verb+BASIS+ directive). In most cases, the entry for \verb+tag+ is the
|
||||
chemical symbol for the element, such as \verb+O+ for oxygen, \verb+H+
|
||||
for hydrogen, \verb+Fe+ for iron, etc. Dummy centers
|
||||
are differentiated from atoms and centers by giving them a \verb+tag+ that
|
||||
begins with the letters \verb+bq+. An atom must have basis functions
|
||||
associated with it, and so must all centers. If the keyword \verb+bqbq+
|
||||
is specified, dummy centers must also have basis functions.
|
||||
The string \verb+tag+ is the name of the atom or center and its case
|
||||
(upper or lower) is important. The tag is limited to 16 characters
|
||||
and is interpreted as follows
|
||||
\begin{itemize}
|
||||
\item If it begins with either the symbol or name of an element
|
||||
(ignoring case) then it is thought to be an atom of that type
|
||||
and the default charge is the atomic number adjusted for the
|
||||
presence of ECPs (see \ref{sec:ecp}). Additional characters can
|
||||
be used to distinguish between atoms of the same element. E.g.,
|
||||
the tags \verb+oxygen+, \verb+O+, \verb+o34+, \verb+olonepair+,
|
||||
and \verb+Oxygen-ether+, will all be interpreted as being oxygen
|
||||
atoms. Atoms {\em must} have basis functions associated with
|
||||
them (Section \ref{sec:basis}).
|
||||
\item If the tag begins with either \verb+BQ+ or \verb+X+
|
||||
(ignoring case) then it is treated as a dummy center with
|
||||
default zero charge. Dummy centers may optionally have basis
|
||||
functions or non-zero charge. Note, that in order to recogonize
|
||||
the xenon atom (Xe) it is not possible to input a dummy atom
|
||||
beginning with the characters \verb+XE+ --- an attempt to do
|
||||
this will generate a xenon atom.
|
||||
\item {\em If the tag begins with characters that cannot be
|
||||
matched against an atom or \verb+BQ+ or \verb+X+ then a fatal
|
||||
error is generated.}
|
||||
\end{itemize}
|
||||
|
||||
The xyz coordinates of the atom in the molecule
|
||||
are specified as real numbers
|
||||
following the string \verb+tag+. The user also has the option of
|
||||
specifying the charge of the atom (or center) and its mass.
|
||||
It is {\em important} to be aware of the following points
|
||||
\begin{itemize}
|
||||
\item The tag of a center is used in the \verb+BASIS+ directive (Section
|
||||
\ref{sec:basis}) to associate functions with centers.
|
||||
\item All centers with the same tag will have the same basis
|
||||
functions.
|
||||
\item When automatic symmetry detection is functional only centers
|
||||
with the same tag will be candidates for testing for symmetry
|
||||
equivalence.
|
||||
\item The user specified charges (of all centers, atomic and dummy)
|
||||
and any net total charge of the system (Section \ref{sec:charge}) are
|
||||
used to determine the number of electrons.
|
||||
\end{itemize}
|
||||
|
||||
The default charge for an
|
||||
atom is its atomic number, adjusted for the presence of ECPs (see Section
|
||||
\ref{sec:ecp}). In order to specify a different value for the
|
||||
charge on a particular atom, the user must enter
|
||||
the keyword \verb+charge+, then enter a real number for the unit charge
|
||||
of the atom in the real variable \verb+charge+. The values specified for the charges of
|
||||
all atoms, centers, and
|
||||
dummy centers are used in conjunction with the
|
||||
total charge of the system (as specified with the \verb+CHARGE+ directive;
|
||||
see Section
|
||||
\ref{sec:charge}) to determine the total number of electrons in the system.
|
||||
The Cartesian coordinates of the atom in the molecule are specified as real
|
||||
numbers following the string \verb+tag+. The user also has the option
|
||||
of specifying the charge of the atom (or center) and its mass.
|
||||
|
||||
The default mass for an atom is taken to be the mass of its highest naturally
|
||||
occurring isotope. If the user wishes to model some other isotope of the
|
||||
element, its mass must be defined explicitly by specifying the keyword
|
||||
\verb+mass+ and entering the appropriate value for \verb+mass+.
|
||||
The default charge for an atom is its atomic number, adjusted for the
|
||||
presence of ECPs (see Section \ref{sec:ecp}). In order to specify a
|
||||
different value for the charge on a particular atom, the user must
|
||||
enter the keyword \verb+CHARGE+.
|
||||
|
||||
The default mass for an atom is taken to be the mass of its highest
|
||||
naturally occurring isotope. If the user wishes to model some other
|
||||
isotope of the element, its mass must be defined explicitly by
|
||||
specifying the keyword \verb+MASS+.
|
||||
|
||||
% Each line in the body of the directive specifies the name or tag, and
|
||||
% the coordinates of one center or atom. The charge associated with the
|
||||
% center is inferred from the atom type. The charge may be explicitly
|
||||
% specified using the \verb+CHARGE+ keyword. Default masses may be
|
||||
% overriden by specifying the mass. The default masses are those of the
|
||||
% highest naturally abundant isotope for the given atom, not the average
|
||||
% mass of the element.
|
||||
%
|
||||
% The tag associated with each center is interpreted as follows:
|
||||
% \begin{itemize}
|
||||
% \item If it begins with \verb+BQ+ (ignoring case) then it is treated
|
||||
% as a dummy center with default zero charge. Dummy centers may
|
||||
% optionally have basis functions or non-zero charge.
|
||||
% \item If it begins with either the symbol or name of an element then
|
||||
% it is thought to be an atom. Atoms {\em must} have basis
|
||||
% functions associated with them and the default charge is the
|
||||
% atomic number adjusted for the presence of ECPs (see
|
||||
% \ref{sec:ecp}). The user provided charges (of all centers,
|
||||
% atomic and dummy) and the total charge of the system are used to
|
||||
% determine the number of electrons
|
||||
% \item The tag of a center is used in the \verb+BASIS+ directive to
|
||||
% associate functions with centers. All centers with the same tag
|
||||
% will have the same basis functions. Atomic centers may have
|
||||
% standard basis sets sited upon them.
|
||||
% \item When automatic symmetry detection is functional only centers
|
||||
% with the same tag will be candidates for testing for symmetry
|
||||
% equivalence.
|
||||
% \end{itemize}
|
||||
%
|
||||
% By default NWCHEM does not include the interaction between dummy
|
||||
% centers. The \verb+BQBQ+ qualifier to the \verb+GEOMETRY+ directive
|
||||
% causes these interactions to be included.
|
||||
%
|
||||
% The use of molecular symmetry in NWCHEM is not yet automated, thus,
|
||||
% the user is responsible for detecting symmetry and specifying the
|
||||
% coordinates of the symmetry unique atoms in a suitable orientation
|
||||
% relative to the rotation axes and symmetry planes. Since it seems
|
||||
% that only the original authors of the symmetry package seem to
|
||||
% understand the latter, we provide many examples in Appendix
|
||||
% \ref{symexamples}.
|
||||
|
||||
\subsection{Z-matrix input}
|
||||
\label{sec:Z-matrix}
|
||||
|
||||
Using the
|
||||
|
||||
\begin{verbatim}
|
||||
[zmt
|
||||
<string tag> <Z-matrix coordinate specification> [ghost]
|
||||
(ZMT || ZMATRIX || ZMAT)
|
||||
<Z-matrix coordinate specification>
|
||||
[VARIABLES
|
||||
<list of active variables>]
|
||||
|
||||
<list of active variables>
|
||||
[CONSTANTS
|
||||
<list of frozen variables>]
|
||||
|
||||
<list of frozen variables>
|
||||
|
||||
zend]
|
||||
(END || ZEND)
|
||||
\end{verbatim}
|
||||
|
||||
allows
|
||||
the user to specify the structure of the molecule by means of its Z-matrix.
|
||||
However, it is also possible to enter the coordinates of some of the atoms using
|
||||
cartesian coordinates, even in the \verb+[zmt ... zend]+ environment.
|
||||
The code is able to distinguish between
|
||||
the two types of input by means of the input following the string \verb+tag+
|
||||
for the particular atom. If the Z-matrix input is specified for the atom,
|
||||
the input consists of pairs numbers that define connectivity indices and
|
||||
bond length, bond angle, or torsion angle. If the
|
||||
input is in Cartesian coordinates, the input consists of three real numbers
|
||||
defining the x,y,z coordinates of the atom. However, the x,y,z coordinates
|
||||
must be specified in {\AA}ngstr{\"o}ms, regardless of the entry specified
|
||||
for \verb+units+.
|
||||
This allows the user to specify the structure of the system with a
|
||||
Z-matrix which allows specification of the molecular structure using
|
||||
either cartesian coordinates (see Section \ref{sec:zmcart})or internal
|
||||
coordinates (bond lengths, bond angles and dihedral angles). The
|
||||
Z-matrix input for a center consists of pairs numbers that define
|
||||
connectivity indices and a bond length and bond or torsion angless.
|
||||
Cartesian coordinate input consists of three real numbers defining the
|
||||
x,y,z coordinates of the atom. {\em Within the Z-matrix input bond
|
||||
lengths and cartesian coordinates must presently be specified in
|
||||
{\AA}ngstr{\"o}ms, regardless of the entry specified for
|
||||
\verb+units+.} Angles are specified in degrees.
|
||||
|
||||
The keyword \verb+ghost+ is used to denote a 'ghost' atom in the molecular
|
||||
geometry. A 'ghost' atom is like an ordinary atom in that it has its
|
||||
associated basis set, but it is assumed to have a nuclear charge of zero.
|
||||
This is a useful property for such things as counterpoise calculations to assess basis set
|
||||
superposition error.
|
||||
|
||||
% If the \verb+GEOMETRY+ directive contains the \verb+zmat+ keyword, the
|
||||
% structure of the molecule is defined by means of its Z-matrix, or
|
||||
% the cartesian coordinates of the atoms, or a mixture of the two. A
|
||||
% blank line terminates the list of the atoms. Bond lengths, bond
|
||||
% angles, or torsion angles can be specified by means of numerical
|
||||
% values assigned to variables. The list of variables and their
|
||||
% assigned numerical values follow the list of atoms, and is also
|
||||
% terminated with a blank line. Then comes the end of the data group
|
||||
% input with a last line 'end'
|
||||
%
|
||||
% A second set of variables to be qualified as '{\bf frozen}' may be
|
||||
% specified. They come after the blank line that indicates the end
|
||||
% of the 'variables'. The second set is also terminated by a blank line.
|
||||
% {\bf The 'frozen' specification is presently not active, but included
|
||||
% to ensure compatibility with other codes. Only cartesian coordinates
|
||||
% can be kept constant via the 'active atoms' list (see section
|
||||
% \ref{sec:activeatoms})}
|
||||
%
|
||||
% 'Ghost' atoms, often used in the assessment of basis set superposition
|
||||
% error for example, are atoms with their associated basis set, but
|
||||
% for which the nuclear charge is set to zero. Specifying a 'ghost' atom
|
||||
% may be accomplished appending the '{\tt ghost}' parameter at the end of the
|
||||
% appropriate lines below.
|
||||
%
|
||||
% When two numerical values, separated by a comma, are given for some
|
||||
% variables, they are considered as the initial and final values for the
|
||||
|
|
@ -274,187 +225,160 @@ superposition error.
|
|||
% geometries generated by linear interpolation between the initial and
|
||||
% final values.
|
||||
|
||||
The input supplied for the atoms describing the molecule by means of its
|
||||
Z-matrix requires the following sequential approach.
|
||||
The centers (denoted as \verb+i+, \verb+j+, and \verb+k+ below) used
|
||||
to specify Z-matrix connectivity may be given either as integers
|
||||
(indentifying the centers by number) or as the tag of the center.
|
||||
{\em If the tag is used, this tag must be unique.} The use of
|
||||
``dummy'' atoms is possible, by using \verb+X+ or \verb+BQ+ at the
|
||||
start of the tag.
|
||||
|
||||
Bond lengths, bond angles and dihedral angles (denoted below as {\tt
|
||||
R}, {\tt alpha}, {\tt beta} respectively) may be specified either as
|
||||
numerical values or as symbolic strings which are subsequently
|
||||
defined. The same sybmolic string may be used several times. Any
|
||||
mixture of numeric data and symbols may be given.
|
||||
|
||||
The Z-matrix input is specified sequentially as follows
|
||||
\begin{verbatim}
|
||||
tag1
|
||||
tag2 i R
|
||||
tag3 i R j alpha
|
||||
tag4 i R j alpha k beta [l]
|
||||
...
|
||||
\end{verbatim}
|
||||
|
||||
We examine this in more detail. In the following, the tag or number
|
||||
of the center being currently defined is labelled as \verb+C+ (``C''
|
||||
for current). Figures \ref{fig:zmat1}, \ref{fig:zmat2} and
|
||||
\ref{fig:zmat3} display the relationship between the input data
|
||||
and the definition of centers and angles.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\psfig{figure=zmat1.eps}
|
||||
|
||||
\caption{\label{fig:zmat1} Relationship between the centers, bond angle
|
||||
and dihedral angle in Z-matrix input.}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\psfig{figure=zmat2.eps}
|
||||
|
||||
\caption{\label{fig:zmat2} Relationship between the centers and two
|
||||
bond angles in Z-matrix input with optional parameter specified as $+1$.}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\psfig{figure=zmat3.eps}
|
||||
|
||||
\caption{\label{fig:zmat3} Relationship between the centers and two
|
||||
bond angles in Z-matrix input with optional parameter specified as $-1$.}
|
||||
\end{figure}
|
||||
|
||||
\begin{enumerate}
|
||||
|
||||
\item $<$atom$>$ [ghost]
|
||||
\item \verb+tag1+
|
||||
|
||||
% Only the name of the first atom is required. 'ghost' is used
|
||||
% only when specifying a 'ghost' atom.
|
||||
For the first atom in the molecule, the Z-matrix input requires only
|
||||
the name of the atom at it appears in the basis set. This is usually
|
||||
the chemical symbol for the atom.
|
||||
However, if the atom is a 'dummy center', the chemical symbol must
|
||||
be preceded by \verb+x+ or \verb+bq+. (The keyword 'ghost' is required
|
||||
only when specifying that the atom is to be defined as a 'ghost' atom.)
|
||||
Only the tag of the first center is required.
|
||||
|
||||
\item $<$atom$>$ $<$i1$>$ $<$blength$>$ [ghost]
|
||||
\item \verb+tag2 i R+
|
||||
|
||||
% Only a name and a bond distance is required for atom 2. For 'ghost',
|
||||
% same remark applies as before.
|
||||
For the second atom, the Z-matrix input requires the name of the atom
|
||||
as it appears in the basis set,
|
||||
plus the connectivity $<$i1$>$ and the bond distance $<$blength$>$
|
||||
connecting it to another atom.
|
||||
The second center requires specification of its tag and the
|
||||
bond-length ($R_{Ci}$) from the first atom which is identified by
|
||||
\verb+i+.
|
||||
|
||||
(NOTE: The connectivity for any bond, {\tt i1, i2, i3} \ldots,
|
||||
can be specified as an integer (1, 2, 3, \ldots) or as a string
|
||||
which matches the name specified for one of the atoms in the molecule.
|
||||
If the connectivity (such as {\tt i1}) is defined as a string,
|
||||
and the same element appears more than once in the molecule, a number
|
||||
must be added to the {\tt atom} string of the Z-matrix input for
|
||||
subsequent appearances of that element in the molecule, to ensure
|
||||
a unique \verb+tag+ for each occurance.)
|
||||
\item \verb+tag3 i R j alpha+
|
||||
|
||||
\item $<$atom$>$ $<$i1$>$ $<$blength$>$ $<$i2$>$ $<$alpha$>$ [ghost]
|
||||
The third center requires specification of its tag, its distance
|
||||
($R_{Ci}$) to one of the previous two centers (identified by the
|
||||
value of \verb+i+) and the angle $\widehat{Cij}$.
|
||||
|
||||
% Only a name, distance, and angle are required for atom 3. For
|
||||
% 'ghost', same remark applies as before.
|
||||
For the third atom of the molecule, the Z-matrix input requires the
|
||||
name of the atom as it appears in the basis set and the connectivity
|
||||
$<$i1$>$ and bond distance
|
||||
$<$blength$>$ connecting it to atom 2, plus the connectivity $<$i2$>$
|
||||
and angle $<$alpha$>$ it makes with the plane of the first two atoms.
|
||||
\item \verb+tag i R j alpha k beta [<integer l default 0>]+
|
||||
|
||||
\item $<$atom$>$ $<$i1$>$ $<$blength$>$ $<$i2$>$ $<$alpha$>$ $<$i3$>$ $<$beta$>$ $<$i4$>$ [ghost] %
|
||||
The fourth, and all subsequent centers, require the tag, a bond
|
||||
length ($R_{Ci}$) relative to center \verb+i+, the angle with
|
||||
centers \verb+i+ and \verb+j+ ($\widehat{Cij}$), and {\em either}
|
||||
\begin{enumerate}
|
||||
\item the dihedral angle betwen the current center and centers
|
||||
\verb+i+, \verb+j+ and \verb+k+ (Figure \ref{fig:zmat1}), or
|
||||
\item a second bond angle $\widehat{Cik}$ and an orientation to
|
||||
the plane containing the other three centers (Figure
|
||||
\ref{fig:zmat2} and \ref{fig:zmat3}).
|
||||
\end{enumerate}
|
||||
|
||||
For the fourth atom and all subsequent atoms in the molecule (if it
|
||||
has more than four atoms), the Z-matrix input requires the name
|
||||
of the atom as it appears in the basis set,
|
||||
plus the connectivities and bond length,
|
||||
bond angle, and either the dihedral angle or a second bond angle
|
||||
for the atom.
|
||||
|
||||
\begin{itemize}
|
||||
% \item [$\bullet$] {\tt atom} is the chemical symbol of this
|
||||
% atom; it can be followed
|
||||
% by numbers if desired. The chemical symbol implies the nuclear
|
||||
% charge.
|
||||
\item [$\bullet$] {\tt i1} defines the connectivity of the following bond
|
||||
% \item [$\bullet$] {\tt blength} is the bond length 'this atom-atom i1'.
|
||||
\item [$\bullet$] {\tt blength} is the bond length between this atom and the atom denoted by {\tt i1}
|
||||
\item [$\bullet$] {\tt i2} defines the connectivity of the following angle
|
||||
% \item [$\bullet$] {\tt alpha} is the angle 'this atom-atom i1-atom i2'.
|
||||
\item [$\bullet$] {\tt alpha} is the angle that the bond with this atom
|
||||
makes with the plane of the bond between atom {\tt i1} and atom {\tt i2}
|
||||
\item [$\bullet$] {\tt i3} defines the connectivity of the following angle
|
||||
% \item [$\bullet$] {\tt beta} is either the dihedral angle
|
||||
%'this atom-atom {\tt i1}-atom {\tt i2}-atom
|
||||
% {\tt i3}', or perhaps a second bond angle, 'this atom-atom i1-atom {\t%t i3}'
|
||||
\item [$\bullet$] {\tt beta} is the dihedral angle between
|
||||
this atom and the plane containing atom {\tt i1} and atom {\tt i2} and atom
|
||||
{\tt i3}; alternatively, it defines a second bond angle for
|
||||
this atom, between this atom and the plane of the two atoms
|
||||
atom {\tt i1} and atom {\tt i3}.
|
||||
Which alternative is selected depends on the value specified for {\tt i4}, as explained below.
|
||||
% \item [$\bullet$] {\tt i4} defines the nature of {\tt beta}. If
|
||||
%{\tt beta} is a dihedral
|
||||
% angle, {\tt i4}=0 ( default ). If {\tt beta} is a second bond angle,
|
||||
% then {\tt i4}=+/-1
|
||||
% (sign specifies one of two possible directions).
|
||||
% \item [$\bullet$] For 'ghost', same remark applies as before.
|
||||
\item [$\bullet$] {\tt i4} defines the nature of the input for {\tt beta}. If {\tt i4} is zero,
|
||||
{\tt beta} is interpreted as a dihedral
|
||||
angle. (This is the default.) If {\tt i4} is entered as +1 or -1, {\tt beta}
|
||||
is interpreted as a second bond angle. (The sign of {\tt i4} specifies the
|
||||
direction of the bond angle relative to the plane described by the
|
||||
three reference atoms).
|
||||
\end{itemize}
|
||||
|
||||
% \item Line no.\ 4 is repeated for each remaining atom. A blank line
|
||||
% indicates the end of the atoms in the molecule.
|
||||
|
||||
% \item The use of 'dummy' atoms is possible, by using 'X' or 'BQ' for the
|
||||
%chemical symbol.
|
||||
%
|
||||
% \item The connectivity i1, i2, i3, may be given as integers,
|
||||
% 1, 2, 3, 4, 5, \ldots or as strings which match one of the {\tt atom}s.
|
||||
% In this case, numbers must be added to the {\tt atom} string to
|
||||
% ensure uniqueness.
|
||||
%
|
||||
% \item Symbolic strings may be given in place of numeric values for
|
||||
%{\tt blength}, {\tt alpha}, {\tt beta}. The same string may be repeated. Any mixture of
|
||||
% numeric data and symbols may be given.
|
||||
%
|
||||
% \item All symbolic definitions follow the blank line that signals the
|
||||
% end of the Z-matrix input. The list of symbolic definitions ends with a
|
||||
% blank line, followed by an '{\tt end}' directive. If there are no symbolic
|
||||
% definitions, and all the bond lengths, angles, and torsions are
|
||||
% specified by their numeric values in the Z-matrix data, then the
|
||||
% end of the Z-matrix data is detected through two blank lines, one
|
||||
% to indicate the end of the Z-matrix proper, the other to indicate
|
||||
% the end of the symbolic definitions.
|
||||
%
|
||||
% \item A second set of symbolic definitions, separated from the
|
||||
% first set through a blank line, may be included to specify
|
||||
% {\bf frozen} internal
|
||||
% coordinates. A blank line again defines the end of the
|
||||
% list of 'frozen' internal coordinates.
|
||||
%
|
||||
% \item Note that atoms in the Z-matrix data may be specified via Cartesian
|
||||
% coordinates expressed in units of {\AA}ngstr{\o}ms, Each line has the
|
||||
% following form:
|
||||
%
|
||||
% \begin{verbatim}
|
||||
% <atom> <x> <y> <z> [ghost]
|
||||
% \end{verbatim}
|
||||
%
|
||||
% with {\tt atom} being the atomic name as before, x, y, z being the
|
||||
% Cartesian coordinates, and {\tt ghost} used only when specifying a
|
||||
% 'ghost' atom.
|
||||
By default $\beta$ is interpreted as a dihedral angle (see Figure
|
||||
\ref{fig:zmat1}), but if the optional last parameter (\verb+l+) is
|
||||
specified with the value $\pm 1$ then $\beta$ is interpreted as
|
||||
the angle $\widehat{Cik}$. The sign of \verb+l+ specifies the
|
||||
direction of the bond angle relative to the plane described by the
|
||||
three reference atoms. If \verb+l+ is $+1$ then the new center
|
||||
(\verb+C+) is above the plane (Figures \ref{fig:zmat2}), and if
|
||||
\verb+l+ is $-1$ then \verb+C+ is below the plane (Figure
|
||||
\ref{fig:zmat3}).
|
||||
\end{enumerate}
|
||||
|
||||
The Z-matrix variables {\tt blength}, {\tt alpha}, and {\tt beta} can be
|
||||
entered either as numeric values or symbolic strings, or as a mixture of
|
||||
the two types for a given atom. The end of the Z-matrix input for the
|
||||
molecule is signaled by a blank line in the directive, and all symbolic
|
||||
definitions for the variables must be supplied following that blank line.
|
||||
The list of symbolic definitions is terminated with another blank line.
|
||||
If there are no symbolic definitions for the Z-matrix input (that is,
|
||||
all of the bond lengths, angles, and torsions are specified by their
|
||||
numeric values), then the end of the Z-matrix data is signaled by entering
|
||||
two blank lines in the directive; one to indicate the end of the Z-matrix
|
||||
input, and the other to indicate the end of the symbolic definitions.
|
||||
Following the Z-matrix center definitions described above, may be two
|
||||
optional sections which are described next.
|
||||
|
||||
The \verb+GEOMETRY+ directive also contains a feature that allows the user
|
||||
to define symbolic definitions for a set of variables that will be
|
||||
qualified as '{\bf frozen}'. A {\bf frozen} atom is one that will not
|
||||
have any of its geometric parameters changed in the course of an optimization
|
||||
or other calculation that would change the geometry of a molecule.
|
||||
The ability to actually use this feature
|
||||
for atoms defined by means of the Z-matrix input does not exist in NWChem
|
||||
as yet, but the input option has been included to ensure compatibility with
|
||||
other codes. Only atoms that have been specified using Cartesian coordinates
|
||||
can retain their geometry parameters at the specified input values. This
|
||||
is accomplished by means of the optional 'active atoms' list (refer to Section
|
||||
\ref{sec:activeatoms}).
|
||||
|
||||
If the user wishes to specify a set of {\bf frozen} variables, however,
|
||||
% (we won't ask why...)
|
||||
they must be specified following the blank line that signals the end of
|
||||
the symbolic definitions for the Z-matrix input. The end of the input
|
||||
for the {\bf frozen} variables is also signaled with a blank line.
|
||||
|
||||
The following example illustrates the Z-matrix input for the molecule
|
||||
$CH_3CF_3$. This input uses integer numbers for the connectivities {\tt i1},
|
||||
{\tt i2}, {\tt i3} \ldots, but has symbolic strings as entries for the Z-matrix
|
||||
variables {\tt blength}, {\tt alpha}, and {\tt beta}. It therefore must
|
||||
also include input lines defining the symbolic strings, following the blank
|
||||
line that terminates the Z-matrix input. This example also includes a set
|
||||
of {\bf frozen} variables, which are entered after the blank line terminating
|
||||
the definitions of the symbolic strings used by the Z-matrix.
|
||||
|
||||
|
||||
% \subsubsection*{example}
|
||||
|
||||
% The following example is the z-matrix for $CH_3CF_3$,
|
||||
|
||||
The \verb+GEOMETRY+ directive for this example is as follows;
|
||||
The first must be prefaced by the directive \verb+VARIABLES+ and is
|
||||
used to define initial values for the symbolic variables used within
|
||||
the Z-matrix.
|
||||
|
||||
\begin{verbatim}
|
||||
zmt
|
||||
VARIABLES
|
||||
<string symbol> <double value>
|
||||
...
|
||||
\end{verbatim}
|
||||
Each line contains the name of a variable followed by its value.
|
||||
Optionally, an equals sign (\verb+=+) may be included between the
|
||||
symbol and its value.
|
||||
|
||||
The second section, \verb+CONSTANTS+, is used to define Z-matrix symbolic
|
||||
variables that remain unchanged during geometry optimizations.
|
||||
\begin{verbatim}
|
||||
CONSTANTS
|
||||
<string symbol> <double value>
|
||||
...
|
||||
\end{verbatim}
|
||||
Each line contains the name of a variable followed by its value.
|
||||
Optionally, an equals sign (\verb+=+) may be included between the
|
||||
symbol and its value.
|
||||
{\em Note that this functionality is not yet available and that all
|
||||
Z-matrix parameters (Cartesian coordinates, numerically specified
|
||||
bond-lengths and angles, and symbolic variables) will be modified
|
||||
during geometry optimizations.} To freeze the Cartesian coordinates
|
||||
of an atom refer to Section \ref{sec:activeatoms}).
|
||||
|
||||
The end of the Z-matrix input signaled by either \verb+END+ or
|
||||
\verb+ZEND+.
|
||||
|
||||
A simple example is presented for water. All Z-matrix parameters are
|
||||
specified numerically, and the symbolic tags are used to specify
|
||||
connectivity information. This requires that all tags are unique, and
|
||||
so different tags are used for the hydrogen atoms which might
|
||||
otherwise be identical.
|
||||
\begin{verbatim}
|
||||
geometry
|
||||
zmatrix
|
||||
O
|
||||
H1 O 1.08
|
||||
H2 O 1.08 H1 108.0
|
||||
end
|
||||
end
|
||||
\end{verbatim}
|
||||
|
||||
The following example illustrates the Z-matrix input for the molecule
|
||||
$CH_3CF_3$. This input uses the numbers of centers when specifying
|
||||
the connectivity information (\verb+i+, \verb+j+ and \verb+k+) and
|
||||
uses symbolic variables for the Z-matrix parameters {\tt R}, {\tt
|
||||
alpha}, and {\tt beta} which are defined in \verb+VARIABLES+ and
|
||||
\verb+CONSTANTS+ sections.
|
||||
|
||||
\begin{verbatim}
|
||||
geometry
|
||||
zmatrix
|
||||
C
|
||||
C 1 CC
|
||||
H 1 CH1 2 HCH1
|
||||
|
|
@ -463,40 +387,75 @@ The \verb+GEOMETRY+ directive for this example is as follows;
|
|||
F 2 CF1 1 CCF1 3 TOR3 0
|
||||
F 2 CF2 1 CCF2 6 FCH1 1
|
||||
F 2 CF3 1 CCF3 6 FCH2 -1
|
||||
|
||||
CC = 1.4888
|
||||
CH1 = 1.0790
|
||||
CH2 = 1.0789
|
||||
CH3 = 1.0789
|
||||
CF1 = 1.3667
|
||||
CF2 = 1.3669
|
||||
CF3 = 1.3669
|
||||
|
||||
HCH1 = 10428
|
||||
HCH2 = 10474
|
||||
HCH3 = 1047
|
||||
CCF1 = 112.0713
|
||||
CCF2 = 112.0341
|
||||
CCF3 = 112.0340
|
||||
TOR1 = 109.3996
|
||||
TOR2 = 109.3997
|
||||
TOR3 = 180.0000
|
||||
FCH1 = 106.7846
|
||||
FCH2 = 106.7842
|
||||
|
||||
zend
|
||||
variables
|
||||
CC 1.4888
|
||||
CH1 1.0790
|
||||
CH2 1.0789
|
||||
CH3 1.0789
|
||||
CF1 1.3667
|
||||
CF2 1.3669
|
||||
CF3 1.3669
|
||||
constants
|
||||
HCH1 10428
|
||||
HCH2 10474
|
||||
HCH3 1047
|
||||
CCF1 112.0713
|
||||
CCF2 112.0341
|
||||
CCF3 112.0340
|
||||
TOR1 109.3996
|
||||
TOR2 109.3997
|
||||
TOR3 180.0000
|
||||
FCH1 106.7846
|
||||
FCH2 106.7842
|
||||
end
|
||||
end
|
||||
\end{verbatim}
|
||||
|
||||
% The separation of the symbolic definitions into two groups is what
|
||||
% makes the internal coordinates of the second group 'frozen'.
|
||||
% Removal of the blank line between the first and second set of
|
||||
% symbolic definitions would remove the 'frozen' character of all the
|
||||
% variables defined in the second group.
|
||||
\subsubsection{Using Cartesian variables in Z-matrices}
|
||||
\label{sec:zmcart}
|
||||
|
||||
In this example, the symbolic strings listed after the first blank line
|
||||
(which signals the end of the Z-matrix input for the molecule) are defined
|
||||
with the values listed ({\tt CC= 1.4888}, {\tt CH1 = 1.0790}, etc.). The
|
||||
second blank line forces the symbolic definitions starting with {\tt HCH1
|
||||
= 10428} to be {\bf frozen}. Currently this has no effect on the
|
||||
program, but is included for compatibility with other codes.
|
||||
In order to specify Cartesian coordinates within the Z-matrix it is
|
||||
necessary to understand the orientation of centers specified using
|
||||
internal coordinates. These are arranged as follows:
|
||||
\begin{itemize}
|
||||
\item The first center is placed at the origin.
|
||||
\item The second center is placed along the positive z-axis.
|
||||
\item The third center is placed in the z-x plane.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{{\tt ZCOORD} --- Defining internal coordinates for {\tt AUTOZ}}
|
||||
\label{sec:zcoord}
|
||||
|
||||
The \verb+AUTOZ+ keyword forces automatic generation of internal
|
||||
coordinates for use in geometry optimizations. Connectivity
|
||||
is inferred by comparing inter-atomic distances with van de Waals
|
||||
radii, and under some circumstances it may be necessary to augment the
|
||||
automatically generated list of internal coordinates. This is
|
||||
accomplished by including a {\tt ZCOORD} section within the geometry
|
||||
directive.
|
||||
|
||||
The centers \verb+i+, \verb+j+, \verb+k+ and \verb+l+ below {\em must} be
|
||||
specified using number of the centers.
|
||||
\begin{verbatim}
|
||||
ZCOORD
|
||||
ijbond i j
|
||||
ijkang i j k
|
||||
ijklto i j k l
|
||||
ijklop i j k l
|
||||
ijklnb i j k l
|
||||
END
|
||||
\end{verbatim}
|
||||
|
||||
\begin{itemize}
|
||||
\item {\tt ijbond} --- a bond between the two centers.
|
||||
\item {\tt ijkang} --- a bond angle $\widehat{ijk}$.
|
||||
\item {\tt ijklto} --- a torsion (or dihedral) angle. The
|
||||
angle between the planes \verb+i-j-k+ and \verb+j-k-l+.
|
||||
\item {\tt ijklop} --- an out-of-plane bend. The angle of center
|
||||
\verb+l+ out of the plane \verb+i-j-k+.
|
||||
\item {\tt ijklnb} --- a linear bend. This defines two angles
|
||||
corresponding to the deformation of the centers \verb+i--j--k+
|
||||
which may initially be arranged (nearly) linearly. The center
|
||||
\verb+l+ must not be colinear. The two bends are constructed to be
|
||||
within and perpendicular to the plane containing the atoms.
|
||||
\end{itemize}
|
||||
|
|
|
|||
1215
doc/user/intro.tex
1215
doc/user/intro.tex
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,4 @@
|
|||
\label{knownbasis}
|
||||
\label{sec:knownbasis}
|
||||
|
||||
Basis sets were obtained (8/12/96) from the Extensible Computational
|
||||
Chemistry Environment (ECCE) Basis Set Database, as developed and distributed
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
\label{sec:mcscf}
|
||||
\Large
|
||||
*****
|
||||
It would be really nice if someone could supply a '25 words or less'
|
||||
description of the Multiconfiguration SCF module right here.********
|
||||
\normalsize
|
||||
The NWChem MCSCF module can currently perform complete active space
|
||||
SCF (CASSCF) calculations with at most 20 active orbitals and about
|
||||
500 basis functions.
|
||||
|
||||
The Multiconfiguration SCF program is invoked in NWChem
|
||||
by specifying the keyword \verb+mcscf+ on the compound directive,
|
||||
|
|
|
|||
|
|
@ -1,13 +1,9 @@
|
|||
\label{SCF}
|
||||
\Large
|
||||
***
|
||||
It would be really nice if someone could supply a '25-words-or-less'
|
||||
description of the SCF program right here.
|
||||
***
|
||||
\normalsize
|
||||
\label{SCF}
|
||||
|
||||
The SCF program is invoked in NWChem
|
||||
by specifying the keyword \verb+scf+ on the compound directive,
|
||||
The NWChem self-consistent field (SCF) module computes closed-shell
|
||||
restricted Hartree-Fock (RHF), restricted high-spin open-shell
|
||||
Hartree-Fock (ROHF) and spin-unrestricted Hatree-FOck (UHF)
|
||||
wavefunctions.
|
||||
|
||||
\begin{verbatim}
|
||||
SCF
|
||||
|
|
@ -52,7 +48,7 @@ total charge on the system and the nuclear charges of the
|
|||
specific atoms (which are by default their atomic numbers
|
||||
adjusted for the presence of ECPs, unless specified
|
||||
explicitly by input on the \verb+GEOMETRY+ directive -- see Section
|
||||
\ref{sec:geometry}). The total charge on the system is zero by default,
|
||||
\ref{sec:geom}). The total charge on the system is zero by default,
|
||||
unless specified at
|
||||
some value by input on the \verb+CHARGE+ directive -- see Section
|
||||
\ref{sec:toplevel}).
|
||||
|
|
@ -1170,6 +1166,7 @@ Section \ref{sec:nrswitch} above.)
|
|||
|
||||
|
||||
\subsection{Printing Information from the SCF Module}
|
||||
\label{sec:scfprint}
|
||||
|
||||
All output from the SCF module is controlled using the \verb+PRINT+
|
||||
directive described in Section \ref{sec:printcontrol}. The following
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -5,6 +5,8 @@
|
|||
\newcommand{\nwchemversion}{2.0}
|
||||
\newcommand{\nwchemyear}{1996}
|
||||
|
||||
\input{psfig}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\title{\bf\Large NWChem User Documentation, Alpha Release \nwchemversion}
|
||||
|
|
@ -24,6 +26,9 @@
|
|||
\section{Introduction}
|
||||
\input{intro.tex}
|
||||
|
||||
\subsection{Functionality}
|
||||
\input{functionality.tex}
|
||||
|
||||
\section{Top-level directives}
|
||||
\input{top-level}
|
||||
|
||||
|
|
|
|||
527
doc/user/zmat1.eps
Normal file
527
doc/user/zmat1.eps
Normal file
|
|
@ -0,0 +1,527 @@
|
|||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: zmat1.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 1
|
||||
%%CreationDate: Mon Jan 27 12:33:28 1997
|
||||
%%For: d3g681@fermi (Robert J Harrison)
|
||||
%%Orientation: Landscape
|
||||
%%BoundingBox: 0 0 201 509
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize Letter
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {} def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-9.0 -18.0 translate
|
||||
90 rotate
|
||||
1 -1 scale
|
||||
.9 .9 scale % to make patterns same scale as in xfig
|
||||
|
||||
% This junk string is used by the show operators
|
||||
/PATsstr 1 string def
|
||||
/PATawidthshow { % cx cy cchar rx ry string
|
||||
% Loop over each character in the string
|
||||
{ % cx cy cchar rx ry char
|
||||
% Show the character
|
||||
dup % cx cy cchar rx ry char char
|
||||
PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char)
|
||||
false charpath % cx cy cchar rx ry char
|
||||
/clip load PATdraw
|
||||
% Move past the character (charpath modified the
|
||||
% current point)
|
||||
currentpoint % cx cy cchar rx ry char x y
|
||||
newpath
|
||||
moveto % cx cy cchar rx ry char
|
||||
% Reposition by cx,cy if the character in the string is cchar
|
||||
3 index eq { % cx cy cchar rx ry
|
||||
4 index 4 index rmoveto
|
||||
} if
|
||||
% Reposition all characters by rx ry
|
||||
2 copy rmoveto % cx cy cchar rx ry
|
||||
} forall
|
||||
pop pop pop pop pop % -
|
||||
currentpoint
|
||||
newpath
|
||||
moveto
|
||||
} bind def
|
||||
/PATcg {
|
||||
7 dict dup begin
|
||||
/lw currentlinewidth def
|
||||
/lc currentlinecap def
|
||||
/lj currentlinejoin def
|
||||
/ml currentmiterlimit def
|
||||
/ds [ currentdash ] def
|
||||
/cc [ currentrgbcolor ] def
|
||||
/cm matrix currentmatrix def
|
||||
end
|
||||
} bind def
|
||||
% PATdraw - calculates the boundaries of the object and
|
||||
% fills it with the current pattern
|
||||
/PATdraw { % proc
|
||||
save exch
|
||||
PATpcalc % proc nw nh px py
|
||||
5 -1 roll exec % nw nh px py
|
||||
newpath
|
||||
PATfill % -
|
||||
restore
|
||||
} bind def
|
||||
% PATfill - performs the tiling for the shape
|
||||
/PATfill { % nw nh px py PATfill -
|
||||
PATDict /CurrentPattern get dup begin
|
||||
setfont
|
||||
% Set the coordinate system to Pattern Space
|
||||
PatternGState PATsg
|
||||
% Set the color for uncolored pattezns
|
||||
PaintType 2 eq { PATDict /PColor get PATsc } if
|
||||
% Create the string for showing
|
||||
3 index string % nw nh px py str
|
||||
% Loop for each of the pattern sources
|
||||
0 1 Multi 1 sub { % nw nh px py str source
|
||||
% Move to the starting location
|
||||
3 index 3 index % nw nh px py str source px py
|
||||
moveto % nw nh px py str source
|
||||
% For multiple sources, set the appropriate color
|
||||
Multi 1 ne { dup PC exch get PATsc } if
|
||||
% Set the appropriate string for the source
|
||||
0 1 7 index 1 sub { 2 index exch 2 index put } for pop
|
||||
% Loop over the number of vertical cells
|
||||
3 index % nw nh px py str nh
|
||||
{ % nw nh px py str
|
||||
currentpoint % nw nh px py str cx cy
|
||||
2 index show % nw nh px py str cx cy
|
||||
YStep add moveto % nw nh px py str
|
||||
} repeat % nw nh px py str
|
||||
} for
|
||||
5 { pop } repeat
|
||||
end
|
||||
} bind def
|
||||
|
||||
% PATkshow - kshow with the current pattezn
|
||||
/PATkshow { % proc string
|
||||
exch bind % string proc
|
||||
1 index 0 get % string proc char
|
||||
% Loop over all but the last character in the string
|
||||
0 1 4 index length 2 sub {
|
||||
% string proc char idx
|
||||
% Find the n+1th character in the string
|
||||
3 index exch 1 add get % string proe char char+1
|
||||
exch 2 copy % strinq proc char+1 char char+1 char
|
||||
% Now show the nth character
|
||||
PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr)
|
||||
false charpath % string proc char+1 char char+1
|
||||
/clip load PATdraw
|
||||
% Move past the character (charpath modified the current point)
|
||||
currentpoint newpath moveto
|
||||
% Execute the user proc (should consume char and char+1)
|
||||
mark 3 1 roll % string proc char+1 mark char char+1
|
||||
4 index exec % string proc char+1 mark...
|
||||
cleartomark % string proc char+1
|
||||
} for
|
||||
% Now display the last character
|
||||
PATsstr dup 0 4 -1 roll put % string proc (char+1)
|
||||
false charpath % string proc
|
||||
/clip load PATdraw
|
||||
neewath
|
||||
pop pop % -
|
||||
} bind def
|
||||
% PATmp - the makepattern equivalent
|
||||
/PATmp { % patdict patmtx PATmp patinstance
|
||||
exch dup length 7 add % We will add 6 new entries plus 1 FID
|
||||
dict copy % Create a new dictionary
|
||||
begin
|
||||
% Matrix to install when painting the pattern
|
||||
TilingType PATtcalc
|
||||
/PatternGState PATcg def
|
||||
PatternGState /cm 3 -1 roll put
|
||||
% Check for multi pattern sources (Level 1 fast color patterns)
|
||||
currentdict /Multi known not { /Multi 1 def } if
|
||||
% Font dictionary definitions
|
||||
/FontType 3 def
|
||||
% Create a dummy encoding vector
|
||||
/Encoding 256 array def
|
||||
3 string 0 1 255 {
|
||||
Encoding exch dup 3 index cvs cvn put } for pop
|
||||
/FontMatrix matrix def
|
||||
/FontBBox BBox def
|
||||
/BuildChar {
|
||||
mark 3 1 roll % mark dict char
|
||||
exch begin
|
||||
Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata]
|
||||
PaintType 2 eq Multi 1 ne or
|
||||
{ XStep 0 FontBBox aload pop setcachedevice }
|
||||
{ XStep 0 setcharwidth } ifelse
|
||||
currentdict % mark [paintdata] dict
|
||||
/PaintProc load % mark [paintdata] dict paintproc
|
||||
end
|
||||
gsave
|
||||
false PATredef exec true PATredef
|
||||
grestore
|
||||
cleartomark % -
|
||||
} bind def
|
||||
currentdict
|
||||
end % newdict
|
||||
/foo exch % /foo newlict
|
||||
definefont % newfont
|
||||
} bind def
|
||||
% PATpcalc - calculates the starting point and width/height
|
||||
% of the tile fill for the shape
|
||||
/PATpcalc { % - PATpcalc nw nh px py
|
||||
PATDict /CurrentPattern get begin
|
||||
gsave
|
||||
% Set up the coordinate system to Pattern Space
|
||||
% and lock down pattern
|
||||
PatternGState /cm get setmatrix
|
||||
BBox aload pop pop pop translate
|
||||
% Determine the bounding box of the shape
|
||||
pathbbox % llx lly urx ury
|
||||
grestore
|
||||
% Determine (nw, nh) the # of cells to paint width and height
|
||||
PatHeight div ceiling % llx lly urx qh
|
||||
4 1 roll % qh llx lly urx
|
||||
PatWidth div ceiling % qh llx lly qw
|
||||
4 1 roll % qw qh llx lly
|
||||
PatHeight div floor % qw qh llx ph
|
||||
4 1 roll % ph qw qh llx
|
||||
PatWidth div floor % ph qw qh pw
|
||||
4 1 roll % pw ph qw qh
|
||||
2 index sub cvi abs % pw ph qs qh-ph
|
||||
exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph
|
||||
% Determine the starting point of the pattern fill
|
||||
%(px, py)
|
||||
4 2 roll % nw nh pw ph
|
||||
PatHeight mul % nw nh pw py
|
||||
exch % nw nh py pw
|
||||
PatWidth mul exch % nw nh px py
|
||||
end
|
||||
} bind def
|
||||
|
||||
% Save the original routines so that we can use them later on
|
||||
/oldfill /fill load def
|
||||
/oldeofill /eofill load def
|
||||
/oldstroke /stroke load def
|
||||
/oldshow /show load def
|
||||
/oldashow /ashow load def
|
||||
/oldwidthshow /widthshow load def
|
||||
/oldawidthshow /awidthshow load def
|
||||
/oldkshow /kshow load def
|
||||
|
||||
% These defs are necessary so that subsequent procs don't bind in
|
||||
% the originals
|
||||
/fill { oldfill } bind def
|
||||
/eofill { oldeofill } bind def
|
||||
/stroke { oldstroke } bind def
|
||||
/show { oldshow } bind def
|
||||
/ashow { oldashow } bind def
|
||||
/widthshow { oldwidthshow } bind def
|
||||
/awidthshow { oldawidthshow } bind def
|
||||
/kshow { oldkshow } bind def
|
||||
/PATredef {
|
||||
userdict begin
|
||||
{
|
||||
/fill { /clip load PATdraw newpath } bind def
|
||||
/eofill { /eoclip load PATdraw newpath } bind def
|
||||
/stroke { PATstroke } bind def
|
||||
/show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
|
||||
/ashow { 0 0 null 6 3 roll PATawidthshow }
|
||||
bind def
|
||||
/widthshow { 0 0 3 -1 roll PATawidthshow }
|
||||
bind def
|
||||
/awidthshow { PATawidthshow } bind def
|
||||
/kshow { PATkshow } bind def
|
||||
} {
|
||||
/fill { oldfill } bind def
|
||||
/eofill { oldeofill } bind def
|
||||
/stroke { oldstroke } bind def
|
||||
/show { oldshow } bind def
|
||||
/ashow { oldashow } bind def
|
||||
/widthshow { oldwidthshow } bind def
|
||||
/awidthshow { oldawidthshow } bind def
|
||||
/kshow { oldkshow } bind def
|
||||
} ifelse
|
||||
end
|
||||
} bind def
|
||||
false PATredef
|
||||
% Conditionally define setcmykcolor if not available
|
||||
/setcmykcolor where { pop } {
|
||||
/setcmykcolor {
|
||||
1 sub 4 1 roll
|
||||
3 {
|
||||
3 index add neg dup 0 lt { pop 0 } if 3 1 roll
|
||||
} repeat
|
||||
setrgbcolor - pop
|
||||
} bind def
|
||||
} ifelse
|
||||
/PATsc { % colorarray
|
||||
aload length % c1 ... cn length
|
||||
dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
|
||||
} ifelse } ifelse
|
||||
} bind def
|
||||
/PATsg { % dict
|
||||
begin
|
||||
lw setlinewidth
|
||||
lc setlinecap
|
||||
lj setlinejoin
|
||||
ml setmiterlimit
|
||||
ds aload pop setdash
|
||||
cc aload pop setrgbcolor
|
||||
cm setmatrix
|
||||
end
|
||||
} bind def
|
||||
|
||||
/PATDict 3 dict def
|
||||
/PATsp {
|
||||
true PATredef
|
||||
PATDict begin
|
||||
/CurrentPattern exch def
|
||||
% If it's an uncolored pattern, save the color
|
||||
CurrentPattern /PaintType get 2 eq {
|
||||
/PColor exch def
|
||||
} if
|
||||
/CColor [ currentrgbcolor ] def
|
||||
end
|
||||
} bind def
|
||||
% PATstroke - stroke with the current pattern
|
||||
/PATstroke {
|
||||
countdictstack
|
||||
save
|
||||
mark
|
||||
{
|
||||
currentpoint strokepath moveto
|
||||
PATpcalc % proc nw nh px py
|
||||
clip newpath PATfill
|
||||
} stopped {
|
||||
(*** PATstroke Warning: Path is too complex, stroking
|
||||
with gray) =
|
||||
cleartomark
|
||||
restore
|
||||
countdictstack exch sub dup 0 gt
|
||||
{ { end } repeat } { pop } ifelse
|
||||
gsave 0.5 setgray oldstroke grestore
|
||||
} { pop restore pop } ifelse
|
||||
newpath
|
||||
} bind def
|
||||
/PATtcalc { % modmtx tilingtype PATtcalc tilematrix
|
||||
% Note: tiling types 2 and 3 are not supported
|
||||
gsave
|
||||
exch concat % tilingtype
|
||||
matrix currentmatrix exch % cmtx tilingtype
|
||||
% Tiling type 1 and 3: constant spacing
|
||||
2 ne {
|
||||
% Distort the pattern so that it occupies
|
||||
% an integral number of device pixels
|
||||
dup 4 get exch dup 5 get exch % tx ty cmtx
|
||||
XStep 0 dtransform
|
||||
round exch round exch % tx ty cmtx dx.x dx.y
|
||||
XStep div exch XStep div exch % tx ty cmtx a b
|
||||
0 YStep dtransform
|
||||
round exch round exch % tx ty cmtx a b dy.x dy.y
|
||||
YStep div exch YStep div exch % tx ty cmtx a b c d
|
||||
7 -3 roll astore % { a b c d tx ty }
|
||||
} if
|
||||
grestore
|
||||
} bind def
|
||||
/PATusp {
|
||||
false PATredef
|
||||
PATDict begin
|
||||
CColor PATsc
|
||||
end
|
||||
} bind def
|
||||
|
||||
% vertical sawtooth lines
|
||||
11 dict begin
|
||||
/PaintType 1 def
|
||||
/PatternType 1 def
|
||||
/TilingType 1 def
|
||||
/BBox [0 0 1 1] def
|
||||
/XStep 1 def
|
||||
/YStep 1 def
|
||||
/PatWidth 1 def
|
||||
/PatHeight 1 def
|
||||
/Multi 2 def
|
||||
/PaintData [
|
||||
{ clippath } bind
|
||||
{ 16 32 true [ 16 0 0 -32 0 32 ]
|
||||
{<400020001000080004000200010000800100020004000800
|
||||
100020004000800040002000100008000400020001000080
|
||||
01000200040008001000200040008000>}
|
||||
imagemask } bind
|
||||
] def
|
||||
/PaintProc {
|
||||
pop
|
||||
exec fill
|
||||
} def
|
||||
currentdict
|
||||
end
|
||||
/P22 exch def
|
||||
1.1111 1.1111 scale %restore scale
|
||||
|
||||
/clp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/DrawEllipse {
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y tr xrad yrad sc 0 0 1 startangle endangle arc
|
||||
closepath
|
||||
savematrix setmatrix
|
||||
} def
|
||||
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
0.06000 0.06000 sc
|
||||
7.500 slw
|
||||
% Polyline
|
||||
n 5626 2251 m 5026 1051 l 7426 451 l 8026 1651 l gs col-1 s gr
|
||||
% Ellipse
|
||||
n 5026 1051 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 330.07 65.07] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Polyline
|
||||
n 5626 2251 m 6226 1051 l 8626 451 l 8026 1651 l 5626 2251 l gs col7 1.00 shd ef gr gs col-1 s gr
|
||||
% Ellipse
|
||||
n 452 2252 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 25.13 145.13] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 1652 1052 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 105.13 65.13] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 2852 2252 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 185.13 145.13] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 4052 1052 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 265.13 65.13] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Polyline
|
||||
n 1652 1052 m 452 2252 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 2852 2252 m 4052 1052 l gs col-1 s gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
1577 902 m
|
||||
gs 1 -1 sc (i) col-1 show gr
|
||||
/Symbol findfont 270.00 scalefont setfont
|
||||
1577 1352 m
|
||||
gs 1 -1 sc (a) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
2777 2627 m
|
||||
gs 1 -1 sc (j) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
3977 902 m
|
||||
gs 1 -1 sc (k) col-1 show gr
|
||||
% Polyline
|
||||
n 1652 1052 m 2852 2252 l gs col-1 s gr
|
||||
% Arc
|
||||
n 5881.00 1606.00 m 5851.00 1726.00 l 5821.00 1606.00 l 5851.50 1606.50 l 5881.00 1606.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
n 5626.00 1726.00 225.00 180.00 0.00 arc
|
||||
gs col-1 s gr
|
||||
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
302 2627 m
|
||||
gs 1 -1 sc (C) col-1 show gr
|
||||
% Ellipse
|
||||
n 5626 2251 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 370.07 145.07] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 8626 451 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 570.07 25.07] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 8026 1651 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 530.07 105.07] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Arc
|
||||
n 1922.00 1472.00 m 1952.00 1352.00 l 1982.00 1472.00 l 1952.50 1472.50 l 1922.00 1472.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
n 1652.00 1352.00 300.00 180.00 0.00 arcn
|
||||
gs col-1 s gr
|
||||
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
827 1577 m
|
||||
gs 1 -1 sc (R) col-1 show gr
|
||||
/Symbol findfont 270.00 scalefont setfont
|
||||
5626 1951 m
|
||||
gs 1 -1 sc (b) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
4726 1051 m
|
||||
gs 1 -1 sc (C) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
5476 2626 m
|
||||
gs 1 -1 sc (i) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
8101 1951 m
|
||||
gs 1 -1 sc (j) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
8776 301 m
|
||||
gs 1 -1 sc (k) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
2250 3450 m
|
||||
gs 1 -1 sc (Input line: C i R j alpha k beta ) col-1 show gr
|
||||
$F2psEnd
|
||||
restore
|
||||
43
doc/user/zmat1.fig
Normal file
43
doc/user/zmat1.fig
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#FIG 3.1
|
||||
Landscape
|
||||
Center
|
||||
Inches
|
||||
1200 2
|
||||
6 300 675 4200 2700
|
||||
5 1 0 1 -1 7 0 0 -1 0.000 0 1 1 0 1652.000 1352.000 1352 1352 1652 1652 1952 1352
|
||||
1 1 1.00 60.00 120.00
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 452 2252 75 75 452 2252 452 2327
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 1652 1052 75 75 1652 1052 1652 1127
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 2852 2252 75 75 2852 2252 2852 2327
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 4052 1052 75 75 4052 1052 4052 1127
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
1652 1052 452 2252
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
2852 2252 4052 1052
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
1652 1052 2852 2252
|
||||
4 0 -1 0 0 32 18 0.0000000 4 120 165 1577 1352 a\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 180 302 2627 C\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 75 1577 902 i\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 240 75 2777 2627 j\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 135 3977 902 k\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 180 827 1577 R\001
|
||||
-6
|
||||
6 4724 74 8924 2699
|
||||
5 1 0 1 -1 7 0 0 -1 0.000 0 0 1 0 5626.000 1726.000 5401 1726 5626 1501 5851 1726
|
||||
1 1 1.00 60.00 120.00
|
||||
1 3 0 1 -1 0 2 0 62 0.0000000 1 0.000 5026 1051 75 75 5026 1051 5101 1126
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 5626 2251 75 75 5626 2251 5701 2326
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 8626 451 75 75 8626 451 8701 526
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 8026 1651 75 75 8026 1651 8101 1726
|
||||
2 1 0 1 -1 7 1 0 20 0.000 0 0 7 0 0 5
|
||||
5626 2251 6226 1051 8626 451 8026 1651 5626 2251
|
||||
2 1 0 1 -1 0 10 0 -1 0.000 0 0 -1 0 0 4
|
||||
5626 2251 5026 1051 7426 451 8026 1651
|
||||
4 0 -1 0 0 32 18 0.0000000 4 240 150 5626 1951 b\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 180 4726 1051 C\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 75 5476 2626 i\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 240 75 8101 1951 j\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 135 8776 301 k\001
|
||||
-6
|
||||
4 0 -1 0 0 0 18 0.0000000 4 240 4290 2250 3450 Input line: C i R j alpha k beta \001
|
||||
533
doc/user/zmat2.eps
Normal file
533
doc/user/zmat2.eps
Normal file
|
|
@ -0,0 +1,533 @@
|
|||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: zmat2.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 1
|
||||
%%CreationDate: Mon Jan 27 12:33:12 1997
|
||||
%%For: d3g681@fermi (Robert J Harrison)
|
||||
%%Orientation: Landscape
|
||||
%%BoundingBox: 0 0 266 485
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize Letter
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {} def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-45.0 -118.0 translate
|
||||
90 rotate
|
||||
1 -1 scale
|
||||
.9 .9 scale % to make patterns same scale as in xfig
|
||||
|
||||
% This junk string is used by the show operators
|
||||
/PATsstr 1 string def
|
||||
/PATawidthshow { % cx cy cchar rx ry string
|
||||
% Loop over each character in the string
|
||||
{ % cx cy cchar rx ry char
|
||||
% Show the character
|
||||
dup % cx cy cchar rx ry char char
|
||||
PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char)
|
||||
false charpath % cx cy cchar rx ry char
|
||||
/clip load PATdraw
|
||||
% Move past the character (charpath modified the
|
||||
% current point)
|
||||
currentpoint % cx cy cchar rx ry char x y
|
||||
newpath
|
||||
moveto % cx cy cchar rx ry char
|
||||
% Reposition by cx,cy if the character in the string is cchar
|
||||
3 index eq { % cx cy cchar rx ry
|
||||
4 index 4 index rmoveto
|
||||
} if
|
||||
% Reposition all characters by rx ry
|
||||
2 copy rmoveto % cx cy cchar rx ry
|
||||
} forall
|
||||
pop pop pop pop pop % -
|
||||
currentpoint
|
||||
newpath
|
||||
moveto
|
||||
} bind def
|
||||
/PATcg {
|
||||
7 dict dup begin
|
||||
/lw currentlinewidth def
|
||||
/lc currentlinecap def
|
||||
/lj currentlinejoin def
|
||||
/ml currentmiterlimit def
|
||||
/ds [ currentdash ] def
|
||||
/cc [ currentrgbcolor ] def
|
||||
/cm matrix currentmatrix def
|
||||
end
|
||||
} bind def
|
||||
% PATdraw - calculates the boundaries of the object and
|
||||
% fills it with the current pattern
|
||||
/PATdraw { % proc
|
||||
save exch
|
||||
PATpcalc % proc nw nh px py
|
||||
5 -1 roll exec % nw nh px py
|
||||
newpath
|
||||
PATfill % -
|
||||
restore
|
||||
} bind def
|
||||
% PATfill - performs the tiling for the shape
|
||||
/PATfill { % nw nh px py PATfill -
|
||||
PATDict /CurrentPattern get dup begin
|
||||
setfont
|
||||
% Set the coordinate system to Pattern Space
|
||||
PatternGState PATsg
|
||||
% Set the color for uncolored pattezns
|
||||
PaintType 2 eq { PATDict /PColor get PATsc } if
|
||||
% Create the string for showing
|
||||
3 index string % nw nh px py str
|
||||
% Loop for each of the pattern sources
|
||||
0 1 Multi 1 sub { % nw nh px py str source
|
||||
% Move to the starting location
|
||||
3 index 3 index % nw nh px py str source px py
|
||||
moveto % nw nh px py str source
|
||||
% For multiple sources, set the appropriate color
|
||||
Multi 1 ne { dup PC exch get PATsc } if
|
||||
% Set the appropriate string for the source
|
||||
0 1 7 index 1 sub { 2 index exch 2 index put } for pop
|
||||
% Loop over the number of vertical cells
|
||||
3 index % nw nh px py str nh
|
||||
{ % nw nh px py str
|
||||
currentpoint % nw nh px py str cx cy
|
||||
2 index show % nw nh px py str cx cy
|
||||
YStep add moveto % nw nh px py str
|
||||
} repeat % nw nh px py str
|
||||
} for
|
||||
5 { pop } repeat
|
||||
end
|
||||
} bind def
|
||||
|
||||
% PATkshow - kshow with the current pattezn
|
||||
/PATkshow { % proc string
|
||||
exch bind % string proc
|
||||
1 index 0 get % string proc char
|
||||
% Loop over all but the last character in the string
|
||||
0 1 4 index length 2 sub {
|
||||
% string proc char idx
|
||||
% Find the n+1th character in the string
|
||||
3 index exch 1 add get % string proe char char+1
|
||||
exch 2 copy % strinq proc char+1 char char+1 char
|
||||
% Now show the nth character
|
||||
PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr)
|
||||
false charpath % string proc char+1 char char+1
|
||||
/clip load PATdraw
|
||||
% Move past the character (charpath modified the current point)
|
||||
currentpoint newpath moveto
|
||||
% Execute the user proc (should consume char and char+1)
|
||||
mark 3 1 roll % string proc char+1 mark char char+1
|
||||
4 index exec % string proc char+1 mark...
|
||||
cleartomark % string proc char+1
|
||||
} for
|
||||
% Now display the last character
|
||||
PATsstr dup 0 4 -1 roll put % string proc (char+1)
|
||||
false charpath % string proc
|
||||
/clip load PATdraw
|
||||
neewath
|
||||
pop pop % -
|
||||
} bind def
|
||||
% PATmp - the makepattern equivalent
|
||||
/PATmp { % patdict patmtx PATmp patinstance
|
||||
exch dup length 7 add % We will add 6 new entries plus 1 FID
|
||||
dict copy % Create a new dictionary
|
||||
begin
|
||||
% Matrix to install when painting the pattern
|
||||
TilingType PATtcalc
|
||||
/PatternGState PATcg def
|
||||
PatternGState /cm 3 -1 roll put
|
||||
% Check for multi pattern sources (Level 1 fast color patterns)
|
||||
currentdict /Multi known not { /Multi 1 def } if
|
||||
% Font dictionary definitions
|
||||
/FontType 3 def
|
||||
% Create a dummy encoding vector
|
||||
/Encoding 256 array def
|
||||
3 string 0 1 255 {
|
||||
Encoding exch dup 3 index cvs cvn put } for pop
|
||||
/FontMatrix matrix def
|
||||
/FontBBox BBox def
|
||||
/BuildChar {
|
||||
mark 3 1 roll % mark dict char
|
||||
exch begin
|
||||
Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata]
|
||||
PaintType 2 eq Multi 1 ne or
|
||||
{ XStep 0 FontBBox aload pop setcachedevice }
|
||||
{ XStep 0 setcharwidth } ifelse
|
||||
currentdict % mark [paintdata] dict
|
||||
/PaintProc load % mark [paintdata] dict paintproc
|
||||
end
|
||||
gsave
|
||||
false PATredef exec true PATredef
|
||||
grestore
|
||||
cleartomark % -
|
||||
} bind def
|
||||
currentdict
|
||||
end % newdict
|
||||
/foo exch % /foo newlict
|
||||
definefont % newfont
|
||||
} bind def
|
||||
% PATpcalc - calculates the starting point and width/height
|
||||
% of the tile fill for the shape
|
||||
/PATpcalc { % - PATpcalc nw nh px py
|
||||
PATDict /CurrentPattern get begin
|
||||
gsave
|
||||
% Set up the coordinate system to Pattern Space
|
||||
% and lock down pattern
|
||||
PatternGState /cm get setmatrix
|
||||
BBox aload pop pop pop translate
|
||||
% Determine the bounding box of the shape
|
||||
pathbbox % llx lly urx ury
|
||||
grestore
|
||||
% Determine (nw, nh) the # of cells to paint width and height
|
||||
PatHeight div ceiling % llx lly urx qh
|
||||
4 1 roll % qh llx lly urx
|
||||
PatWidth div ceiling % qh llx lly qw
|
||||
4 1 roll % qw qh llx lly
|
||||
PatHeight div floor % qw qh llx ph
|
||||
4 1 roll % ph qw qh llx
|
||||
PatWidth div floor % ph qw qh pw
|
||||
4 1 roll % pw ph qw qh
|
||||
2 index sub cvi abs % pw ph qs qh-ph
|
||||
exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph
|
||||
% Determine the starting point of the pattern fill
|
||||
%(px, py)
|
||||
4 2 roll % nw nh pw ph
|
||||
PatHeight mul % nw nh pw py
|
||||
exch % nw nh py pw
|
||||
PatWidth mul exch % nw nh px py
|
||||
end
|
||||
} bind def
|
||||
|
||||
% Save the original routines so that we can use them later on
|
||||
/oldfill /fill load def
|
||||
/oldeofill /eofill load def
|
||||
/oldstroke /stroke load def
|
||||
/oldshow /show load def
|
||||
/oldashow /ashow load def
|
||||
/oldwidthshow /widthshow load def
|
||||
/oldawidthshow /awidthshow load def
|
||||
/oldkshow /kshow load def
|
||||
|
||||
% These defs are necessary so that subsequent procs don't bind in
|
||||
% the originals
|
||||
/fill { oldfill } bind def
|
||||
/eofill { oldeofill } bind def
|
||||
/stroke { oldstroke } bind def
|
||||
/show { oldshow } bind def
|
||||
/ashow { oldashow } bind def
|
||||
/widthshow { oldwidthshow } bind def
|
||||
/awidthshow { oldawidthshow } bind def
|
||||
/kshow { oldkshow } bind def
|
||||
/PATredef {
|
||||
userdict begin
|
||||
{
|
||||
/fill { /clip load PATdraw newpath } bind def
|
||||
/eofill { /eoclip load PATdraw newpath } bind def
|
||||
/stroke { PATstroke } bind def
|
||||
/show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
|
||||
/ashow { 0 0 null 6 3 roll PATawidthshow }
|
||||
bind def
|
||||
/widthshow { 0 0 3 -1 roll PATawidthshow }
|
||||
bind def
|
||||
/awidthshow { PATawidthshow } bind def
|
||||
/kshow { PATkshow } bind def
|
||||
} {
|
||||
/fill { oldfill } bind def
|
||||
/eofill { oldeofill } bind def
|
||||
/stroke { oldstroke } bind def
|
||||
/show { oldshow } bind def
|
||||
/ashow { oldashow } bind def
|
||||
/widthshow { oldwidthshow } bind def
|
||||
/awidthshow { oldawidthshow } bind def
|
||||
/kshow { oldkshow } bind def
|
||||
} ifelse
|
||||
end
|
||||
} bind def
|
||||
false PATredef
|
||||
% Conditionally define setcmykcolor if not available
|
||||
/setcmykcolor where { pop } {
|
||||
/setcmykcolor {
|
||||
1 sub 4 1 roll
|
||||
3 {
|
||||
3 index add neg dup 0 lt { pop 0 } if 3 1 roll
|
||||
} repeat
|
||||
setrgbcolor - pop
|
||||
} bind def
|
||||
} ifelse
|
||||
/PATsc { % colorarray
|
||||
aload length % c1 ... cn length
|
||||
dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
|
||||
} ifelse } ifelse
|
||||
} bind def
|
||||
/PATsg { % dict
|
||||
begin
|
||||
lw setlinewidth
|
||||
lc setlinecap
|
||||
lj setlinejoin
|
||||
ml setmiterlimit
|
||||
ds aload pop setdash
|
||||
cc aload pop setrgbcolor
|
||||
cm setmatrix
|
||||
end
|
||||
} bind def
|
||||
|
||||
/PATDict 3 dict def
|
||||
/PATsp {
|
||||
true PATredef
|
||||
PATDict begin
|
||||
/CurrentPattern exch def
|
||||
% If it's an uncolored pattern, save the color
|
||||
CurrentPattern /PaintType get 2 eq {
|
||||
/PColor exch def
|
||||
} if
|
||||
/CColor [ currentrgbcolor ] def
|
||||
end
|
||||
} bind def
|
||||
% PATstroke - stroke with the current pattern
|
||||
/PATstroke {
|
||||
countdictstack
|
||||
save
|
||||
mark
|
||||
{
|
||||
currentpoint strokepath moveto
|
||||
PATpcalc % proc nw nh px py
|
||||
clip newpath PATfill
|
||||
} stopped {
|
||||
(*** PATstroke Warning: Path is too complex, stroking
|
||||
with gray) =
|
||||
cleartomark
|
||||
restore
|
||||
countdictstack exch sub dup 0 gt
|
||||
{ { end } repeat } { pop } ifelse
|
||||
gsave 0.5 setgray oldstroke grestore
|
||||
} { pop restore pop } ifelse
|
||||
newpath
|
||||
} bind def
|
||||
/PATtcalc { % modmtx tilingtype PATtcalc tilematrix
|
||||
% Note: tiling types 2 and 3 are not supported
|
||||
gsave
|
||||
exch concat % tilingtype
|
||||
matrix currentmatrix exch % cmtx tilingtype
|
||||
% Tiling type 1 and 3: constant spacing
|
||||
2 ne {
|
||||
% Distort the pattern so that it occupies
|
||||
% an integral number of device pixels
|
||||
dup 4 get exch dup 5 get exch % tx ty cmtx
|
||||
XStep 0 dtransform
|
||||
round exch round exch % tx ty cmtx dx.x dx.y
|
||||
XStep div exch XStep div exch % tx ty cmtx a b
|
||||
0 YStep dtransform
|
||||
round exch round exch % tx ty cmtx a b dy.x dy.y
|
||||
YStep div exch YStep div exch % tx ty cmtx a b c d
|
||||
7 -3 roll astore % { a b c d tx ty }
|
||||
} if
|
||||
grestore
|
||||
} bind def
|
||||
/PATusp {
|
||||
false PATredef
|
||||
PATDict begin
|
||||
CColor PATsc
|
||||
end
|
||||
} bind def
|
||||
|
||||
% vertical sawtooth lines
|
||||
11 dict begin
|
||||
/PaintType 1 def
|
||||
/PatternType 1 def
|
||||
/TilingType 1 def
|
||||
/BBox [0 0 1 1] def
|
||||
/XStep 1 def
|
||||
/YStep 1 def
|
||||
/PatWidth 1 def
|
||||
/PatHeight 1 def
|
||||
/Multi 2 def
|
||||
/PaintData [
|
||||
{ clippath } bind
|
||||
{ 16 32 true [ 16 0 0 -32 0 32 ]
|
||||
{<400020001000080004000200010000800100020004000800
|
||||
100020004000800040002000100008000400020001000080
|
||||
01000200040008001000200040008000>}
|
||||
imagemask } bind
|
||||
] def
|
||||
/PaintProc {
|
||||
pop
|
||||
exec fill
|
||||
} def
|
||||
currentdict
|
||||
end
|
||||
/P22 exch def
|
||||
1.1111 1.1111 scale %restore scale
|
||||
|
||||
/clp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/DrawEllipse {
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y tr xrad yrad sc 0 0 1 startangle endangle arc
|
||||
closepath
|
||||
savematrix setmatrix
|
||||
} def
|
||||
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
0.06000 0.06000 sc
|
||||
7.500 slw
|
||||
% Ellipse
|
||||
n 8946 2749 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 591.40 178.27] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 8250 2160 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 545.00 139.00] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 7035 2745 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 464.00 178.00] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 6435 1560 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 424.00 99.00] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Polyline
|
||||
n 3603 2433 m 2115 3300 l gs col-1 s gr
|
||||
% Ellipse
|
||||
n 3603 2433 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 235.20 157.20] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 3600 975 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 235.00 60.00] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 2111 3322 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 135.73 216.47] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Polyline
|
||||
n 4803 3633 m 4803 3633 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 3603 2433 m 4803 3633 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 3600 2370 m 3600 945 l gs col-1 s gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
3750 2325 m
|
||||
gs 1 -1 sc (i) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
3375 900 m
|
||||
gs 1 -1 sc (k) col-1 show gr
|
||||
/Symbol findfont 270.00 scalefont setfont
|
||||
3375 2400 m
|
||||
gs 1 -1 sc (b) col-1 show gr
|
||||
% Ellipse
|
||||
n 4803 3633 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 315.20 237.20] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
1983 3708 m
|
||||
gs 1 -1 sc (C) col-1 show gr
|
||||
% Arc
|
||||
n 7391.98 2424.01 m 7470.00 2520.00 l 7355.99 2472.02 l 7374.49 2448.52 l 7391.98 2424.01 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
n 7019.66 3120.68 750.75 -101.50 -53.14 arc
|
||||
gs col-1 s gr
|
||||
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
4728 4008 m
|
||||
gs 1 -1 sc (j) col-1 show gr
|
||||
/Symbol findfont 270.00 scalefont setfont
|
||||
3528 2733 m
|
||||
gs 1 -1 sc (a) col-1 show gr
|
||||
% Arc
|
||||
n 3866.17 2878.78 m 3975.00 2820.00 l 3906.63 2923.08 l 3886.90 2901.43 l 3866.17 2878.78 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
n 3480.82 1781.90 m 3600.00 1815.00 l 3479.26 1841.88 l 3480.54 1812.39 l 3480.82 1781.90 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
n 3585.00 2393.06 578.25 -88.51 47.59 arcn
|
||||
gs col-1 s gr
|
||||
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
2643 2823 m
|
||||
gs 1 -1 sc (R) col-1 show gr
|
||||
% Polyline
|
||||
n 7035 2760 m 8235 2160 l 10035 2160 l 8910 2760 l 7035 2760 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 7035 2760 m 6435 1560 l gs col-1 s gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
8880 3075 m
|
||||
gs 1 -1 sc (j) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
8250 1980 m
|
||||
gs 1 -1 sc (k) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
6270 1470 m
|
||||
gs 1 -1 sc (C) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
7005 3075 m
|
||||
gs 1 -1 sc (i) col-1 show gr
|
||||
/Symbol findfont 270.00 scalefont setfont
|
||||
7065 2625 m
|
||||
gs 1 -1 sc (b) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
3195 5130 m
|
||||
gs 1 -1 sc (Input line: C i R j alpha k beta +1) col-1 show gr
|
||||
$F2psEnd
|
||||
restore
|
||||
47
doc/user/zmat2.fig
Normal file
47
doc/user/zmat2.fig
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#FIG 3.1
|
||||
Landscape
|
||||
Center
|
||||
Inches
|
||||
1200 2
|
||||
6 1983 720 4878 4068
|
||||
5 1 0 1 -1 7 0 0 -1 0.000 0 1 1 1 3585.000 2393.060 3600 1815 3195 2820 3975 2820
|
||||
1 1 1.00 60.00 120.00
|
||||
1 1 1.00 60.00 120.00
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 4803 3633 75 75 4803 3633 4803 3708
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 3603 2433 75 75 3603 2433 3603 2508
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 3600 975 75 75 3600 975 3600 1050
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 2111 3322 75 75 2111 3322 2111 3397
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 1
|
||||
4803 3633
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
3603 2433 4803 3633
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
3600 2370 3600 945
|
||||
2 1 0 1 -1 7 1 0 -1 0.000 0 0 -1 0 0 2
|
||||
3603 2433 2115 3300
|
||||
4 0 -1 0 0 32 18 0.0000000 4 120 165 3528 2733 a\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 240 75 4728 4008 j\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 75 3750 2325 i\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 135 3375 900 k\001
|
||||
4 0 -1 0 0 32 18 0.0000000 4 240 150 3375 2400 b\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 180 2643 2823 R\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 180 1983 3708 C\001
|
||||
-6
|
||||
6 6270 1290 10035 3135
|
||||
5 1 0 1 -1 7 0 0 -1 0.000 0 0 1 0 7019.659 3120.682 6870 2385 7230 2400 7470 2520
|
||||
1 1 1.00 60.00 120.00
|
||||
1 3 0 1 -1 0 2 0 62 0.0000000 1 0.000 8250 2160 75 75 8250 2160 8325 2235
|
||||
1 3 0 1 -1 0 2 0 62 0.0000000 1 0.000 8946 2749 75 75 8946 2749 9021 2824
|
||||
1 3 0 1 -1 0 2 0 62 0.0000000 1 0.000 6435 1560 75 75 6435 1560 6510 1635
|
||||
1 3 0 1 -1 0 2 0 62 0.0000000 1 0.000 7035 2745 75 75 7035 2745 7110 2820
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
7035 2760 8235 2160 10035 2160 8910 2760 7035 2760
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
7035 2760 6435 1560
|
||||
4 0 -1 0 0 0 18 0.0000000 4 240 75 8880 3075 j\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 135 8250 1980 k\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 180 6270 1470 C\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 75 7005 3075 i\001
|
||||
4 0 -1 0 0 32 18 0.0000000 4 240 150 7065 2625 b\001
|
||||
-6
|
||||
4 0 -1 0 0 0 18 0.0000000 4 240 4575 3195 5130 Input line: C i R j alpha k beta +1\001
|
||||
533
doc/user/zmat3.eps
Normal file
533
doc/user/zmat3.eps
Normal file
|
|
@ -0,0 +1,533 @@
|
|||
%!PS-Adobe-2.0 EPSF-2.0
|
||||
%%Title: zmat3.fig
|
||||
%%Creator: fig2dev Version 3.1 Patchlevel 1
|
||||
%%CreationDate: Mon Jan 27 12:32:13 1997
|
||||
%%For: d3g681@fermi (Robert J Harrison)
|
||||
%%Orientation: Landscape
|
||||
%%BoundingBox: 0 0 266 482
|
||||
%%Pages: 0
|
||||
%%BeginSetup
|
||||
%%IncludeFeature: *PageSize Letter
|
||||
%%EndSetup
|
||||
%%EndComments
|
||||
/$F2psDict 200 dict def
|
||||
$F2psDict begin
|
||||
$F2psDict /mtrx matrix put
|
||||
/col-1 {} def
|
||||
/col0 {0.000 0.000 0.000 srgb} bind def
|
||||
/col1 {0.000 0.000 1.000 srgb} bind def
|
||||
/col2 {0.000 1.000 0.000 srgb} bind def
|
||||
/col3 {0.000 1.000 1.000 srgb} bind def
|
||||
/col4 {1.000 0.000 0.000 srgb} bind def
|
||||
/col5 {1.000 0.000 1.000 srgb} bind def
|
||||
/col6 {1.000 1.000 0.000 srgb} bind def
|
||||
/col7 {1.000 1.000 1.000 srgb} bind def
|
||||
/col8 {0.000 0.000 0.560 srgb} bind def
|
||||
/col9 {0.000 0.000 0.690 srgb} bind def
|
||||
/col10 {0.000 0.000 0.820 srgb} bind def
|
||||
/col11 {0.530 0.810 1.000 srgb} bind def
|
||||
/col12 {0.000 0.560 0.000 srgb} bind def
|
||||
/col13 {0.000 0.690 0.000 srgb} bind def
|
||||
/col14 {0.000 0.820 0.000 srgb} bind def
|
||||
/col15 {0.000 0.560 0.560 srgb} bind def
|
||||
/col16 {0.000 0.690 0.690 srgb} bind def
|
||||
/col17 {0.000 0.820 0.820 srgb} bind def
|
||||
/col18 {0.560 0.000 0.000 srgb} bind def
|
||||
/col19 {0.690 0.000 0.000 srgb} bind def
|
||||
/col20 {0.820 0.000 0.000 srgb} bind def
|
||||
/col21 {0.560 0.000 0.560 srgb} bind def
|
||||
/col22 {0.690 0.000 0.690 srgb} bind def
|
||||
/col23 {0.820 0.000 0.820 srgb} bind def
|
||||
/col24 {0.500 0.190 0.000 srgb} bind def
|
||||
/col25 {0.630 0.250 0.000 srgb} bind def
|
||||
/col26 {0.750 0.380 0.000 srgb} bind def
|
||||
/col27 {1.000 0.500 0.500 srgb} bind def
|
||||
/col28 {1.000 0.630 0.630 srgb} bind def
|
||||
/col29 {1.000 0.750 0.750 srgb} bind def
|
||||
/col30 {1.000 0.880 0.880 srgb} bind def
|
||||
/col31 {1.000 0.840 0.000 srgb} bind def
|
||||
|
||||
end
|
||||
save
|
||||
-45.0 -118.0 translate
|
||||
90 rotate
|
||||
1 -1 scale
|
||||
.9 .9 scale % to make patterns same scale as in xfig
|
||||
|
||||
% This junk string is used by the show operators
|
||||
/PATsstr 1 string def
|
||||
/PATawidthshow { % cx cy cchar rx ry string
|
||||
% Loop over each character in the string
|
||||
{ % cx cy cchar rx ry char
|
||||
% Show the character
|
||||
dup % cx cy cchar rx ry char char
|
||||
PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char)
|
||||
false charpath % cx cy cchar rx ry char
|
||||
/clip load PATdraw
|
||||
% Move past the character (charpath modified the
|
||||
% current point)
|
||||
currentpoint % cx cy cchar rx ry char x y
|
||||
newpath
|
||||
moveto % cx cy cchar rx ry char
|
||||
% Reposition by cx,cy if the character in the string is cchar
|
||||
3 index eq { % cx cy cchar rx ry
|
||||
4 index 4 index rmoveto
|
||||
} if
|
||||
% Reposition all characters by rx ry
|
||||
2 copy rmoveto % cx cy cchar rx ry
|
||||
} forall
|
||||
pop pop pop pop pop % -
|
||||
currentpoint
|
||||
newpath
|
||||
moveto
|
||||
} bind def
|
||||
/PATcg {
|
||||
7 dict dup begin
|
||||
/lw currentlinewidth def
|
||||
/lc currentlinecap def
|
||||
/lj currentlinejoin def
|
||||
/ml currentmiterlimit def
|
||||
/ds [ currentdash ] def
|
||||
/cc [ currentrgbcolor ] def
|
||||
/cm matrix currentmatrix def
|
||||
end
|
||||
} bind def
|
||||
% PATdraw - calculates the boundaries of the object and
|
||||
% fills it with the current pattern
|
||||
/PATdraw { % proc
|
||||
save exch
|
||||
PATpcalc % proc nw nh px py
|
||||
5 -1 roll exec % nw nh px py
|
||||
newpath
|
||||
PATfill % -
|
||||
restore
|
||||
} bind def
|
||||
% PATfill - performs the tiling for the shape
|
||||
/PATfill { % nw nh px py PATfill -
|
||||
PATDict /CurrentPattern get dup begin
|
||||
setfont
|
||||
% Set the coordinate system to Pattern Space
|
||||
PatternGState PATsg
|
||||
% Set the color for uncolored pattezns
|
||||
PaintType 2 eq { PATDict /PColor get PATsc } if
|
||||
% Create the string for showing
|
||||
3 index string % nw nh px py str
|
||||
% Loop for each of the pattern sources
|
||||
0 1 Multi 1 sub { % nw nh px py str source
|
||||
% Move to the starting location
|
||||
3 index 3 index % nw nh px py str source px py
|
||||
moveto % nw nh px py str source
|
||||
% For multiple sources, set the appropriate color
|
||||
Multi 1 ne { dup PC exch get PATsc } if
|
||||
% Set the appropriate string for the source
|
||||
0 1 7 index 1 sub { 2 index exch 2 index put } for pop
|
||||
% Loop over the number of vertical cells
|
||||
3 index % nw nh px py str nh
|
||||
{ % nw nh px py str
|
||||
currentpoint % nw nh px py str cx cy
|
||||
2 index show % nw nh px py str cx cy
|
||||
YStep add moveto % nw nh px py str
|
||||
} repeat % nw nh px py str
|
||||
} for
|
||||
5 { pop } repeat
|
||||
end
|
||||
} bind def
|
||||
|
||||
% PATkshow - kshow with the current pattezn
|
||||
/PATkshow { % proc string
|
||||
exch bind % string proc
|
||||
1 index 0 get % string proc char
|
||||
% Loop over all but the last character in the string
|
||||
0 1 4 index length 2 sub {
|
||||
% string proc char idx
|
||||
% Find the n+1th character in the string
|
||||
3 index exch 1 add get % string proe char char+1
|
||||
exch 2 copy % strinq proc char+1 char char+1 char
|
||||
% Now show the nth character
|
||||
PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr)
|
||||
false charpath % string proc char+1 char char+1
|
||||
/clip load PATdraw
|
||||
% Move past the character (charpath modified the current point)
|
||||
currentpoint newpath moveto
|
||||
% Execute the user proc (should consume char and char+1)
|
||||
mark 3 1 roll % string proc char+1 mark char char+1
|
||||
4 index exec % string proc char+1 mark...
|
||||
cleartomark % string proc char+1
|
||||
} for
|
||||
% Now display the last character
|
||||
PATsstr dup 0 4 -1 roll put % string proc (char+1)
|
||||
false charpath % string proc
|
||||
/clip load PATdraw
|
||||
neewath
|
||||
pop pop % -
|
||||
} bind def
|
||||
% PATmp - the makepattern equivalent
|
||||
/PATmp { % patdict patmtx PATmp patinstance
|
||||
exch dup length 7 add % We will add 6 new entries plus 1 FID
|
||||
dict copy % Create a new dictionary
|
||||
begin
|
||||
% Matrix to install when painting the pattern
|
||||
TilingType PATtcalc
|
||||
/PatternGState PATcg def
|
||||
PatternGState /cm 3 -1 roll put
|
||||
% Check for multi pattern sources (Level 1 fast color patterns)
|
||||
currentdict /Multi known not { /Multi 1 def } if
|
||||
% Font dictionary definitions
|
||||
/FontType 3 def
|
||||
% Create a dummy encoding vector
|
||||
/Encoding 256 array def
|
||||
3 string 0 1 255 {
|
||||
Encoding exch dup 3 index cvs cvn put } for pop
|
||||
/FontMatrix matrix def
|
||||
/FontBBox BBox def
|
||||
/BuildChar {
|
||||
mark 3 1 roll % mark dict char
|
||||
exch begin
|
||||
Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata]
|
||||
PaintType 2 eq Multi 1 ne or
|
||||
{ XStep 0 FontBBox aload pop setcachedevice }
|
||||
{ XStep 0 setcharwidth } ifelse
|
||||
currentdict % mark [paintdata] dict
|
||||
/PaintProc load % mark [paintdata] dict paintproc
|
||||
end
|
||||
gsave
|
||||
false PATredef exec true PATredef
|
||||
grestore
|
||||
cleartomark % -
|
||||
} bind def
|
||||
currentdict
|
||||
end % newdict
|
||||
/foo exch % /foo newlict
|
||||
definefont % newfont
|
||||
} bind def
|
||||
% PATpcalc - calculates the starting point and width/height
|
||||
% of the tile fill for the shape
|
||||
/PATpcalc { % - PATpcalc nw nh px py
|
||||
PATDict /CurrentPattern get begin
|
||||
gsave
|
||||
% Set up the coordinate system to Pattern Space
|
||||
% and lock down pattern
|
||||
PatternGState /cm get setmatrix
|
||||
BBox aload pop pop pop translate
|
||||
% Determine the bounding box of the shape
|
||||
pathbbox % llx lly urx ury
|
||||
grestore
|
||||
% Determine (nw, nh) the # of cells to paint width and height
|
||||
PatHeight div ceiling % llx lly urx qh
|
||||
4 1 roll % qh llx lly urx
|
||||
PatWidth div ceiling % qh llx lly qw
|
||||
4 1 roll % qw qh llx lly
|
||||
PatHeight div floor % qw qh llx ph
|
||||
4 1 roll % ph qw qh llx
|
||||
PatWidth div floor % ph qw qh pw
|
||||
4 1 roll % pw ph qw qh
|
||||
2 index sub cvi abs % pw ph qs qh-ph
|
||||
exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph
|
||||
% Determine the starting point of the pattern fill
|
||||
%(px, py)
|
||||
4 2 roll % nw nh pw ph
|
||||
PatHeight mul % nw nh pw py
|
||||
exch % nw nh py pw
|
||||
PatWidth mul exch % nw nh px py
|
||||
end
|
||||
} bind def
|
||||
|
||||
% Save the original routines so that we can use them later on
|
||||
/oldfill /fill load def
|
||||
/oldeofill /eofill load def
|
||||
/oldstroke /stroke load def
|
||||
/oldshow /show load def
|
||||
/oldashow /ashow load def
|
||||
/oldwidthshow /widthshow load def
|
||||
/oldawidthshow /awidthshow load def
|
||||
/oldkshow /kshow load def
|
||||
|
||||
% These defs are necessary so that subsequent procs don't bind in
|
||||
% the originals
|
||||
/fill { oldfill } bind def
|
||||
/eofill { oldeofill } bind def
|
||||
/stroke { oldstroke } bind def
|
||||
/show { oldshow } bind def
|
||||
/ashow { oldashow } bind def
|
||||
/widthshow { oldwidthshow } bind def
|
||||
/awidthshow { oldawidthshow } bind def
|
||||
/kshow { oldkshow } bind def
|
||||
/PATredef {
|
||||
userdict begin
|
||||
{
|
||||
/fill { /clip load PATdraw newpath } bind def
|
||||
/eofill { /eoclip load PATdraw newpath } bind def
|
||||
/stroke { PATstroke } bind def
|
||||
/show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
|
||||
/ashow { 0 0 null 6 3 roll PATawidthshow }
|
||||
bind def
|
||||
/widthshow { 0 0 3 -1 roll PATawidthshow }
|
||||
bind def
|
||||
/awidthshow { PATawidthshow } bind def
|
||||
/kshow { PATkshow } bind def
|
||||
} {
|
||||
/fill { oldfill } bind def
|
||||
/eofill { oldeofill } bind def
|
||||
/stroke { oldstroke } bind def
|
||||
/show { oldshow } bind def
|
||||
/ashow { oldashow } bind def
|
||||
/widthshow { oldwidthshow } bind def
|
||||
/awidthshow { oldawidthshow } bind def
|
||||
/kshow { oldkshow } bind def
|
||||
} ifelse
|
||||
end
|
||||
} bind def
|
||||
false PATredef
|
||||
% Conditionally define setcmykcolor if not available
|
||||
/setcmykcolor where { pop } {
|
||||
/setcmykcolor {
|
||||
1 sub 4 1 roll
|
||||
3 {
|
||||
3 index add neg dup 0 lt { pop 0 } if 3 1 roll
|
||||
} repeat
|
||||
setrgbcolor - pop
|
||||
} bind def
|
||||
} ifelse
|
||||
/PATsc { % colorarray
|
||||
aload length % c1 ... cn length
|
||||
dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
|
||||
} ifelse } ifelse
|
||||
} bind def
|
||||
/PATsg { % dict
|
||||
begin
|
||||
lw setlinewidth
|
||||
lc setlinecap
|
||||
lj setlinejoin
|
||||
ml setmiterlimit
|
||||
ds aload pop setdash
|
||||
cc aload pop setrgbcolor
|
||||
cm setmatrix
|
||||
end
|
||||
} bind def
|
||||
|
||||
/PATDict 3 dict def
|
||||
/PATsp {
|
||||
true PATredef
|
||||
PATDict begin
|
||||
/CurrentPattern exch def
|
||||
% If it's an uncolored pattern, save the color
|
||||
CurrentPattern /PaintType get 2 eq {
|
||||
/PColor exch def
|
||||
} if
|
||||
/CColor [ currentrgbcolor ] def
|
||||
end
|
||||
} bind def
|
||||
% PATstroke - stroke with the current pattern
|
||||
/PATstroke {
|
||||
countdictstack
|
||||
save
|
||||
mark
|
||||
{
|
||||
currentpoint strokepath moveto
|
||||
PATpcalc % proc nw nh px py
|
||||
clip newpath PATfill
|
||||
} stopped {
|
||||
(*** PATstroke Warning: Path is too complex, stroking
|
||||
with gray) =
|
||||
cleartomark
|
||||
restore
|
||||
countdictstack exch sub dup 0 gt
|
||||
{ { end } repeat } { pop } ifelse
|
||||
gsave 0.5 setgray oldstroke grestore
|
||||
} { pop restore pop } ifelse
|
||||
newpath
|
||||
} bind def
|
||||
/PATtcalc { % modmtx tilingtype PATtcalc tilematrix
|
||||
% Note: tiling types 2 and 3 are not supported
|
||||
gsave
|
||||
exch concat % tilingtype
|
||||
matrix currentmatrix exch % cmtx tilingtype
|
||||
% Tiling type 1 and 3: constant spacing
|
||||
2 ne {
|
||||
% Distort the pattern so that it occupies
|
||||
% an integral number of device pixels
|
||||
dup 4 get exch dup 5 get exch % tx ty cmtx
|
||||
XStep 0 dtransform
|
||||
round exch round exch % tx ty cmtx dx.x dx.y
|
||||
XStep div exch XStep div exch % tx ty cmtx a b
|
||||
0 YStep dtransform
|
||||
round exch round exch % tx ty cmtx a b dy.x dy.y
|
||||
YStep div exch YStep div exch % tx ty cmtx a b c d
|
||||
7 -3 roll astore % { a b c d tx ty }
|
||||
} if
|
||||
grestore
|
||||
} bind def
|
||||
/PATusp {
|
||||
false PATredef
|
||||
PATDict begin
|
||||
CColor PATsc
|
||||
end
|
||||
} bind def
|
||||
|
||||
% vertical sawtooth lines
|
||||
11 dict begin
|
||||
/PaintType 1 def
|
||||
/PatternType 1 def
|
||||
/TilingType 1 def
|
||||
/BBox [0 0 1 1] def
|
||||
/XStep 1 def
|
||||
/YStep 1 def
|
||||
/PatWidth 1 def
|
||||
/PatHeight 1 def
|
||||
/Multi 2 def
|
||||
/PaintData [
|
||||
{ clippath } bind
|
||||
{ 16 32 true [ 16 0 0 -32 0 32 ]
|
||||
{<400020001000080004000200010000800100020004000800
|
||||
100020004000800040002000100008000400020001000080
|
||||
01000200040008001000200040008000>}
|
||||
imagemask } bind
|
||||
] def
|
||||
/PaintProc {
|
||||
pop
|
||||
exec fill
|
||||
} def
|
||||
currentdict
|
||||
end
|
||||
/P22 exch def
|
||||
1.1111 1.1111 scale %restore scale
|
||||
|
||||
/clp {closepath} bind def
|
||||
/ef {eofill} bind def
|
||||
/gr {grestore} bind def
|
||||
/gs {gsave} bind def
|
||||
/l {lineto} bind def
|
||||
/m {moveto} bind def
|
||||
/n {newpath} bind def
|
||||
/s {stroke} bind def
|
||||
/slc {setlinecap} bind def
|
||||
/slj {setlinejoin} bind def
|
||||
/slw {setlinewidth} bind def
|
||||
/srgb {setrgbcolor} bind def
|
||||
/rot {rotate} bind def
|
||||
/sc {scale} bind def
|
||||
/tr {translate} bind def
|
||||
/tnt {dup dup currentrgbcolor
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add
|
||||
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
|
||||
bind def
|
||||
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
|
||||
4 -2 roll mul srgb} bind def
|
||||
/DrawEllipse {
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y tr xrad yrad sc 0 0 1 startangle endangle arc
|
||||
closepath
|
||||
savematrix setmatrix
|
||||
} def
|
||||
|
||||
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
|
||||
/$F2psEnd {$F2psEnteredState restore end} def
|
||||
%%EndProlog
|
||||
|
||||
$F2psBegin
|
||||
10 setmiterlimit
|
||||
0.06000 0.06000 sc
|
||||
7.500 slw
|
||||
% Ellipse
|
||||
n 8886 2104 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 587.40 135.27] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 8190 1515 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 541.00 96.00] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 6135 3345 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 404.00 218.00] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 6975 2100 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 460.00 135.00] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Polyline
|
||||
n 3603 2433 m 2115 3300 l gs col-1 s gr
|
||||
% Ellipse
|
||||
n 3603 2433 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 235.20 157.20] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 3600 975 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 235.00 60.00] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Ellipse
|
||||
n 2111 3322 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 135.73 216.47] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
% Polyline
|
||||
n 4803 3633 m 4803 3633 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 3603 2433 m 4803 3633 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 3600 2370 m 3600 945 l gs col-1 s gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
3750 2325 m
|
||||
gs 1 -1 sc (i) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
3375 900 m
|
||||
gs 1 -1 sc (k) col-1 show gr
|
||||
/Symbol findfont 270.00 scalefont setfont
|
||||
3375 2400 m
|
||||
gs 1 -1 sc (b) col-1 show gr
|
||||
% Ellipse
|
||||
n 4803 3633 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
|
||||
15.00 15.00 sc P22 [8 0 0 -16 315.20 237.20] PATmp PATsp ef gr PATusp gs col-1 s gr
|
||||
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
1983 3708 m
|
||||
gs 1 -1 sc (C) col-1 show gr
|
||||
% Arc
|
||||
n 7428.80 1995.89 m 7455.00 1875.00 l 7488.77 1993.99 l 7459.29 1995.44 l 7428.80 1995.89 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
n 6863.09 1893.70 592.20 101.01 -1.81 arcn
|
||||
gs col-1 s gr
|
||||
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
4728 4008 m
|
||||
gs 1 -1 sc (j) col-1 show gr
|
||||
/Symbol findfont 270.00 scalefont setfont
|
||||
3528 2733 m
|
||||
gs 1 -1 sc (a) col-1 show gr
|
||||
% Arc
|
||||
n 3866.17 2878.78 m 3975.00 2820.00 l 3906.63 2923.08 l 3886.90 2901.43 l 3866.17 2878.78 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
n 3480.82 1781.90 m 3600.00 1815.00 l 3479.26 1841.88 l 3480.54 1812.39 l 3480.82 1781.90 l clp gs 0.00 setgray ef gr gs col-1 s gr
|
||||
n 3585.00 2393.06 578.25 -88.51 47.59 arcn
|
||||
gs col-1 s gr
|
||||
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
2643 2823 m
|
||||
gs 1 -1 sc (R) col-1 show gr
|
||||
% Polyline
|
||||
n 6975 2115 m 8175 1515 l 9975 1515 l 8850 2115 l 6975 2115 l gs col-1 s gr
|
||||
% Polyline
|
||||
n 6975 2115 m 6135 3330 l gs col-1 s gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
8820 2430 m
|
||||
gs 1 -1 sc (j) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
8190 1335 m
|
||||
gs 1 -1 sc (k) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
6795 1950 m
|
||||
gs 1 -1 sc (i) col-1 show gr
|
||||
/Symbol findfont 270.00 scalefont setfont
|
||||
7035 2400 m
|
||||
gs 1 -1 sc (b) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
5910 3225 m
|
||||
gs 1 -1 sc (C) col-1 show gr
|
||||
/Times-Roman findfont 270.00 scalefont setfont
|
||||
3195 5130 m
|
||||
gs 1 -1 sc (Input line: C i R j alpha k beta -1) col-1 show gr
|
||||
$F2psEnd
|
||||
restore
|
||||
47
doc/user/zmat3.fig
Normal file
47
doc/user/zmat3.fig
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#FIG 3.1
|
||||
Landscape
|
||||
Center
|
||||
Inches
|
||||
1200 2
|
||||
6 1983 720 4878 4068
|
||||
5 1 0 1 -1 7 0 0 -1 0.000 0 1 1 1 3585.000 2393.060 3600 1815 3195 2820 3975 2820
|
||||
1 1 1.00 60.00 120.00
|
||||
1 1 1.00 60.00 120.00
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 4803 3633 75 75 4803 3633 4803 3708
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 3603 2433 75 75 3603 2433 3603 2508
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 3600 975 75 75 3600 975 3600 1050
|
||||
1 3 0 1 -1 0 0 0 62 0.0000000 1 0.000 2111 3322 75 75 2111 3322 2111 3397
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 1
|
||||
4803 3633
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
3603 2433 4803 3633
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
3600 2370 3600 945
|
||||
2 1 0 1 -1 7 1 0 -1 0.000 0 0 -1 0 0 2
|
||||
3603 2433 2115 3300
|
||||
4 0 -1 0 0 32 18 0.0000000 4 120 165 3528 2733 a\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 240 75 4728 4008 j\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 75 3750 2325 i\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 135 3375 900 k\001
|
||||
4 0 -1 0 0 32 18 0.0000000 4 240 150 3375 2400 b\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 180 2643 2823 R\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 180 1983 3708 C\001
|
||||
-6
|
||||
6 5910 1155 9975 3420
|
||||
5 1 0 1 -1 7 0 0 -1 0.000 0 1 1 0 6863.093 1893.697 6750 2475 7215 2370 7455 1875
|
||||
1 1 1.00 60.00 120.00
|
||||
1 3 0 1 -1 0 2 0 62 0.0000000 1 0.000 8190 1515 75 75 8190 1515 8265 1590
|
||||
1 3 0 1 -1 0 2 0 62 0.0000000 1 0.000 8886 2104 75 75 8886 2104 8961 2179
|
||||
1 3 0 1 -1 0 2 0 62 0.0000000 1 0.000 6975 2100 75 75 6975 2100 7050 2175
|
||||
1 3 0 1 -1 0 2 0 62 0.0000000 1 0.000 6135 3345 75 75 6135 3345 6210 3420
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
|
||||
6975 2115 8175 1515 9975 1515 8850 2115 6975 2115
|
||||
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
|
||||
6975 2115 6135 3330
|
||||
4 0 -1 0 0 0 18 0.0000000 4 240 75 8820 2430 j\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 135 8190 1335 k\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 75 6795 1950 i\001
|
||||
4 0 -1 0 0 32 18 0.0000000 4 240 150 7035 2400 b\001
|
||||
4 0 -1 0 0 0 18 0.0000000 4 180 180 5910 3225 C\001
|
||||
-6
|
||||
4 0 -1 0 0 0 18 0.0000000 4 240 4575 3195 5130 Input line: C i R j alpha k beta -1\001
|
||||
Loading…
Add table
Add a link
Reference in a new issue