← Back to team overview

yade-users team mailing list archive

Re: BexContainer not thread-synchronized; call sync() first!

 

Hi,

  I updated the ThreeDTriaxialEngine for the last bazaar version.

The problem with "bex" (forces) access was related to the calling of TriaxialStressController::computeStressStrain and TriaxialStressController::ComputeUnbalancedForce from ThreeDTriaxialEngine. As actually we don't need to call these fonctions in ThreeDTriaxialEngine I removed them.

I will commit that as soon as I can.

  Best,

  Luc

nejib hadda a écrit :
Hi evrybody !

I fixed to ThreeDtriaxial test on the 0.20.2 version of Yade.

Bruno, I am not used to bazar version and I've never been working on it,
but since you say that it is newer than the one I have and currently
evrybody is developping it, I'm going to switch on it.




Le vendredi 19 février 2010 à 12:01 +0100, nejib hadda a écrit :
Hi,
I fixed the problem of sync() for yade 0.20.2 in ThreeDTriaxialEngine by
adding:

void ThreeDTriaxialEngine::updateParameters ( MetaBody * ncb )

Now yade can load the xml file and run it until it comes to write data
to the Wallstresses file:

For example, in my xml file I ask Yade to records data evry 50
iterations, and the current iteration in my xml file is 3221: Yade
crashes at the 3251st iteration but not for a sync() problem but rather
it throws me an error message related to The  TriaxialStateRecorder.cpp
file

"TriaxialStateRecorder::action (this=0x9ec08f8, ncb=0xb44e220) at
pkg/dem/Engine/DeusExMachina/TriaxialStateRecorder.cpp:89"

the problem is located here:

void TriaxialStateRecorder::action (MetaBody * ncb )
{.
 .
 .
if ( ! ( Omega::instance().getCurrentIteration() %
triaxialCompressionEngine->computeStressStrainInterval == 0 ) )
		
		triaxialCompressionEngine->computeStressStrain ( ncb );
.
.
.

In the Xml file, I ommited the TriaxialStateRecorder engine, and load it
in yade it runs with no crashes.

May be someone can Have an idea to fix this problem, Thanks !












Le jeudi 18 février 2010 à 20:18 +0100, Václav Šmilauer a écrit :
I'm using the new version of yade 0.20.2, I replaced the triaxial
compression engine by the TreeDTriaxialEngine.
0.20.2 is quite old, given changes we've done recently...

Can you tell me how can I sync'ing forces in this engine!
Have a look at TriaxialStressController::applyCondition(MetaBody* ncb),
it is just a single line:

	ncb->bex.sync();

you can put it to ThreeDTriaxialEngine, although that one doesn't access
"bex" (forces) at all; it looks like bug elsewhere, but you would have
track down where exactly is this bex being read.
v


_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

--
Luc Sibille

Université de Nantes - Laboratoire GeM UMR CNRS

IUT de Saint Nazaire
58, rue Michel-Ange - BP 420
44606 Saint-Nazaire Cedex, France

Tel: +33 (0)2 40 17 81 78



Follow ups

References