← Back to team overview

yade-dev team mailing list archive

Dynamic vs Fixed for bodies utils functions

 

Hi,

As you may know, the Python (utils module) functions for creating bodies make a more or less redundant use of the two "dynamic" and "fixed" boolean parameters.


It seems to me both are usually accepted with different behaviors:
- for sphere() and box(), both are passed to _commonBodySetup where /dynamic/ (when given by the user) will rule without mercy over /fixed/. [1] - facet(), tetraPoly(), tetra(), polyhedron() also accept both but makes no use whatsoever of /dynamic/ ;-)

As a matter of fact, and since one commit in 2010 [2], the /dynamic/ keyword is said to be deprecated but the fact is it is still here... It also directly appears in the rest of the code (contrary to /fixed/) as Body.dynamic [3] and is commented as such in the doc [4].

On the other hand, the use of fixed seems to be more frequent in the script examples (I did not try here to distinguish between the working examples and the non-working ones ;-) though..)...


In case you agree with my description, would you also agree with some changes here ?

If yes, my personal choice would be to just keep /dynamic/. Note that the risks for breaking backwards compatibility for old Python scripts may be reduced by: - keeping just the /dynamic/ attribute in _commonBodySetup() which is never used directly by the users
- removing the fixed parameter from sphere() and box()
- modify the facet(), tetraPoly(), tetra(), polyhedron() code to just pass /dynamic/ to _commonBodySetup(), possibly keeping the /fi//xed/ name in these functions signatures if you prefer to.
(?)


What are your opinions / use of these keywords ?


Jérôme

[1] https://github.com/yade/trunk/blob/master/py/utils.py#L131
[2] https://github.com/yade/trunk/commit/d8e420ed569c6b4ec3569282df925a5035513d24
[3] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Body.dynamic
[4] https://yade-dem.org/doc/user.html#motion-constraints

------
Chargé de Recherche / Research Associate
Irstea, RECOVER
3275 route de Cezanne – CS 40061 13182 Aix-en-Provence Cedex 5 FRANCE
+33 (0)4 42 66 99 21



Follow ups