[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...

2011-04-18 Thread noreply

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

2011-04-18 Thread Klaus Thoeni
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

2011-04-18 Thread Anton Gladky
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...

2011-04-18 Thread Janek Kozicki
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

2011-04-18 Thread noreply

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

2011-04-18 Thread noreply

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

2011-04-18 Thread Chareyre
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

2011-04-18 Thread luc scholtes
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

2011-04-18 Thread noreply

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

2011-04-18 Thread Klaus Thoeni
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