@@ -2420,8 +2420,8 @@ def __init__(self, initial_parameters):
2420
2420
FitFunction .__init__ (self , initial_parameters )
2421
2421
self .refine_parameters = [0 , 1 , 2 ]
2422
2422
2423
- def simulate (self , x , ignore = None ):
2424
- return FitFunction .simulate (self , x , interpolate = 1 )
2423
+ def simulate (self , x , interpolate = None , inside_fitrange = False ):
2424
+ return FitFunction .simulate (self , x , interpolate = 1 , inside_fitrange = inside_fitrange )
2425
2425
2426
2426
def residuals (self , params , y , x , yerror = None ):
2427
2427
'''
@@ -2910,6 +2910,44 @@ def fit_function(self, p, x, y):
2910
2910
value = I * V + c
2911
2911
return value .flatten ()
2912
2912
2913
+ class FitFerromagneticOrderparameter (FitFunction ):
2914
+ '''
2915
+ Order parameter from
2916
+ M. D. Kuz’min, PRL 94, 107204 (2005)
2917
+ '''
2918
+
2919
+ # define class variables.
2920
+ name = "FM Orderparameter"
2921
+ parameters = [1. , 100. , 1. , 5. / 2. , 0. , 0. ]
2922
+ parameter_names = ['M_S' , 'T_C' , 's' , 'p' , 'C_P' , 'C_D' ]
2923
+ fit_function_text = 'Parameters: M_S=[M_S] s=[s|2] T_C=[T_C]'
2924
+
2925
+ parameter_description = {
2926
+ 'M_S' : 'Saturation magnetization' ,
2927
+ 'T_C' : 'Transition temperature' ,
2928
+ 's' : 'Shape parameter, see (PRL 94, 107204 (2005))' ,
2929
+ 'p' : 'Shape parameter (5/2 in most cases), see (PRL 94, 107204 (2005))' ,
2930
+ 'C_P' : 'Paramagnetic correction factor' ,
2931
+ 'C_D' : 'Diamagnetic correction factor' ,
2932
+ }
2933
+
2934
+ def __init__ (self , initial_parameters ):
2935
+ '''
2936
+ Constructor setting the initial values of the parameters.
2937
+ '''
2938
+ FitFunction .__init__ (self , initial_parameters )
2939
+ self .refine_parameters = [0 , 1 , 2 , 4 , 5 ]
2940
+
2941
+ def fit_function (self , p , T ):
2942
+ Ms = p [0 ]
2943
+ tau = T / p [1 ]
2944
+ s = p [2 ]
2945
+ P = p [3 ]
2946
+ C_P = p [4 ]
2947
+ C_D = p [5 ]
2948
+ m = numpy .where (tau < 1 , (1. - s * tau ** (2. / 3. )- (1. - s )* tau ** P )** (1. / 3. ), 0. )
2949
+ return Ms * m + C_P / T + C_D
2950
+
2913
2951
2914
2952
#--------------------------------- Define common functions for 3d fits ---------------------------------
2915
2953
@@ -2945,6 +2983,7 @@ class FitSession(FitSessionGUI):
2945
2983
FitCrystalLayer .name : FitCrystalLayer ,
2946
2984
FitRelaxingCrystalLayer .name : FitRelaxingCrystalLayer ,
2947
2985
FitOffspecular .name : FitOffspecular ,
2986
+ FitFerromagneticOrderparameter .name : FitFerromagneticOrderparameter ,
2948
2987
#FitNanoparticleZFC.name: FitNanoparticleZFC,
2949
2988
#FitNanoparticleZFC2.name: FitNanoparticleZFC2,
2950
2989
}
0 commit comments