The idea for the __getattr__ function to generate the non-standard diffusion tensor parameters on
the fly comes from the changes made by Chris MacRaild (c.a.macraild at leeds.ac.uk) in trying to
fix bug #5501 located at https://gna.org/bugs/?func=detailitem&item_id=5501.
The bug can be found at https://gna.org/bugs/?func=detailitem&item_id=5559.
Firstly the Da parameter in the relax test suite is now set to reasonable values.
A special dictionary type class for the diffusion tensor data has been created and is called
DiffTensorData and inherits functions from the base class SpecificData. The 'add_item' function has
been replaced so that the element added is now DiffTensorElement().
The DiffTensorElement data container has been created and inherits its functions from the base class
Element. The __getattr__ function has been added to pick up any references to non-existent
structures. If the name asked for is one of Diso, Da, Dper, Dpar, Dratio, Dx, Dy, or Dz, then the
values of these parameters are calculated for the parameters set in this DiffTensorElement
container. Recursion is used when the equations to calculate the value contains one of the other
non-standard parameters.
The relax test suite element 'Test of the user function diffusion_tensor.display()' now passes.