← Back to team overview

yade-users team mailing list archive

Re: What should I know to start YADE using/programming


From my experience : I feeled that the time I spent to learn a bit C++ was not lost : it helped me to find some known structures and characters in the ocean of code I had in front of me at the beginnings. Quite good when you have nothing to hang at...

For the other things, I'm very not up to date (and the activity of these last days let me think that this will be incredibly worser and worser) with the latest Yade facilities so I'm not sure my opinion is to be considered. But it seems to me that Python is not too much complicated, taking moreover into account the fact that some examples exist (and that Vaclav always answer rather quickly to such questions on the list, thanks to him !!) And I do not even know what is this MatPlotlib ?? I guess it is for plotting results. In my case, I use always Recorder-issued files and Matlab. I find it satisfying.
Never heard of Matlab, where can I download it? ;-)

FYI matplotlib is python plotting module with syntax very similar to matlab's: http://matplotlib.sf.net. It is used by the yade.plot module and I use it quite a lot for post-processing as well. The beauty of it is that you avoid dealing with recorders&files all the time, as you have access to everything you need from within python -- all bodies' variables, engines, interactions etc.

Concerning c++: it is certainly a big advantage to know the c++ internals of yade, but I believe we got to the point that one doesn't need to touch it most the time. I do most my work in python these days and I get to c++ only to fix bugs or add substantial features.

I would even suggest to rewrite all FileGenerators in python (nice task for a beginner as well), to get rid of the idea that you need c++ for anything but the weight-lifting during computation. Compare ClumpTestGen and scripts/test/clump.py (which are functionally identical) to get the difference. I can imagine writing beginner's documentation about clump.py, but not about ClumpTestGen. Why should material researchers care about Omega or shared_ptr or boost?


Follow ups