yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #00115
Re: Re : Triaxial Test
Note : ResultantForceEngine.pro and TriaxialStressController.pro both
contain this line :
LIBS += -lStiffnessCounter \
In fact , it is not necessary, and it causes a problem if compiled after
a "make clean" command has been issued, because StiffnessCounter is a
StandaloneEngine, so it is compiled _after_ TriaxialStressController
which is a DeusExMachina engine...
Just remove the line.
Bruno
Bruno Chareyre a écrit :
Hello Janek
I've written new classes in order to 1) control the triaxial stress in
a box and 2) compute an accurate critical time-step.
Point 1. is complete and has a dedicated FileGenerator
("TriaxialTest"). Point 2. is not complete but I have almost
everything in hands to do it now :), it should arrive soon.
Everything is added in the DEM package (attached file) :
- StiffnessMatrix added to PhysicalAction (in fact it is not a matrix,
it is only the vector of diagonal terms...)
- StiffnessCounter added to StandaloneEngine to compute the Stiffness
matrix of bodies
- ResultantForceEngine added to DeusExMachina (should rename to
ResultantForceController?...) to control the resultant force on a body.
- TriaxialStressController added to DeusExMachina to control the
stress state in a collection of bodies. TriaxialStressController work
on a group of 6 bodies - most probably 6 InteractingBoxes currently,
but why not 6 RigidWalls in the future?
- TriaxialTest added to PreProcessor to demonstrate the use of
TriaxialStressController.
While writing this classes, I have navigated a lot in Yade code, and I
have a lot of questions...
I will only write few of them now :
Some of them turn around debug options and debugging, they are not
100% yade related :
1 - It is said in the "INSTALL" that option -g may be used to generate
debug symbols. However there are debug flags in all *.pro files
(before one uses the "make_release" script...). So what happens if I
compile with "debug" flags in pro files but without -g option?
2 - I was never able to really debug my code. The only way of
debugging I found was based on including lots of cerr << "something"
in the code to have an idea of what happened (I forgot to
DeusExMachina::registerAttributes in
ResultantForceEngine::registerAttributes, so subscribedBodies was
empty...). What do you use for debug? Kdevelop? gdb in command-line
mode? Do you know a link to a good debugging tutorial for
gcc/kdevelop/gdb/* ?
Compilation :
3 - I tried to compile a complete project (e.g. DEM-package) from
Kdevelop. It works! No problem with YADE_QMAKE_PATH as long as you
don't try to compile a sub-project. However, it results in compiled
objects that are 3 times bigger than those compiled with a "make
CXXFLAGS='-pthread -lpthread' " from the command line!! Do you know
the reason why? (debug symbols...?)
Optimisation :
4 - I have make a rapid tour in cachegrind/kcachegrind, and if I
understand well, boost operations take a significant part of the
computation cost (particularly "/shared_ptr<something> sh_ptr =
existing_shared_ptr/" and /shared_ptr<something>~/ ). Don't you think
it could be a good idea to write specific parts of Yade, like
PersistentSAPCollider, with classical pointers? I seriously think
about this type of optimisations.
More generally, I would really appreciate having your point of view on
where I should start if I plan to get faster computations.
Bruno
--
______________
Chareyre Bruno
Maître de conférence
Institut National Polytechnique de Grenoble
Tél : 04.56.52.86.21
______________
Bureau I 08
Laboratoire 3S (Soils Solids Structures)
BP 53 - 38041, Grenoble cedex 9 - France
______________
--
______________
Chareyre Bruno
Maître de conférence
Institut National Polytechnique de Grenoble
Tél : 04.56.52.86.21
______________
Bureau I 08
Laboratoire 3S (Soils Solids Structures)
BP 53 - 38041, Grenoble cedex 9 - France
______________
References