ISISNeutronMuon / ISISNeutronMuon/MDMC

Change the relationship between fixed and tie attributes of Parameter

Open
#245 0 comments 0 reactions 0 assignees View on GitHub
bug P3
Dominant language
Python
Stars
4
Forks
0
Avg merge
2d 4h
Merged PRs (30d)
5

Description

**Description of the error**
As currently implemented in MDMC, there is some undesired behaviour when setting the attributes of a Parameter object.

```
from MDMC.MD.interaction_functions import Parameter
from MDMC.common.units import Unit, UnitFloat

value = 1.0
unit = Unit('Ang')
name = 'length'
```

**Behaviour 1**
```
parameter = Parameter(UnitFloat(value, unit), name)
scaled_parameter = Parameter(UnitFloat(5 * value, unit), name)

scaled_parameter.set_tie(parameter, '* 6')
scaled_parameter.value
```
``>>> 6.0``

The value returned doesn't contain the unit label ``Ang``

**Behaviour 2**
```
parameter = Parameter(UnitFloat(value, unit), name)
scaled_parameter = Parameter(UnitFloat(5 * value, unit), name)

scaled_parameter.fixed = True
scaled_parameter.set_tie(parameter, '* 6')
scaled_parameter.value
```
``>>> 6.0``

The value for ``scaled_parameter`` can be altered by tying it to ``parameter``, even after after setting ``scaled_parameter.fixed = True``.

**Behaviour 3**
```
parameter = Parameter(UnitFloat(value, unit), name)
scaled_parameter = Parameter(UnitFloat(5 * value, unit), name)

scaled_parameter.set_tie(parameter, '* 6')
scaled_parameter.fixed = True
```
One can set ``scaled_parameter.fixed = True`` after setting a tie to ``parameter``. This is undesirable and unexpected user behaviour, so should throw an error/warning when attempting to do so.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.