/*
  fs.h
  by Wei Cai  caiwei@mit.edu
  Last Modified : Sat Dec 30 21:08:43 2006

  Modified for the new version of MD++: Thu Sep 29 2005
  Keonwook Kang kwkang@stanford.edu

  FUNCTION  :  MD simulation package using Finnis-Sinclair potential
*/

#ifndef _FS_H
#define _FS_H

#include "mdparallel.h"

class FSParam : public SCParser 
{ /* Finnis-Sinclair Potential class (Mo, Ta, W) */
public:
    double const_d, const_A, const_beta, const_c,
        const_c0, const_c1, const_c2, const_d_sq, const_c_sq,
        rcut, const_B, const_alpha, const_b0;
    double rlist,skin;
public:
    FSParam(){initparser();};
    void initparser();
    int readfile(const char *ppmfile);
    virtual int exec(char *name);
    virtual int assignvar(int offset=0);
    void print();
};


class FSFrame : public MDPARALLELFrame 
{ /* Finnis-Sinclair (Mo,Ta,W,Fe) */
public:
    class FSParam _FSPM;

    double *rhoh, *af;

    FSFrame(){};

    virtual void potential();
    void finnis_sinclair();
    virtual void Alloc();

    int readpot();
    virtual void initvars();
    virtual void initparser();
    virtual int exec(char *name);

};    


#endif // _FS_H

