[Yade-dev] Fwd: [Yade-users] YADE documentation

2009-06-24 Thread Vincent Richefeu



Début du message réexpédié :


De : Vincent Richefeu riche...@geo.hmg.inpg.fr
Date : 24 juin 2009 11:23:06 HAEC
À : yade-us...@lists.launchpad.net
Objet : Rép : [Yade-users] YADE documentation

Hi,

If no objection, I propose to create a second wiki (on wikidot.com)  
exclusively dedicated to yade documentation.
I personally use wikidot and I find it much more user-friend than  
wikia.


I could design and propose (in a first stage) a structure for the  
site. Then, any contributor will be able to add pages.

In worst cases, the second wiki may be deleted.

Please give me your opinion about this solution,

VR


Le 24 juin 09 à 10:24, Anton Gladky a écrit :

I think if we have as more documents as possible will be positive  
for new users. We can start from creating pages on wiki and then  
we'll see how it is better to structure in one document.

__
[ENG] Best Regards
[GER] Mit freundlichen Grüßen
[RUS] С наилучшими пожеланиями
[UKR] З найкращими побажаннями

Anton Gladkyy


2009/6/23 Mohammad Nurul Islam nisla...@yahoo.com
Hi,
Preparation of YADE documentation will be a good step for new  
users.I have some own documentation that I have prepared with  
respect to PFC and OVAL and some other open source DEM code,  
manual. And I guess other YADE users also have such types of  
documentation.If we share each others documentations, it will  
enrich YADE resource.


Ofcourse there are some documentation on YADE, but for new users  
it is questionable, how much it will be helpful !!!


Regards,
Mohammad Nurul Islam

--- On Tue, 6/23/09, Anton Gladky gladky.an...@gmail.com wrote:

From: Anton Gladky gladky.an...@gmail.com
Subject: [Yade-users] YADE documentation
To: Yade Development Group yade-us...@lists.launchpad.net
Date: Tuesday, June 23, 2009, 8:38 AM


Hi all!

I have some thoughts on YADE documentation.

I am working with YADE not so much time. But the main thing, what  
waste a lot of time, is the insufficient documentation. I'm sure  
it stops a lot of new potential users and (probably) developers.


So my guess is, that it would be good to start from creating short  
but informative instructions or howtos for different tasks. It  
should include short description how to do it and good examples  
with comments. I like style which has been used for C++ tutorial  
http://www.cplusplus.com/doc/tutorial/


I am ready to write some of such documents, but my YADE knowledges  
are yet not so deep.


I think it is an important to have a good and easy-understandable  
documentation.


___
Mailing list: https://launchpad.net/~yade-dev
Post to : yade-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-dev] [Yade-users] YADE documentation

2009-06-24 Thread Vincent Richefeu

Hi,

If no objection, I propose to create a second wiki (on wikidot.com)  
exclusively dedicated to yade documentation.

I personally use wikidot and I find it much more user-friend than wikia.

I could design and propose (in a first stage) a structure for the  
site. Then, any contributor will be able to add pages.

In worst cases, the second wiki may be deleted.

Please give me your opinion about this solution,

VR

Le 24 juin 09 à 10:24, Anton Gladky a écrit :

I think if we have as more documents as possible will be positive  
for new users. We can start from creating pages on wiki and then  
we'll see how it is better to structure in one document.

__
[ENG] Best Regards
[GER] Mit freundlichen Grüßen
[RUS] С наилучшими пожеланиями
[UKR] З найкращими побажаннями

Anton Gladkyy


2009/6/23 Mohammad Nurul Islam nisla...@yahoo.com
Hi,
Preparation of YADE documentation will be a good step for new  
users.I have some own documentation that I have prepared with  
respect to PFC and OVAL and some other open source DEM code,  
manual. And I guess other YADE users also have such types of  
documentation.If we share each others documentations, it will  
enrich YADE resource.


Ofcourse there are some documentation on YADE, but for new users it  
is questionable, how much it will be helpful !!!


Regards,
Mohammad Nurul Islam

--- On Tue, 6/23/09, Anton Gladky gladky.an...@gmail.com wrote:

From: Anton Gladky gladky.an...@gmail.com
Subject: [Yade-users] YADE documentation
To: Yade Development Group yade-us...@lists.launchpad.net
Date: Tuesday, June 23, 2009, 8:38 AM


Hi all!

I have some thoughts on YADE documentation.

I am working with YADE not so much time. But the main thing, what  
waste a lot of time, is the insufficient documentation. I'm sure it  
stops a lot of new potential users and (probably) developers.


So my guess is, that it would be good to start from creating short  
but informative instructions or howtos for different tasks. It  
should include short description how to do it and good examples  
with comments. I like style which has been used for C++ tutorial  
http://www.cplusplus.com/doc/tutorial/


I am ready to write some of such documents, but my YADE knowledges  
are yet not so deep.


I think it is an important to have a good and easy-understandable  
documentation.


__
[ENG] Best Regards
[GER] Mit freundlichen Grüßen
[RUS] С наилучшими пожеланиями
[UKR] З найкращими побажаннями

Anton Gladkyy


-Inline Attachment Follows-

___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-us...@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-us...@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-us...@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~yade-dev
Post to : yade-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp


[Yade-dev] Questions on contact logic and the new requestErase approach

2009-06-24 Thread Bruno Chareyre

Hello

I saw (perhaps not so) recent changes in the contact logic (in 
CohesiveFrictionalContactLaw), and I'm not sure it is correct.
I started writing an email then I found a message from Vaclav about 
this. I'm reviewing Vaclav's message and sending another mail when its done.

The text below is a before-review version, just for history...

Bruno





If I understand correctly, we have :

1. Previous approach :

The contact law set !isReal when there is no physical interraction.
If  (!isReal  !AABBintersection) _at the end of the cycle_, then erase 
interaction.


2. Current approach :

The contact law request deleting interaction at the beginning of next 
iteration as soon as there is no physical interraction.


CohesiveFrictionalContactLaw, l.122 :
{ // BREAK due to tension
   
ncb-interactions-requestErase(contact-getId1(),contact-getId2());


But then, if AABBs still overlap, the collider will immediatly create 
the same iteration again, which is a waste of time.
Or, even worst, it might be possible that the collider will keep this 
interaction deleted (IIRC the collider only detects BBs changing status 
from !overlap to overlap, when BBs keep overlaping, it does nothing). So 
if the same bodies come in contact again, the contact will not be 
detected at all.


Also, I still see in the collider :

if(!overlap  found  (haveDistantTransient ? !interaction-isReal() : 
true) ){
   //LOG_DEBUG(Erasing interaction #id1=#id2 
(isReal=interaction-isReal));

   transientInteractions-erase(body_id_t(id1),body_id_t(id2));

Which means we are deleting interactions twice if 
(haveDistantTransient), or perhaps never, since the contact law is not 
setting isReal=false anymore.






O



--

___
Chareyre Bruno
Maitre de conference

Grenoble INP
Laboratoire 3SR - bureau E145
BP 53 - 38041, Grenoble cedex 9 - France
Tél : 33 4 56 52 86 21
Fax : 33 4 76 82 70 43



___
Mailing list: https://launchpad.net/~yade-dev
Post to : yade-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-dev] [Yade-users] YADE documentation

2009-06-24 Thread Vincent Richefeu
The idea behind my proposal is to design a new structure for yade  
documentation.
I know also that the current wiki contains a large quantity of  
documentation thanks to contributors.
But honestly it is not very easy to find some information (this is  
NOT a criticism because I am very pleased to be able to access the  
informations contained in the wiki).


So I began this adventure in the hope that WE will find a nice design.
Here is a draft proposal of the doc structure: http://yade.wikidot.com

VR


Le 24 juin 09 à 13:38, Anton Gladky a écrit :

As for me it is no differences where Yade documentation will be  
placed. The main is to have the articles.
So if you find wikidot.com better - no problem. We just need to  
place links from yade.wikia.com and define which documentation will  
be in yade.wikia.com and which one will be in wikidot.com.


PS Actually, in a future it is good to have 1 website with all YADE  
stuff.

PPS domain name yade.info is available
__
[ENG] Best Regards
[GER] Mit freundlichen Grüßen
[RUS] С наилучшими пожеланиями
[UKR] З найкращими побажаннями

Anton Gladkyy


2009/6/24 Vincent Richefeu riche...@geo.hmg.inpg.fr
Hi,

If no objection, I propose to create a second wiki (on wikidot.com)  
exclusively dedicated to yade documentation.
I personally use wikidot and I find it much more user-friend than  
wikia.


I could design and propose (in a first stage) a structure for the  
site. Then, any contributor will be able to add pages.

In worst cases, the second wiki may be deleted.

Please give me your opinion about this solution,

VR


Le 24 juin 09 à 10:24, Anton Gladky a écrit :

I think if we have as more documents as possible will be positive  
for new users. We can start from creating pages on wiki and then  
we'll see how it is better to structure in one document.

__
[ENG] Best Regards
[GER] Mit freundlichen Grüßen
[RUS] С наилучшими пожеланиями
[UKR] З найкращими побажаннями

Anton Gladkyy


2009/6/23 Mohammad Nurul Islam nisla...@yahoo.com
Hi,
Preparation of YADE documentation will be a good step for new  
users.I have some own documentation that I have prepared with  
respect to PFC and OVAL and some other open source DEM code,  
manual. And I guess other YADE users also have such types of  
documentation.If we share each others documentations, it will  
enrich YADE resource.


Ofcourse there are some documentation on YADE, but for new users  
it is questionable, how much it will be helpful !!!


Regards,
Mohammad Nurul Islam

--- On Tue, 6/23/09, Anton Gladky gladky.an...@gmail.com wrote:

From: Anton Gladky gladky.an...@gmail.com
Subject: [Yade-users] YADE documentation
To: Yade Development Group yade-us...@lists.launchpad.net
Date: Tuesday, June 23, 2009, 8:38 AM


Hi all!

I have some thoughts on YADE documentation.

I am working with YADE not so much time. But the main thing, what  
waste a lot of time, is the insufficient documentation. I'm sure  
it stops a lot of new potential users and (probably) developers.


So my guess is, that it would be good to start from creating short  
but informative instructions or howtos for different tasks. It  
should include short description how to do it and good examples  
with comments. I like style which has been used for C++ tutorial  
http://www.cplusplus.com/doc/tutorial/


I am ready to write some of such documents, but my YADE knowledges  
are yet not so deep.


I think it is an important to have a good and easy-understandable  
documentation.


___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-us...@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp




___
Mailing list: https://launchpad.net/~yade-dev
Post to : yade-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp


[Yade-dev] [svn] r1813 - in trunk/pkg/dem: . Engine/DeusExMachina Engine/StandAloneEngine PreProcessor

2009-06-24 Thread chareyre at BerliOS
Author: chareyre
Date: 2009-06-24 19:04:39 +0200 (Wed, 24 Jun 2009)
New Revision: 1813

Added:
   trunk/pkg/dem/Engine/DeusExMachina/SampleCapillaryPressureEngine.cpp
   trunk/pkg/dem/Engine/DeusExMachina/SampleCapillaryPressureEngine.hpp
Modified:
   trunk/pkg/dem/Engine/DeusExMachina/CapillaryStressRecorder.cpp
   trunk/pkg/dem/Engine/DeusExMachina/ContactStressRecorder.cpp
   trunk/pkg/dem/Engine/StandAloneEngine/CapillaryCohesiveLaw.cpp
   trunk/pkg/dem/PreProcessor/TriaxialTestWater.cpp
   trunk/pkg/dem/SConscript
Log:
1. Update capillary files and add a new engine for them.
2. Prepare for removing old useless classes (typically some variants of engines 
with water at the end)




Modified: trunk/pkg/dem/Engine/DeusExMachina/CapillaryStressRecorder.cpp
===
--- trunk/pkg/dem/Engine/DeusExMachina/CapillaryStressRecorder.cpp  
2009-06-24 16:28:58 UTC (rev 1812)
+++ trunk/pkg/dem/Engine/DeusExMachina/CapillaryStressRecorder.cpp  
2009-06-24 17:04:39 UTC (rev 1813)
@@ -43,7 +43,10 @@
 {
if(deserializing)
{
-   ofile.open(outputFile.c_str());
+   //bool file_exists = std::ifstream (outputFile.c_str()); //if 
file does not exist, we will write colums titles
+   ofile.open(outputFile.c_str(), std::ios::app);
+   //if (!file_exists) ofileiteration s11 s22 s33 e11 e22 e33 
unb_force porosity kineticE  endl;
+   
}
 }
 

Modified: trunk/pkg/dem/Engine/DeusExMachina/ContactStressRecorder.cpp
===
--- trunk/pkg/dem/Engine/DeusExMachina/ContactStressRecorder.cpp
2009-06-24 16:28:58 UTC (rev 1812)
+++ trunk/pkg/dem/Engine/DeusExMachina/ContactStressRecorder.cpp
2009-06-24 17:04:39 UTC (rev 1813)
@@ -9,6 +9,7 @@
 #include ContactStressRecorder.hpp
 #include yade/pkg-common/RigidBodyParameters.hpp
 #include yade/pkg-common/ParticleParameters.hpp
+//#include yade/pkg-common/Force.hpp
 #include yade/pkg-common/Sphere.hpp
 #include yade/pkg-dem/BodyMacroParameters.hpp
 #include yade/pkg-dem/ElasticContactLaw.hpp
@@ -22,35 +23,34 @@
 #include yade/core/MetaBody.hpp
 #include boost/lexical_cast.hpp
 
-CREATE_LOGGER(ContactStressRecorder);
+CREATE_LOGGER ( ContactStressRecorder );
 
-ContactStressRecorder::ContactStressRecorder () : DataRecorder()
-
+ContactStressRecorder::ContactStressRecorder () : DataRecorder()/*, 
actionForce ( new Force )*/
 {
outputFile = ;
interval = 1;
-   
+
height = 0;
width = 0;
depth = 0;
thickness = 0;
-   upperCorner = Vector3r(0,0,0);
-   lowerCorner = Vector3r(0,0,0);
-   
-   sphere_ptr = shared_ptrGeometricalModel (new Sphere);
+   upperCorner = Vector3r ( 0,0,0 );
+   lowerCorner = Vector3r ( 0,0,0 );
+
+   sphere_ptr = shared_ptrGeometricalModel ( new Sphere );
SpheresClassIndex = sphere_ptr-getClassIndex();
-   
+
//triaxCompEng = NULL;
//sampleCapPressEng = new SampleCapillaryPressureEngine;
-   
+
 }
 
 
-void ContactStressRecorder::postProcessAttributes(bool deserializing)
+void ContactStressRecorder::postProcessAttributes ( bool deserializing )
 {
-   if(deserializing)
+   if ( deserializing )
{
-   ofile.open(outputFile.c_str());
+   ofile.open ( outputFile.c_str() );
}
 }
 
@@ -58,36 +58,36 @@
 void ContactStressRecorder::registerAttributes()
 {
DataRecorder::registerAttributes();
-   REGISTER_ATTRIBUTE(outputFile);
-   REGISTER_ATTRIBUTE(interval);
-   
-   REGISTER_ATTRIBUTE(wall_bottom_id);
-   REGISTER_ATTRIBUTE(wall_top_id);
-   REGISTER_ATTRIBUTE(wall_left_id);
-   REGISTER_ATTRIBUTE(wall_right_id);
-   REGISTER_ATTRIBUTE(wall_front_id);
-   REGISTER_ATTRIBUTE(wall_back_id);
-   
-   REGISTER_ATTRIBUTE(height);
-   REGISTER_ATTRIBUTE(width);
-   REGISTER_ATTRIBUTE(depth);
-   REGISTER_ATTRIBUTE(thickness);
-   REGISTER_ATTRIBUTE(upperCorner);
-   REGISTER_ATTRIBUTE(lowerCorner);
+   REGISTER_ATTRIBUTE ( outputFile );
+   REGISTER_ATTRIBUTE ( interval );
 
+   REGISTER_ATTRIBUTE ( wall_bottom_id );
+   REGISTER_ATTRIBUTE ( wall_top_id );
+   REGISTER_ATTRIBUTE ( wall_left_id );
+   REGISTER_ATTRIBUTE ( wall_right_id );
+   REGISTER_ATTRIBUTE ( wall_front_id );
+   REGISTER_ATTRIBUTE ( wall_back_id );
+
+   REGISTER_ATTRIBUTE ( height );
+   REGISTER_ATTRIBUTE ( width );
+   REGISTER_ATTRIBUTE ( depth );
+   REGISTER_ATTRIBUTE ( thickness );
+   REGISTER_ATTRIBUTE ( upperCorner );
+   REGISTER_ATTRIBUTE ( lowerCorner );
+
 }
 
 
 bool ContactStressRecorder::isActivated()
 {
-   return ((Omega::instance().getCurrentIteration() % interval == 0)  
(ofile));
+   return ( ( Omega::instance().getCurrentIteration() % interval == 0 )  
( ofile ) );
 }
 
 
-void 

Re: [Yade-dev] contact login yet again

2009-06-24 Thread Bruno Chareyre
Just one question : does it means all interaction laws (even not 
distant, like dry friction) have to request deletion now?


Bruno


Václav Šmilauer a écrit :

In last few months I had suspicious problems of bodies that obviously
didn't interact even when physically overlapping (one going through
another). As a result of me writing from scratch InsertionSortCollider,
thinking that PersistentSAPCollider might be wrongly detecting contacts,
I have the following conclusions for interactions:

1. Some colliders (jsut 2: InsertionSort and PersistentSAP, which uses
the same algo but is slower ;-) ) only see interactions when either the
AABB's didn't overlap in last step and now do, or the other way
(inversion in the ordering, using the computing terminology).

2. For non-cohesive interactions (those that should exist only if there
is overlap of bodies, therefore of AABBs), we used to delete interaction
by saying I-isReal=false. That returns the interaction back to
potential state, as the collider will set I-isNew=true. If there is
again real overlap, the InterGeom and InterPhys functors will create the
interaction again. If there is no overlap, the collider will delete the
interaction for good at the point the AABBs don't overlap anymore.

3. For cohesive (that is, possibly distant) interactions, this doesn't
work anymore. Suppose a constitutive law wants to delete an interaction
when normal elongation of the contact exceeds some positive value (think
tensile damage). If you use I-isReal=false, then the interaction falls
to the potential state. Now: if the AABBs don't overlap at this point
anymore, the interaction will be in the potential state possibly
forever, since the collider will never see such interaction again, as
the AABBs have already separated _before_ the contact was marked
isReal=false. This slows down the computation by keeping useless
interactions around. (PersistentSAPCollider has an extra loop over
interactions, that detects such cases; but it slows down).

4. If I set I-isReal=false, it doens't follow that the collider will
also set I-isNew=true, as it will not see the interaction unless AABBs
enter/quit the overlap. I-isNew is NOT always equal to
(bool)I-interactionPhysics or (bool)I-interactionGeometry: a once
existing interaction, after setting I-isReal=false, will still have
I-isNew=false. If geometry/physics functor sees such interaction, it
will only UPDATE (not create a new) geometry and physics for the
interactions, i.e. using values of internal variables from the
interaction before!

The solution I created is to hint the collider that an interaction is
not needed anymoer and let it decide whether to really erase it or what
else to do. Instead of saying I-isReal=false, you call
interactions-requestErase(id1,id2) and the collider will, at the next
step, look at the pair; if there is still AABB overlap, the interaction
is kept as potential; if there is no AABB overlap anymore, it will
delete the interaction for good. Then the list of interactions to delete
is cleared. (this solves point 3.)

Moreover, interactions-requestErase will call Interaction::reset()
which will make sure that interactionGeometry, interactionPhysics,
isReal, isNew, ... are reset to the initial state of an interaction that
was never real. (this solves point 4.)

(At this point, I think we are ready to remove haveDistantTransient flag
from the colldiers.)

I will try to go through the code to erradicate all occurences of
isReal=false and such. Maybe we better get rid of isNew as well, instead
of having to keep it in sync with (bool)I-interactionPhysics and (bool)
I-interactionGeometry all the time?

Best regards, Vaclav


___
Mailing list: https://launchpad.net/~yade-dev
Post to : yade-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp

  



--

___
Chareyre Bruno
Maitre de conference

Grenoble INP
Laboratoire 3SR - bureau E145
BP 53 - 38041, Grenoble cedex 9 - France
Tél : 33 4 56 52 86 21
Fax : 33 4 76 82 70 43



___
Mailing list: https://launchpad.net/~yade-dev
Post to : yade-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp