#ifndef __CMODEL_USERCM1_H
#define __CMODEL_USERCM1_H

#ifndef __CMODEL_CONTMODEL_H
#include "contmodel.h"
#endif


//------------ user-defined contact model "cm1" -----------
const unsigned long ulModelCM1 = 100;
class USERCM1 : public ContactModel {
  private:
    double kn;
    double ks;
    double fric;
  public:
    // Creators
    EXPORT USERCM1(bool bRegister=false);
    EXPORT ~USERCM1(void) { }
    // Accessors
    EXPORT const char *Name(void) const;
    EXPORT const char **PropNames(void) const;
    EXPORT ContactModel *Clone(PropBlock *pb=0) const { return(new USERCM1); }
    EXPORT double  ReturnProp(int n) const;
    EXPORT double  KnEstimate(void) const { return kn; }
    EXPORT double  KsEstimate(void) const { return ks; }
    EXPORT unsigned long Version(void) const { return 1; }
    // Manipulators
    EXPORT void AcceptProp(int n, double v);
    EXPORT const char *PreCycle(PropBlock &pb) { return(0); }
    EXPORT void FDlaw(FdBlock &fb, char cDim);
    EXPORT const char *SaveRestore(ModelSaveObject *mso);
};



#endif

