[Yade-dev] [Branch ~yade-dev/yade/trunk] Rev 2820: 1. move value which indicates how far interactions are from normal failing to WirePhys since only...
revno: 2820 committer: Klaus Thoeni branch nick: yade timestamp: Mon 2011-04-18 18:00:23 +1000 message: 1. move value which indicates how far interactions are from normal failing to WirePhys since only WirePM is using it modified: pkg/common/NormShearPhys.hpp pkg/dem/VTKRecorder.cpp pkg/dem/WirePM.hpp -- lp:yade https://code.launchpad.net/~yade-dev/yade/trunk Your team Yade developers is subscribed to branch lp:yade. To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription === modified file 'pkg/common/NormShearPhys.hpp' --- pkg/common/NormShearPhys.hpp 2011-04-18 03:39:47 + +++ pkg/common/NormShearPhys.hpp 2011-04-18 08:00:23 + @@ -9,8 +9,7 @@ virtual ~NormPhys(); YADE_CLASS_BASE_DOC_ATTRS_CTOR(NormPhys,IPhys,"Abstract class for interactions that have normal stiffness.", ((Real,kn,NaN,,"Normal stiffness")) - ((Vector3r,normalForce,Vector3r::Zero(),,"Normal force after previous step (in global coordinates).")) - ((Real,limitNormalFactor,NaN,,"This value indicates on how far from failing the normal interaction is if failure is considered, e.g. actual normal displacement divided by admissible normal displacement multiplied by actual normal force divided by admissible normal force (currently just used in the :yref:`wire particle model`).")), + ((Vector3r,normalForce,Vector3r::Zero(),,"Normal force after previous step (in global coordinates).")), createIndex(); ); REGISTER_CLASS_INDEX(NormPhys,IPhys); === modified file 'pkg/dem/VTKRecorder.cpp' --- pkg/dem/VTKRecorder.cpp 2011-04-18 03:39:47 + +++ pkg/dem/VTKRecorder.cpp 2011-04-18 08:00:23 + @@ -28,6 +28,7 @@ #include #include #include +#include #include @@ -257,7 +258,8 @@ intrForceN->InsertNextValue(fn); intrAbsForceT->InsertNextTupleValue(fs); if(recActive[REC_WPM]) { - wpmLimitNormalFactor->InsertNextValue(phys->limitNormalFactor); + const WirePhys* wirephys = YADE_CAST(I->phys.get()); + wpmLimitNormalFactor->InsertNextValue(wirephys->limitNormalFactor); } } } === modified file 'pkg/dem/WirePM.hpp' --- pkg/dem/WirePM.hpp 2011-04-18 03:39:47 + +++ pkg/dem/WirePM.hpp 2011-04-18 08:00:23 + @@ -68,6 +68,7 @@ ((vector,displForceValues,,(Attr::readonly|Attr::noSave),"Defines the values for force-displacement curve.")) ((vector,stiffnessValues,,(Attr::readonly|Attr::noSave),"Defines the values for the different stiffness (first value corresponds to elastic stiffness kn).")) ((Real,plastD,0,Attr::readonly,"Plastic part of the inter-particular distance of the previous step. \n\n.. note::\n\t Only elastic displacements are reversible (the elastic stiffness is used for unloading) and compressive forces are inadmissible. The compressive stiffness is assumed to be equal to zero (see [Bertrand2005]_).\n\n..")) + ((Real,limitNormalFactor,0.,,"This value indicates on how far from failing the wire is, e.g. actual normal displacement divided by admissible normal displacement multiplied by actual normal force divided by admissible normal force.")) , createIndex(); , ___ 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] [Branch ~yade-dev/yade/trunk] Rev 2819: 1. correct affiliation in doc/sphinx/conf.py
Done! On Mon, 18 Apr 2011 04:15:25 pm Bruno Chareyre wrote: > > 3. add value which indicates how far interactions are from normal > > failing (currently just used in WirePM) > > > > modified: > > pkg/common/NormShearPhys.hpp > > Sorry Klaus, could you revert this please? > Have a look here: https://yade-dem.org/doc/yade.wrapper.html#iphys > > Basically, you added a parameter to all interactions in Yade, which is > useless for all but one class. > If you need this additional data, better add it to the class that needs > it (WirePhys). > > Bruno > > ___ > 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 -- Dr. Klaus Thoeni - Centre for Geotechnical and Materials Modelling Civil, Surveying and Environmental Engineering - Engineering Building EA The University of Newcastle, Callaghan, NSW 2308, Australia web: http://www.newcastle.edu.au/research-centre/cgmm phone: +61 (0)2 4921 5118 ___ 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] [Bug 764344] [NEW] Replace wiki main page by sphinx main page
Public bug reported: Sphinx main page should be opened by https://yade-dem.org/ address. Some changes in sphinx are needed. ** Affects: yade Importance: Wishlist Status: New ** Changed in: yade Importance: Undecided => Wishlist -- You received this bug notification because you are a member of Yade developers, which is the registrant for Yade. https://bugs.launchpad.net/bugs/764344 Title: Replace wiki main page by sphinx main page Status in Yet Another Dynamic Engine: New Bug description: Sphinx main page should be opened by https://yade-dem.org/ address. Some changes in sphinx are needed. ___ 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] [Branch ~yade-dev/yade/trunk] Rev 2818: last correction for simple scene energy tracking example - I forgot to commit changes in Cohesive...
Bruno Chareyre said: (by the date of Mon, 18 Apr 2011 08:08:41 +0200) > > message: > > last correction for simple scene energy tracking example - I forgot to > > commit changes in CohesiveFrictionalContactLaw > > but in fact maybe better if those methods for calculating elastic normal > > & shear energy would be moved somewhere else, maybe to shop? I'm not sure. > > I think it is consistent to define energies in law functor since contact > energy terms can be different with different laws (and shop is > over-crowded already). > The only annoying thing here is that you add to duplicate (almost) > functions that were already in ElasticContactLaw, a simpler 3D version > of CFL. > I'm wondering if making CFL inherit from ElasticContactLaw would break > dispatching methods... What do you think? Hi Bruno, yes, I think that doing inheritance here would be an optimal approach. I am not sure if that's gonna work with dispatching. We will see. -- Janek Kozicki http://janek.kozicki.pl/ | ___ 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] [Branch ~yade-dev/yade/trunk] Rev 2822: - cell volume update was disabled -> enable again
revno: 2822 committer: Bruno Chareyre branch nick: yade timestamp: Mon 2011-04-18 20:10:20 +0200 message: - cell volume update was disabled -> enable again modified: pkg/dem/FlowEngine.cpp -- lp:yade https://code.launchpad.net/~yade-dev/yade/trunk Your team Yade developers is subscribed to branch lp:yade. To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription === modified file 'pkg/dem/FlowEngine.cpp' --- pkg/dem/FlowEngine.cpp 2011-04-08 11:15:34 + +++ pkg/dem/FlowEngine.cpp 2011-04-18 18:10:20 + @@ -473,8 +473,9 @@ } dVol=cell->info().volumeSign*(newVol - cell->info().volume()); eps_vol_max = max(eps_vol_max, abs(dVol/newVol)); + cell->info().dv() = (!cell->info().Pcondition)?dVol*invDeltaT:0; -// cell->info().volume() = newVol; + cell->info().volume() = newVol; // if (Debug) cerr<<"v/dv : "
[Yade-dev] [Branch ~yade-dev/yade/trunk] Rev 2821: - small fixes in references
revno: 2821 committer: Bruno Chareyre branch nick: yade timestamp: Mon 2011-04-18 20:09:42 +0200 message: - small fixes in references modified: doc/yade-articles.bib doc/yade-conferences.bib -- lp:yade https://code.launchpad.net/~yade-dev/yade/trunk Your team Yade developers is subscribed to branch lp:yade. To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription === modified file 'doc/yade-articles.bib' --- doc/yade-articles.bib 2011-01-24 17:05:56 + +++ doc/yade-articles.bib 2011-04-18 18:09:42 + @@ -299,8 +299,18 @@ journal = {Powder Technology}, volume = {In Press}, year = {2010}, - doi = {DOI: 10.1016/j.powtec.2010.08.056}, + doi = {10.1016/j.powtec.2010.08.056}, author = {J.-F. Jerier and B. Hathong and V. Richefeu and B. Chareyre and D. Imbault and F.-V. Donze and P. Doremus} } +@article{Dang2010125, + title = "Evaluating the performance of an explicit dynamic relaxation technique in analyzing non-linear geotechnical engineering problems", + journal = "Computers and Geotechnics", + volume = "37", + number = "1-2", + pages = "125 - 131", + year = "2010", + doi = "DOI: 10.1016/j.compgeo.2009.08.004", + author = "Hoang K. Dang and Mohamed A. Meguid" +} === modified file 'doc/yade-conferences.bib' --- doc/yade-conferences.bib 2011-03-28 17:05:23 + +++ doc/yade-conferences.bib 2011-04-18 18:09:42 + @@ -184,13 +184,13 @@ month={July} } - @inproceedings{Chareyre2009, title={Micro-statics and micro-kinematics of capillary phenomena in dense granular materials}, - author={Chareyre B., and Scholtès L.}, - booktitle={Powders and Grains 2009 (Golden, USA)}, + author={Chareyre B. and Scholtès L.}, + Booktitle = {{POWDERS AND GRAINS 2009: Proceedings of the 6th International Conference on Micromechanics of Granular Media. AIP Conference Proceedings}}, year={2009}, month={July}, + doi = {10.1063/1.3180083}, pages={927--930} } @@ -203,9 +203,6 @@ pages={927--930} } - - - @inproceedings{Hicher2009, title={On the capillary stress tensor in wet granular materials}, author={Hicher P.-Y. and Scholtès L. and Chareyre B. and Nicot F. and Darve F.}, ___ 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] [Bug 729079] Re: Performance optimization of InsertionSortCollider
Ok, so you don't need to create a branch via launchpad interface finally. You just type "bzr push --no-strict lp:~bruno-chareyre/yade/collide", and it creates a branch called "collide". You can get this branch with "bzr branch lp:~bruno- chareyre/yade/collide". There are different sort of the changes (I'll need to clean before merging): - 1. some are between #ifdef ORI_VERLET guards (mostly those adding some data to bounds and engines), ORI_VERLET is defined by default, in Bound.hpp - 2. some are hardcoded and apply always (whatever nBin, ORI_VERLET, Collider::oriVerlet) - 3. some are activated or not at runtime, depending on attribute oriVerlet of the collider. If oriVerlet=false (true by default), the old bins algorithm is used, but it is still improved on the basis of 1 and 2. Using default behaviour of the branch will give some of the best performance according to my tests (using the default verletDist=-0.15), although verletDist<-0.15 can give better performance in some case (very high number of particles). The best speedup is apparently obtained with 100k particles and more, but I didn't do any serious benchmark yet. Any feedback welcome. -- You received this bug notification because you are a member of Yade developers, which is the registrant for Yade. https://bugs.launchpad.net/bugs/729079 Title: Performance optimization of InsertionSortCollider Status in Yet Another Dynamic Engine: New Bug description: Sergei Dorofeenko (https://launchpad.net/~sergei.dorofeenko) found, that InsertionSortCollider is probably is a "bottle neck" in simulations with >10^5 number of particles even in many-threads mode. http://www.mail-archive.com/yade-dev@lists.launchpad.net/msg06573.html Сitation: "...I did a perfomance test for parallel mode and results in no good. Performance boost only about 40% from 1 thread to 4 thread for 200k particles... Cause is a non-parallelised InsertionSortCollider, who need about 80% time with 4 threads. Results attached." ___ 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] makeing yade single-threaded by default
Hi guys, sorry to wake up so late, but, I tried to find info concerning the -j/ --jobs option and could not really sort it all due to my lack of Linux oriented knowledge... As I understand, YADE now run 1 thread (job?) per core. Nonetheless, what would be the command to make it run 1 thread over several/all cores in order to speed up the calculation (if it is the right thing to do for this purpose)? Thanks in advance Luc 2011/1/30 Anton Gladky > Hi, > > In most of my simulations I use 1 thread/core and find it the most > optimal solution. Also it helps to get completely identical results > excluding openmp-instability. And only on a very large simulations > (>10^5 particles) it is reasonable to use 2-3 threads, no more. > > So, I personally agree. > > Anton > > > > > 2011/1/29 Václav Šmilauer : > > Hi there, > > > > due to numerous performance problems when Yade uses the default number of > > threads (one thread per core), I think it would be better to make run > > single-threaded by default, so that unknowledgeable people are not hit. > > Those who know assign the right number of threads anyway. > > > > It would concern both the main program, and also the batch system, which > > would still use all cores, but 1 core/job. > > > > Thoughts? > > > > v. > > > > ___ > > 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 > > > > ___ > 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 > ___ 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] [Branch ~yade-dev/yade/trunk] Rev 2823: 1. update WirePM scripts in scripts/test/WireMatPM
revno: 2823 committer: Klaus Thoeni branch nick: yade timestamp: Tue 2011-04-19 16:08:59 +1000 message: 1. update WirePM scripts in scripts/test/WireMatPM 2. add a simple example for interaction of FrictMat and WireMat: examples/WireMatPM/wirecontacttest.py added: examples/WireMatPM/wirecontacttest.py modified: examples/WireMatPM/wiretensiltest.py scripts/test/WireMatPM/net-2part-displ-unloading.py scripts/test/WireMatPM/net-2part-displ.py scripts/test/WireMatPM/net-2part-strain.py -- lp:yade https://code.launchpad.net/~yade-dev/yade/trunk Your team Yade developers is subscribed to branch lp:yade. To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription === added file 'examples/WireMatPM/wirecontacttest.py' --- examples/WireMatPM/wirecontacttest.py 1970-01-01 00:00:00 + +++ examples/WireMatPM/wirecontacttest.py 2011-04-19 06:08:59 + @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +from yade import utils, plot, pack, qt + + define parameters for the net +# wire diameter +d = 2.7/1000. +# particle radius +radius = d*4. +# define piecewise lineare stress-strain curve [Pa] +strainStressValues=[(0.0019230769,2.5e8),(0.0192,3.2195e8),(0.05,3.8292e8),(0.15,5.1219e8),(0.25,5.5854e8),(0.3,5.6585e8),(0.35,5.6585e8)] + +# elastic material properties +particleVolume = 4./3.*pow(radius,3)*pi +particleMass = 3.9/1000. +density = particleMass/particleVolume +young = strainStressValues[0][1] / strainStressValues[0][0] +poisson = 0.3 + + + material definition +netMat = O.materials.append( WireMat( young=young,poisson=poisson,frictionAngle=radians(30),density=density,isDoubleTwist=True,diameter=d,strainStressValues=strainStressValues,lambdaEps=0.4,lambdak=0.66) ) +wireMat = O.materials.append( WireMat( young=young,poisson=poisson,frictionAngle=radians(30),density=density,isDoubleTwist=False,diameter=3.4/1000,strainStressValues=strainStressValues ) ) + +blocMat = O.materials.append(FrictMat(young=60e3,poisson=0.15,frictionAngle=radians(30),density=44.5/((4./3.*pi*0.02**3)*1576.))) + + + define parameters for the net packing +# mesh geometry +mos = 0.08 +a = 0.04 +b = 0.04 +# wire diameter +d = 2.7/1000. +# net dimension +cornerCoord=[0,0,0] +Lx = 2. +Ly = 2. +# properties of particles +kw = {'color':[1,1,0],'wire':True,'highlight':False,'fixed':False,'material':netMat} + + +# create packing for net +[netpack,lx,ly] = pack.hexaNet( radius=radius, cornerCoord=cornerCoord, xLength=Lx, yLength=Ly, mos=mos, a=a, b=b, startAtCorner=True, isSymmetric=False, **kw ) +O.bodies.append(netpack) + + + get bodies for single wire at the boundary in y-direction and change properties +bb = utils.uniaxialTestFeatures(axis=0) +negIds,posIds=bb['negIds'],bb['posIds'] + +for id in negIds: + O.bodies[id].material = O.materials[wireMat] + O.bodies[id].shape.color = [0,0,1] +for id in posIds: + O.bodies[id].material = O.materials[wireMat] + O.bodies[id].shape.color = [0,0,1] + + + define engines to create link +interactionRadius=2.8 +O.engines=[ + ForceResetter(), + InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=interactionRadius,label='aabb')]), + InteractionLoop( + [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=interactionRadius,label='Ig2ssGeom')], + [Ip2_WireMat_WireMat_WirePhys(linkThresholdIteration=1,label='wire_wire'),Ip2_FrictMat_FrictMat_FrictPhys(label='block_wire')], + [Law2_ScGeom_WirePhys_WirePM(linkThresholdIteration=1,label='Law_1'),Law2_ScGeom_FrictPhys_CundallStrack(label='Law_2')] + ), + NewtonIntegrator(damping=0.), +] + + + define additional vertical interactions at the boundary for boundary wire +for i in range(24)[1::2]: # odd - start at second item and take every second item + utils.createInteraction(negIds[i],negIds[i+1]) +del posIds[1] +posIds.append(1) +for i in range(25)[::2]: # even - start at the beginning at take every second item + utils.createInteraction(posIds[i],posIds[i+1]) + + + time step definition for first time step to create links +O.step() + + +# delete horizontal interactions for corner particles +bb = utils.uniaxialTestFeatures(axis=1) +negIds,posIds,axis,crossSectionArea=bb['negIds'],bb['posIds'],bb['axis'],bb['area'] + + +# delete some interactions +O.interactions.erase(0,50) +O.interactions.erase(0,51) +O.interactions.erase(1,1250) +O.interactions.erase(1,1251) + + time step definition for deleting some links which have been created by the Ig2 functor +O.step() + + + initializes now the interaction detection factor +aabb.aabbEnlargeFactor=-1. +Ig2ssGeom.interactionDetectionFactor=-1. + + + define boundary conditions +fixedIds=negIds +movingIds=posIds + +for id in fixedIds: + O.bodies[id].shape.color = [1,0,0] + O.bodies[id].state.blockedDOFs='xyzXYZ' +for id in movingIds: + O.bodies[id].shape.color = [1,0,0] + O.bodies[id].state.blockedDOFs='xyzXYZ' + + + import block as a sphere +bloc=O.bodies.appen
Re: [Yade-dev] makeing yade single-threaded by default
Hi Luc, try execute yade with the option '-j6', for example './yade -j6 yourfile.py' to run you calculation with 6 cores. Cheers Klaus On Tue, 19 Apr 2011 12:39:38 pm luc scholtes wrote: > Hi guys, > > sorry to wake up so late, but, I tried to find info concerning the -j/ > --jobs option and could not really sort it all due to my lack of Linux > oriented knowledge... As I understand, YADE now run 1 thread (job?) per > core. Nonetheless, what would be the command to make it run 1 thread over > several/all cores in order to speed up the calculation (if it is the right > thing to do for this purpose)? > > Thanks in advance > > Luc > > 2011/1/30 Anton Gladky > > > Hi, > > > > In most of my simulations I use 1 thread/core and find it the most > > optimal solution. Also it helps to get completely identical results > > excluding openmp-instability. And only on a very large simulations > > (>10^5 particles) it is reasonable to use 2-3 threads, no more. > > > > So, I personally agree. > > > > Anton > > > > 2011/1/29 Václav Šmilauer : > > > Hi there, > > > > > > due to numerous performance problems when Yade uses the default number > > > of threads (one thread per core), I think it would be better to make > > > run single-threaded by default, so that unknowledgeable people are not > > > hit. Those who know assign the right number of threads anyway. > > > > > > It would concern both the main program, and also the batch system, > > > which would still use all cores, but 1 core/job. > > > > > > Thoughts? > > > > > > v. > > > > > > ___ > > > 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 > > > > ___ > > 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 -- Dr. Klaus Thoeni - Centre for Geotechnical and Materials Modelling Civil, Surveying and Environmental Engineering - Engineering Building EA The University of Newcastle, Callaghan, NSW 2308, Australia web: http://www.newcastle.edu.au/research-centre/cgmm phone: +61 (0)2 4921 5118 ___ 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