Skip to content
Snippets Groups Projects
Commit ae6c8ee4 authored by Massimiliano Bonomi's avatar Massimiliano Bonomi
Browse files

fix Q switch function derivatives for large distances

parent dacf0613
No related branches found
No related tags found
No related merge requests found
...@@ -381,8 +381,9 @@ double SwitchingFunction::calculate(double distance,double&dfunc)const { ...@@ -381,8 +381,9 @@ double SwitchingFunction::calculate(double distance,double&dfunc)const {
} else if(type==nativeq) { } else if(type==nativeq) {
double rdist2 = beta*(distance - lambda * ref); double rdist2 = beta*(distance - lambda * ref);
double exprdist=exp(rdist2); double exprdist=exp(rdist2);
double exprmdist=1.0/exprdist;
result=1./(1.+exprdist); result=1./(1.+exprdist);
dfunc=-exprdist/(1.+exprdist)/(1.+exprdist); dfunc=-1.0/(exprmdist+1.0)/(1.+exprdist);
} else if(type==gaussian) { } else if(type==gaussian) {
result=exp(-0.5*rdist*rdist); result=exp(-0.5*rdist*rdist);
dfunc=-rdist*result; dfunc=-rdist*result;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment