1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 """Module containing the 'fix' user function class."""
25 __docformat__ = 'plaintext'
26
27
28 from base_class import Basic_class
29 import arg_check
30 from generic_fns import fix
31
32
33 -class Fix(Basic_class):
34 """Class containing the function for fixing or allowing parameter values to change."""
35
36 - def fix(self, element=None, fixed=True):
37 """Function for either fixing or allowing parameter values to change during optimisation.
38
39 Keyword Arguments
40 ~~~~~~~~~~~~~~~~~
41
42 element: Which element to fix.
43
44 fixed: A flag specifying if the parameters should be fixed or allowed to change.
45
46
47 Description
48 ~~~~~~~~~~~
49
50 The keyword argument 'element' can be any of the following:
51
52 'diff' - the diffusion tensor parameters. This will allow all diffusion tensor parameters
53 to be toggled.
54
55 'all_spins' - using this keyword, all parameters from all spins will be toggled.
56
57 'all' - all parameter will be toggled. This is equivalent to combining both 'diff' and
58 'all_spins'.
59
60
61 The flag 'fixed', if set to True, will fix parameters during optimisation whereas a value of
62 False will allow parameters to vary.
63 """
64
65
66 if self._exec_info.intro:
67 text = self._exec_info.ps3 + "fix("
68 text = text + "element=" + repr(element)
69 text = text + ", fixed=" + repr(fixed) + ")"
70 print(text)
71
72
73 arg_check.is_str(element, 'element')
74 arg_check.is_bool(fixed, 'fixed')
75
76
77 fix.fix(element=element, fixed=fixed)
78