00001 #ifndef BiasSEMPlasticityMECHANISM_H_
00002 #define BiasSEMPlasticityMECHANISM_H_
00003
00004 #include "EvSimObject.h"
00005 #include "EvSimObjectTypeUtils.h"
00006
00007 class BiasSEMPlasticityMechanism : public EvSimObject {
00008
00009 EV_SIM_OBJECT( BiasSEMPlasticityMechanism )
00010
00011 public:
00012 BiasSEMPlasticityMechanism(float eta = 1e-5,
00013 float tau = 20e-3,
00014 bool withHessian = true,
00015 bool isActive = true) {
00016 this->eta = eta;
00017 this->tau = tau;
00018 this->isActive = isActive;
00019 this->withHessian = withHessian;
00020 }
00021
00022 float eta;
00023
00024 float tau;
00025
00026 bool withHessian;
00027
00028 bool isActive;
00029
00030 virtual ~BiasSEMPlasticityMechanism();
00031
00032 virtual void postMountAsMountedObj(EvSimNetwork &net, EvSimObject::ID self, EvSimObject::ID mountpoint);
00033
00034 virtual void reset(SimContext &sim_ctxt);
00035
00036 virtual void eventHit(SimContext & sim_ctxt, Time time, port_id_t port);
00037
00038 protected:
00039 float *bias_ptr;
00040 double last_update_time;
00041 };
00042
00043 #endif