mailMerging of the frame order analysis branch and a redesign of the relax package layout.


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on March 22, 2013 - 08:30:
Hi all,

In preparation for converting relax into a universal toolkit for NMR
dynamics, I would like to take the following steps:

1)  Release relax 2.2.5.

2)  Merge the frame order branch back into the relax trunk.  This code
is close to complete and is stable.  There are also changes to certain
parts of relax which should really have gone into trunk instead of the
branch.  This includes, for example, a change of the operation in the
atom_loop() method of the structural API.  The merger is essential
prior to the next step as otherwise the branch will no longer be
manageable.  After this merger, there will be no branches tracking the
trunk any more.  The 'cst', 'inversion-recovery', and 'relax_disp'
branches will remain, but these are too old to follow the trunk with
svnmerge.  They can always be restored by the creation of a new branch
and then manually porting the changes of the old branch to the new - a
trivial exercise when using the svnmerge.py script.

3)  Completely redesign the package and module layout in relax.  The
key idea that this revolves around is the creation of the relax
library package called 'lib'.  This will be a huge collection of
functions relevant for NMR dynamics.  These will be fully independent
from the relax data store, specific analysis API, and other relax
concepts.  It will allow users to employ relax as an alternative to
Mathematica and Matlab, by having a large collection of NMR functions
at their fingertips.  A lot more details are given in the
docs/package_layout document, which I have included below.  The
redesign should be more logical and easier to understand for new
developers as well.

As there are no relax developers actively making changes at the
moment, I will probably start with these changes today as it should
not interrupt anyone, but any feedback would be appreciated.

Regards,

Edward





Directory layout design (2013-03-01)
====================================

The following is an idea for how to lay out the directories for the
relax sources.  The changes suggested must occur after the merging of
the frame_order_testing branch.

____________________________________________________________________________________________________

Package             Description
____________________________________________________________________________________________________

analysis_lib        Analysis specific code (currently called specific_fns).

auto_analyses       Unchanged from now.  A collection of massive relax
scripts used to simplify the
                    life of relax users.

data_store          The relax data store and all modules which operate
on it (data and generic_fns).

ds_lib              All modules which operate on the relax data store
(data and generic_fns).
                    Mainly user function backends.

extern              GPL compatible packages bundled with relax.

graphics            Mainly a repository for all bitmap and vector
graphics, but a few auxiliary
                    functions for handling graphics within relax (e.g.
icons in the GUI).

gui                 The graphical UI.

lib                 A set of modules and functions independent of the
relax data store and specific
                    analyses.  Half of maths_fns and some of
generic_fns.  No code is allowed to
                    reference the data store!

lib.frame_order     Most of the modules of maths_fns.frame_order.

lib.geometry        To include, for example, maths_fns.rotation_matrix.

lib.opendx          From opendx.

lib.nmr             For example maths_fns.rdc, math_fns.pcs, etc.

lib.structure       From generic_fns.structure.

multi               The multi-processor code.

prompt              The prompt/script UI.

scons               The SCons modules.

target_fns          A collection of all the target functions.  This is
most of the current
                    maths_fns.  The modules contain target function
classes which must present the
                    func() method as the target function (and the
optional dfunc() and d2func() for
                    the gradient and Hessian respectively).

test_suite          The relax test suite.

user_functions      The definitions of the relax user functions.
____________________________________________________________________________________________________



Related Messages


Powered by MHonArc, Updated Sat Mar 23 15:40:08 2013