→Links: Fix the broken Gna! forum link by switching to {{gna link}}.
{{lowercase title}}
{{infobox relax release| version = 4.0.0| prev = 3.3.9| next = 4.0.1| keywords = Frame order theory| type = Major feature| date = 7 October 2015| manual = yes}} == Description ==
<section begin=description/>
<section end=description/>
== Download ==
<section begin=download/>
<section end=download/>
== CHANGES file ==
<section begin=metadata/>
<section end=metadata/>
=== Features ===
<section begin=features/>
<section end=features/>
=== Changes ===
<section begin=changes/>
* Updated the CaM frame order test model superimposition script. The [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function] is now correctly called. The output log file has been added to the repository as it contains the correct translation and Euler rotation information needed for the test models.
* Parameter update for the isotropic cone CaM frame order test model optimisation script. The Euler angles for the rotation about the motional pivot have been replaced by the translation vector and Euler angle CoM rotation parameters.
* Fix for a number of the frame order models which do not have parameter constraints. The [http://www.nmr-relax.com/api/4.0/specific_analyses.frame_order.parameters-module.html#linear_constraints linear_constraint() function] was returning A, b = [], [] for these models, but these empty numpy arrays were causing the [https://gna.org/projects/{{minfx/ homepage}} minfx library] to fail. These values are now caught and the constraint algorithm turned off in the [http://www.nmr-relax.com/api/4.0/specific_analyses.frame_order.api.Frame_order-class.html#minimise minimise() specific API method].
* Increased the precision of all the data in the CaM frame order test data generation base script. These have all been converted from float16 to float64 numpy types.
* Fix for the RDC error setting in the CaM frame order test data generation base script. The rdc_err data structure is located in the interatomic data containers, no the spin containers.
* Added a script for profiling the target function calls of the pseudo-ellipse frame order model.
* Added a timeit script and log file showing how numpy.cos() is 10 times slower than math.cos(). This is for single floats.
* Shifted the calculation of the θ<supsub>max</supsub> cone opening for the pseudo-ellipse outside of all loops. This is infrastructure change for potentially eliminating all of the looping for the PCS numeric integration in the future. It however slightly speeds up the pseudo-ellipse frame order model. Using 500 target function calls in the profiling_pseudo_ellipse.py script in test_suite/shared_data/frame_order/timings/, the time spent in the [http://www.nmr-relax.com/api/4.0/lib.frame_order.matrix_ops-module.html#pcs_pivot_motion_full_qr_int pcs_pivot_motion_full_qrint() function] decreases from 20.849 to 20.719 seconds.* Converted the torsionless pseudo-ellipse model to also use the [http://www.nmr-relax.com/api/4.0/lib.frame_order.pseudo_ellipse-module.html#tmax_pseudo_ellipse_array tmax_pseudo_ellipse_array() function]. This allows the calculation of the pseudo-elliptic cone opening θ<supsub>max</supsub> to be shifted outside of all loops.
* Created a profiling script and log file for the isotropic cone frame order model. This shows where the slow points of the model are, using 2000 target function calls.
* Increased the function call number to 500 in the pseudo-ellipse frame order model profiling script. The profiling log file has also been added to show where the slowness is - specifically that the numeric PCS integration takes almost the same amount of time as the RDC frame order matrix construction using the scipy.integrate.quad() function.
* Created the Grace graphs for the double rotor model 1<sup>st</sup> degree frame order matrix. These are the values calculated directly from the [http://www.nmr-relax.com/api/4.0/lib.frame_order-module.html lib.frame_order modules]. The graphs were previously all zeros.
* Recreated all of the simulated pseudo-ellipse frame order matrix element graphs. These are now in the Kronecker product notation so that they will match the graphs calculated using the [http://www.nmr-relax.com/api/4.0/lib.frame_order.pseudo_ellipse-module.html relax lib.frame_order.pseudo_ellipse module].
* Fix for the [http://www.nmr-relax.com/api/4.0/lib.frame_order.pseudo_ellipse-module.html#part_int_daeg1_pseudo_ellipse_22 pseudo-ellipse 1<sup>st</sup> degree frame order matrix Daeg22 ᛞ<sub>22</sub> element].
* Updated all of the pseudo-ellipse 1<sup>st</sup> degree frame order matrix graphs for the recent fix.
* Converted the Sobol' rotation matrices to float32 in the frame order target function. This is to conserve huge amounts of memory to allow for more Sobol' points to be used. For example for the models which use 3D Sobol' points (isotropic cone and pseudo-ellipse), a maximum of 50000 Sobol' points requires 50000000 to be created, using about 15 Gb of RAM.
<section end=changes/>
=== Bugfixes ===
<section begin=bugfixes/>
<section end=bugfixes/>
== Links ==
<section begin=links/>
* [http://wiki.nmr-relax.com/Relax_4.0.0 Official release notes on the relax wiki].