Effective Monomial Symmetrization Approach (EMSA) Program
This is the page for the Monomial Symmetrization Approach for
permutationally invariant polynomial basis for molecular energy surface
fitting for the following paper:
References:
-
Permutationally Invariant Polynomial Basis for Molecular Energy
Surface Fitting via Monomial Symmetrization
Zhen Xie and Joel M. Bowman
J. Chem. Theory Comput., 6(1), 26-34, 2010.
[DOI]
[PDF]
At this time, both binary executable and source codes are available.
Executable(Linux 32 bit)
Source Code
After downloading and extracting the tarball, the
program can be run simply as
./msa 3 1 6
for a molecule A3B1 with max degree 6.
There are five output files generated by the program "msa", they are
- MOL_3_1_6.BAS
- MOL_3_1_6.FOC
- MOL_3_1_6.MAP
- MOL_3_1_6.MONO
- MOL_3_1_6.POLY
Among all the five files, only "MOL_3_1_6.MONO" and
"MOL_3_1_6.POLY" will be used to for the actual invariant
polynomial basis decomposition, and the following ready to use
FORTRAN 90 module bemsa31_6.f90
(automatically generated using a PERL script based on
MOL_3_1_6.MONO and MOL_3_1_6.POLY files) for molecule
A3B is based on these two files. This module mainly
contains two subroutines as following:
- emsav
function emsav(x,c) result(v)
implicit none
real(wp),dimension(1:6)::x
real(wp),dimension(0:195)::c
real(wp)::v
! ::::::::::::::::::::
real(wp),dimension(0:195)::p
call bemsav(x,p)
v = dot_product(p,c)
return
end function emsav
this is the function to evaluate the potential energy function given
the molecule configuration x and the fitted coefficients
c
- bemsav
subroutine bemsav(x,p)
implicit none
real(wp),dimension(1:6),intent(in)::x
real(wp),dimension(0:195),intent(out)::p
! ::::::::::::::::::::
real(wp),dimension(0:32)::m
call evmono(x,m)
call evpoly(m,p)
return
end subroutine bemsav
this is the subroutine to evaluate all the basis function values given the
molecule configurationx.
If you have generate the .mono and .poly
files using the above code and want to generate the FORTRAN 90
module as bemsa31_6.f90, please
contact me along with
the .MONO and .POLY file.
prgram to generate all the permuted monomials for a molecule (SMSA)
This program is explained as follow, and can be downloaded here.
// ====================================================================== //
// this is the C++ code to generate all the possible permuted monomials //
// for a given specifiled molecule. //
// //
// A molecule such as A3B2 could be feed to the program as simply 3 2, //
// basically, what the program does is generate all the bond lengths //
// for this molecules, and act all the possible permutations on it. the //
// final results would be a permutation of a general monomial [abc...]; //
// //
// Here is a simple example runing the program for molecule A3B2, //
// //
// $./smsa -g 2 3 2 //
// //
// MOLECULE : [(123)(45)] //
// ATOM PAIR: |12|13|14|15|23|24|25|34|35|45| //
// BOND INDX: | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| //
// [P 01234]: |A 12345|B 0123456789|M [abcdefghij] //
// [P 02134]: |A 13245|B 1023478569|M [bacdehifgj] //
// [P 10234]: |A 21345|B 0456123789|M [aefgbcdhij] //
// [P 12034]: |A 31245|B 1478023569|M [eafgbhicdj] //
// [P 20134]: |A 23145|B 4056178239|M [behiacdfgj] //
// [P 21034]: |A 32145|B 4178056239|M [ebhiafgcdj] //
// [P 01243]: |A 12354|B 0132465879|M [abdcegfihj] //
// [P 02143]: |A 13254|B 1032487659|M [badceihgfj] //
// [P 10243]: |A 21354|B 0465132879|M [aegfbdcihj] //
// [P 12043]: |A 31254|B 1487032659|M [eagfbihdcj] //
// [P 20143]: |A 23154|B 4065187329|M [beihadcgfj] //
// [P 21043]: |A 32154|B 4187065329|M [ebihagfdcj] //
// //
// the simplest way to run the program is just type //
// ./smsa -g [#groups] [size of group A] [size of group B] ... //
// for a general molecule A3B2, there are two atom groups (A and B), //
// and there are three A atoms and 2 B atoms. //
// as for the output //
// P shows the permutation ((index starts from 0) //
// A shows the permuted atom sequence //
// B shows the permuted bond length variable sequence //
// M shows the monomial //
// check the source code for more details //
// ====================================================================== //
Zhen Xie
Argonne National Laboratory
[email protected] or [email protected]
last update: Tue May 11 22:52:13 CDT 2010