|
This
van der Waals term is of the Inclusion type (i.e.,
indexed by the Atom Inclusion Type). An Exclusion
version of this term is also available, see
[VanderWaalsX]. An individual term
is:
where
rij is the distance between atoms
i and j, A12 and
B6 are force constants. The two
constants are assigned to this particular pair
based on the Atom Inclusion Types of the two
participating atoms. The van der Waals term is
asymptotic and so there is potentially a very large
number of pair interactions to be considered.
Usually, only the pairs that are within a limited
cutoff distance are considered. This creates a
discontinuity at the cutoff point which can be
minimized by using a large cutoff distance. The
discontinuity can be artifically eliminated by
applying a trimming function. This is a piecewise
continuous function (below) that is multiplied on
the plain van der Waals function
(above):
|
1
|
, if
rij
<=
rstart
|
|
(
rfinish
-
rij
)2(
rfinish
+
2rij
-
3rstart
)
|
, if
rstart
<
rij
<
rfinish
|
|
|
(
rfinish
-
rstart
)3
|
|
0
|
, if
rij
>=
rfinish
|
Trimming
starts at the distance rstart and
at rfinish the value and gradient
are both 0. Normally, rstart is
set beyond the cutoff distance so the trimming
function is not used. In order to apply the
trimming function, set rstart to
a value less than rfinish that in
turn is less than the cutoff distance. Distances
are specified as proportions of the van der Waals
distance:
which
is different for each pair type.
The
VanderWaalsI
module is located in the Energy sub-directory of
the Yup package, hence:
Yup.Energy.VanderWaalsI.
The
van der Waals term is introduced into a simulation
by first creating an (empty) instance of the
VanderWaalsI
object. Participating atom pairs are then added to
this object. Previously added pairs may also be
deleted or modified. All these actions affect only
a list of candidate pairs. The compile process
binds Coordinate and Gradient
AtomVectors
to the VanderWaalsI
module and then goes through the candidate pairs to
form a compiled pair list in which all the atoms
that are involved and the van der Waals parameters
that they are to use are positively identified.
Only then can the van der Waals term be evaluated.
(Prior attempts at evaluation will either yield an
exception or null results.) The evaluate method
would now be called many times as part of a
molecular mechanics calculation. Each call would
yield different results even though the compiled
pair list is fixed because the Coordinates are
different at each call. However, it is possible to
modify the van der Waals parameters
(A12 and B6)
continuously during a calculation. The parameters
are accessed through the subscript operator. More
radical changes can be made by adding new pairs and
modifying or deleting existing pairs. These actions
affect the candidate list and immediately clear the
compiled list. Therefore the
VanderWaalsI
module must be compiled again before evaluation can
resume. The state of the
VanderWaalsI
module can be judged by examining the data
attributes. The compiled pairs can also be examined
in great detail by printing the object.
This
manual is divided into several pages:
|
Name
|
Content
|
|
VanderWaalsI
|
Introduction:
this page.
|
|
Create
|
Creating
a new VanderWaalsI
object. The function
VanderWaalsI().
|
|
Data
|
The
data attributes of a
VanderWaalsI
object; some of which may be assigned
new values.
|
|
Manage
|
Managing
van der Waals pairs: add new pairs,
modifying existing pairs and deleting
existing pairs. The methods:
add(),
modify()
and delete().
|
|
Compile
|
Preparing
a VanderWaalsI
object for evaluation of the energy and
gradients. The methods:
update()
and compile().
|
|
Evaluate
|
Evaluate
the van der Waals energy and gradients.
The method:
evaluate().
|
|
Subscript
|
The
subscript []
operator: used to access and to assign
values to the van der Waals
parameters
|
|
Print
|
Documents
the print, repr, delete and compare
operators.
|
|
Write
|
Writing
the finalized van der Waals record to
the force field file.
|
|