@ -26,18 +26,19 @@ class harm_fit_func(fit_func_base):
Functional form :
E0 + 0.5 * k * ( x - re ) * * 2
E0 + 0.5 * k * ( x - r0 ) * * 2
Coefficient s:
* C [ 0 ] = energy minimum
* C [ 1 ] = spring constant
* C [ 2 ] = equilibrium distance
Fitting parameter s:
* C [ 0 ] = E0 = energy minimum
* C [ 1 ] = k = spring constant
* C [ 2 ] = r0 = equilibrium distance
"""
dim = 1 # a function with 1-D domain
param_names = ( ' E0 ' , ' k ' , ' r0 ' )
def __call__ ( self , C , x ) :
xdisp = ( x [ 0 ] - C [ 2 ] )
y = C [ 0 ] + 0.5 * C [ 1 ] * xdisp * * 2
E0 , k , r0 = self . get_params ( C , * ( self . param_names ) )
xdisp = ( x [ 0 ] - r0 )
y = E0 + 0.5 * k * xdisp * * 2
self . func_call_hook ( C , x , y )
return y
def Guess_xy ( self , x , y ) :
@ -52,7 +53,7 @@ class harmcube_fit_func(fit_func_base):
Functional form :
E0 + 0.5 * k * ( x - re ) * * 2 + cub * ( x - re ) * * 3 ;
E0 + 0.5 * k * ( x - re ) * * 2 + c3 * ( x - re ) * * 3 ;
Coefficients :
* C [ 0 ] = energy minimum
@ -63,8 +64,9 @@ class harmcube_fit_func(fit_func_base):
dim = 1 # a function with 1-D domain
param_names = ( ' E0 ' , ' k ' , ' r0 ' , ' c3 ' )
def __call__ ( self , C , x ) :
xdisp = ( x [ 0 ] - C [ 2 ] )
y = C [ 0 ] + 0.5 * C [ 1 ] * xdisp * * 2 + C [ 3 ] * xdisp * * 3
E0 , k , r0 , c3 = self . get_params ( C , * ( self . param_names ) )
xdisp = ( x [ 0 ] - r0 )
y = E0 + 0.5 * k * xdisp * * 2 + c3 * xdisp * * 3
self . func_call_hook ( C , x , y )
return y
def Guess_xy ( self , x , y ) :
@ -82,13 +84,13 @@ class morse2_fit_func(fit_func_base):
Functional form :
E0 + 0.5 * k / a * * 2 * ( 1 - exp ( - a * ( x - re ) ) ) * * 2
E0 + 0.5 * k / a * * 2 * ( 1 - exp ( - a * ( x - r0 ) ) ) * * 2
Coefficients :
* C [ 0 ] = energy minimum
* C [ 1 ] = spring constant
* C [ 2 ] = equilibrium distance
* C [ 3 ] = nonlinear constant
* C [ 0 ] = E0 = energy minimum
* C [ 1 ] = k = spring constant
* C [ 2 ] = r0 = equilibrium distance
* C [ 3 ] = a = nonlinear constant
"""
dim = 1 # a function with 1-D domain
param_names = ( ' E0 ' , ' k ' , ' r0 ' , ' a ' )
@ -116,21 +118,23 @@ class ext3Bmorse2_fit_func(fit_func_base):
Functional form :
E0 + 0.5 * k / a * * 2 * ( 1 - exp ( - a * ( x - re ) ) ) * * 2
+ C3 * ( 1 - exp ( - a * ( x - re ) ) ) * * 3
E0 + 0.5 * k / a * * 2 * ( 1 - exp ( - a * ( x - r0 ) ) ) * * 2
+ C3 * ( 1 - exp ( - a * ( x - r0 ) ) ) * * 3
Coefficients :
* C [ 0 ] = energy minimum
* C [ 1 ] = spring constant
* C [ 2 ] = equilibrium distance
* C [ 3 ] = nonlinear constant
* C [ 4 ] = coefficient of cubic term
* C [ 0 ] = E0 = energy minimum
* C [ 1 ] = k = spring constant
* C [ 2 ] = r0 = equilibrium distance
* C [ 3 ] = a = nonlinear constant
* C [ 4 ] = C3 = coefficient of cubic term
"""
dim = 1 # a function with 1-D domain
param_names = ( ' E0 ' , ' k ' , ' r0 ' , ' a ' , ' C3 ' )
def __call__ ( self , C , x ) :
from numpy import exp
E = 1 - exp ( - C [ 3 ] * ( x [ 0 ] - C [ 2 ] ) )
y = C [ 0 ] + 0.5 * C [ 1 ] / C [ 3 ] * * 2 * E * * 2 + C [ 4 ] * E * * 3
E0 , k , r0 , a , C3 = self . get_params ( C , * ( self . param_names ) )
E = 1 - exp ( - a * ( x [ 0 ] - r0 ) )
y = E0 + 0.5 * k / a * * 2 * E * * 2 + C3 * E * * 3
self . func_call_hook ( C , x , y )
return y
def Guess_xy ( self , x , y ) :