Allows the user to extract or replace parts of a crystal
object by using crystal names or subscripts.
USAGE:
x[i]
x[i, left=T, right=T] <- value
x[[i]]
REQUIRED ARGUMENTS:
x:
an object of class wp.crystal, wp.inf.crystal, or cp.crystal.
i:
a vector of crystal names, positive integers or logical flags.
For [[, i must be an integer or a crystal name.
OPTIONAL ARGUMENTS:
value:
replacement value for the relevant piece of the crystal object.
left:
for assignment operator only, a logical flag indicating if the left boundary
coefficients are to be set to zero.
right:
for assignment operator only, a logical flag indicating if the right boundary
coefficients are to be set to zero.
VALUE:
x[i] returns an object of class "wp.molecule" or "cp.molecule",
inheriting from class "molecule";
x[[i]] returns an object of class "wp.atom" or "cp.atom".
DETAILS:
Special assignment operator is needed for wp.inf.crystal objects only.
The default assignment operator is used for wp.crystal and cp.crystal
objects.