replicate: Replicate Atomic Coordinates

View source: R/replicate.R

replicateR Documentation

Replicate Atomic Coordinates

Description

Replicate atomic coordinates using periodic boundary conditions.

Usage

replicate(x, ...)

## S3 method for class 'coords'
replicate(x, cryst1 = NULL, a.ind = 0, b.ind = 0, c.ind = 0, ...)

## S3 method for class 'atoms'
replicate(x, cryst1 = NULL, a.ind = 0, b.ind = 0, c.ind = 0, ...)

## S3 method for class 'pdb'
replicate(x, a.ind = 0, b.ind = 0, c.ind = 0, cryst1 = NULL, ...)

Arguments

x

an R object containing atomic coordinates to be replicated.

...

further arguments passed to or from other methods.

cryst1

an object of class ‘cryst1’ containing periodical boundary conditions used for replicating.

a.ind

a vector of integers indicating the positions of the replicated cells along the a-axis.

b.ind

a vector of integers indicating the positions of the replicated cells along the b-axis.

c.ind

a vector of integers indicating the positions of the replicated cells along the c-axis.

Details

The replicate function replicate a unit cell along the lattice vectors a, b and c as as many times as indicated by the a.ind, b.ind and c.ind arguments. Discontinuous integer vectors can be used for a.ind, b.ind and c.ind to create layered supercells (See examples).

Value

Return an object of class ‘pdb’ with replicated atomic coordinates.

See Also

coords, atoms, pdb, cryst1

Examples

x <- read.pdb(system.file("examples/PCBM_ODCB.pdb", package="Rpdb"))

# Create a 3x3 supercell
y <- replicate(x, a.ind = 0:2, b.ind = 0:2, c.ind = 0:2)

# Create a 3x3 supercell which might need to be wrapped (if some molecules are outside the cell)
y <- replicate(x, a.ind = -1:1, b.ind = -1:1, c.ind = -1:1)

# Create a layered supercell with a vacuum layer in the bc-plan
y <- replicate(x, a.ind = c(0,2), b.ind = 0:2, c.ind = 0:2)


Rpdb documentation built on Sept. 28, 2023, 5:07 p.m.