cmf_coef_xyz_sv_ex_mopac {conmolfields} | R Documentation |
Computes coefficient at point (x,y,z) using support vectors
for mopac molecular fields
Description
Computes coefficient at point (x,y,z) using support vectors
for mopac molecular fields
Usage
cmf_coef_xyz_sv_ex_mopac(mdb, a, ai, alpha, x, y, z, field, atomlists)
Arguments
mdb |
|
a |
|
ai |
|
ai |
|
x |
|
y |
|
z |
|
field |
|
atomlists |
|
Examples
##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
cmf_coef_xyz_sv_ex_mopac <- function(mdb, a, ai, alpha, x, y, z, field, atomlists) {
coef <- 0.0
nsv <- length(ai)
for (isv in 1:nsv) {
imol <- ai[isv]
mol <- mdb[[imol]]
natoms <- length(mol$atoms)
for (iatom in atomlists[[imol]]) {
atom <- mol$atoms[[iatom]]
dist2 <- (x - atom$x)^2 + (y - atom$y)^2 + (z - atom$z)^2
if (field == "mop_q") {
coef <- coef + a[isv] * atom$mop_q * exp(- alpha * dist2 / 2.0)
} else if (field == "mop_dn") {
coef <- coef + a[isv] * atom$mop_dn * exp(- alpha * dist2 / 2.0)
} else if (field == "mop_de") {
coef <- coef + a[isv] * atom$mop_de * exp(- alpha * dist2 / 2.0)
} else if (field == "mop_pis") {
coef <- coef + a[isv] * atom$mop_pis * exp(- alpha * dist2 / 2.0)
} else if (field == "mop_homo") {
coef <- coef + a[isv] * atom$mop_homo * exp(- alpha * dist2 / 2.0)
} else if (field == "mop_lumo") {
coef <- coef + a[isv] * atom$mop_lumo * exp(- alpha * dist2 / 2.0)
}
}
}
coef
}
[Package
conmolfields version 0.0-19
Index]