← Back to team overview

yade-users team mailing list archive

Re: [Question #703571]: How to reset the stiffness of the particles at a later stage?

 

Question #703571 on Yade changed:
https://answers.launchpad.net/yade/+question/703571

Jan Stránský proposed the following answer:
> No, it will still report errors mentioned above.
> Yes, that's the error

It is a good habit to read error messages.
Even if you do not fully understand them, you should be able to distinguish that it is different error.

> I don't have a way to solve it.

The error gives you exact line where the problem is.
Even if you do not fully understand the error, there are some clues making it possible for you to solve it yourself with just a little debugging.

The keywords of the error message are "Body", "int", "Material".
Combining this info with the error line
O.bodies[body].material = mat2
it is not difficult after some debugging (a few print(...) is sufficient) to realize that mat2 is int.

In an independent Yade session you can test something like:
###
b = sphere((0,0,0),1)
print(b.material)
b.material = FrictMat() # OK
b.material = 1 # the same error message
###

Similarly to bodies, material and its ID is unique pair.
Similarly to O.bodies.append, O.material.append returns material ID, not material itself

So either use this pattern for materials
###
mat = SomeMat(...)
matID = O.materials.append(mat)
###
or
###
matID = O.materials.append(...)
mat = O.materials[matID]
###

Cheers
Jan

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.