Re: [Yade-users] [Question #700434]: InsertionSortCollider SortAxis : does axis choice make a difference to speed?

2022-02-09 Thread Daniel Kiracofe
Question #700434 on Yade changed:
https://answers.launchpad.net/yade/+question/700434

Status: Answered => Solved

Daniel Kiracofe confirmed that the question is solved:
Bruno, thank you for reply.  I decided to try a few experiments.  I
created a highly elongated packing with an aspect ratio of 1:7:49. All
particles were spheres with same diameter generated by  makeCloud from
yade.pack.SpherePack().  There were approximately 60,000 total
particles.  I used timing.stats() to pull out the time of the initial
collider run.  I ran both single threaded and with 4 threads to compare,
but single threaded actually seemed to be a little faster so I'm
reporting that here.  Results:

sortAxis = 0 (short axis), time = 11.8 s
sortAxis = 1 (medium axis), time = 1.87 s
sortAxis = 2 (long axis), time = 0.39s

So actually a factor of 30 difference between the different axes.  I
tried a few variations on this with different aspect ratios and
different number of particles, but general conclusion was that the long
axis was MUCH faster.

This highly elongated packing is perhaps a little uncommon in the
general community, but if anyone else is using something like this, it
could be useful information to know.

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

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


[Yade-users] [Question #700561]: Convert script to Openmpi

2022-02-09 Thread Luis Barbosa
New question #700561 on Yade:
https://answers.launchpad.net/yade/+question/700561

Dear all,

I am new on running Yade on multiple nodes using openmpi.
Still checking how to convert the code below to run in mpi.

Runnning the code below I get the messsage: 
Friction:  1  porosity: 1.0 None
Master: single-core, fall back to O.run() 

Probably I am not using O.run and mpirun correctly.
If anyone with more experimence see what I am duing wrong, please let me know.

Cheers,


#!/usr/bin/python
# -*- encoding=utf-8 -*-
#*
#  Copyright (C) 2010 by Bruno Chareyre  *
#  bruno.chareyre_at_grenoble-inp.fr *
#*
#  This program is free software; it is licensed under the terms of the  *
#  GNU General Public License v2 or later. See file LICENSE for details. *
#*/
import os
from yade import mpy as mp
from yade import pack
from yade import bodiesHandling
from yade import export
from yade import utils
from yade import ymport
import math


###   DEFINING VARIABLES AND MATERIALS   ###


# The following 5 lines will be used later for batch execution
nRead=readParamsFromTable(
num_spheres=3000,# number of spheres
compFricDegree = 1, # contact friction during the confining phase
key='_triax_base_', # put you simulation's name here
unknownOk=True
)
from yade.params import table

num_spheres=table.num_spheres# number of spheres
key=table.key

targetPorosity = 0.35 #the porosity we want for the packing
compFricDegree = table.compFricDegree # initial contact friction during the 
confining phase (will be decreased during the REFD compaction process)
finalFricDegree = 30 # contact friction during the deviatoric loading
rate=0 # loading rate (strain rate)
damp=0.8 # damping coefficient
stabilityThreshold=0.01 # we test unbalancedForce against this value in 
different loops (see below)
#2e4+70e4medio 1e4+70e4bom 1e4+60e4bom 3e4+90e4+w3,1,-1-the best
young=20e5 # contact stiffness200e4
young2=20e5
youngcoat=20e5
bondstr=0.3e3#2e7
bondstr2=0.3e3
bondstrcoat=1e3


## create materials for spheres and plates
mat=O.materials.append(JCFpmMat(type=1,young=young,poisson=0.3,frictionAngle=radians(compFricDegree),density=2000,tensileStrength=bondstr,cohesion=bondstr,jointNormalStiffness=0,jointShearStiffness=0,jointCohesion=bondstr,jointFrictionAngle=radians(0),jointDilationAngle=0.0,label='spheres'))
O.materials.append(JCFpmMat(type=1,young=20e7,poisson=0.3,frictionAngle=radians(0),density=2600,tensileStrength=0,cohesion=0,jointNormalStiffness=0,jointShearStiffness=0,jointCohesion=0,jointFrictionAngle=radians(0),jointDilationAngle=0.0,label='walls'))
O.materials.append(JCFpmMat(type=1,young=youngcoat,poisson=0.3,frictionAngle=radians(1),density=1500,tensileStrength=bondstrcoat,cohesion=bondstrcoat,jointNormalStiffness=0,jointShearStiffness=0,jointCohesion=bondstrcoat,jointFrictionAngle=radians(0),jointDilationAngle=0.0,label='spherescoat'))

## create walls around the packing

mn,mx=Vector3(0,0,0),Vector3(0.0101,0.0101,0.0101)
mnbox,mxbox=Vector3(0,0,0),Vector3(0.0101,0.0115,0.0101)
walls=aabbWalls([mnbox,mxbox],thickness=0,material='walls')
wallIds=O.bodies.append(walls)

O.bodies.append(ymport.textExt("matrix_vtest.txt", format='x_y_z_r', 
shift=Vector3(0,0,0), scale=1.0,material='spherescoat',color=(0,1,1)))


Particle substitution by large 
aggregate##

bodid=[]
a=[]
for b in O.bodies:
if b and isinstance(b.shape,Sphere):
#   print (b.shape.radius)
if b.shape.radius==0.0005:
bodid.append(b.id)
a.append(b.state.pos)

i=0
for p in bodid:
t=a[i]
f1=O.bodies.append(ymport.textExt("agg5e4_5e5.txt", format='x_y_z_r', 
shift=t-Vector3(0,0,0), scale=1.0,material='spheres',color=(0,1,1)))
O.bodies.erase(bodid[i])
i=i+1


bodidd=[]
aa=[]
for bb in O.bodies:# in sp:
if bb and isinstance(bb.shape,Sphere):
#   print (bb.shape.radius)
if bb.shape.radius==0.0003:
bodidd.append(bb.id)
aa.append(bb.state.pos)

ii=0
for pp in bodidd:
tt=aa[ii]
f2=O.bodies.append(ymport.textExt("agg3e4_3e5.txt", format='x_y_z_r', 
shift=tt-Vector3(0,0,0), scale=1.0,material='spheres',color=(0,1,1)))
O.bodies.erase(bodidd[ii])
ii=ii+1



bodiddd=[]
aaa=[]
for bbb in O.bodies:# in sp:
if bbb and isinstance(bbb.shape,Sphere):
#   print (bbb.shape.radius)
if bbb.shape.radius==0.0002:
bodiddd.append(bbb.id)
  

Re: [Yade-users] [Question #700315]: Open MPI - spawn processes

2022-02-09 Thread Luis Barbosa
Question #700315 on Yade changed:
https://answers.launchpad.net/yade/+question/700315

Luis Barbosa posted a new comment:
Hi all, just to inform that we solved this:

Solution was to install OpenMpi 4.1.0 on my home directory on the
cluster.

Here are the steps I performed:

Download 
https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.0.tar.gz

open a console on the cluster in your home folder:
cd ~
mkdir openMPI
cd openMPI

> copy or download openmpi-4.1.0.tar.gz tar ball into the openMPI
folder, and unpack it

gtar zxf openmpi-4.1.0.tar.gz
cd openmpi-4.1.0

> create a output folder

mkdir /home/pires/bin/openmpi

> create a build folder, and compile openMPI

mkdir build
cd build
../configure --prefix=/home/pires/bin/openmpi --with-slurm --with-pmi
make all 
make install

--

at this point you have openMPI 4.1.0 with slurm support installed into your 
home. 
Next step is to make your own module.

mkdir /home/../privatemodules
cd /home/.../privatemodules

A module file is just a bunch of linux environment variables.

Hope it can help someone in this situation.
Luis

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

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


Re: [Yade-users] [Question #700531]: Contacts in function getStress()

2022-02-09 Thread Jérôme Duriez
Question #700531 on Yade changed:
https://answers.launchpad.net/yade/+question/700531

Jérôme Duriez posted a new comment:
If one goes back to the analytical derivations of this "Love-Weber"
formula, one should see contacts with boundary bodies should probably
not be included at all. Since boundary bodies do not belong to the
material whose stress we want to compute.

It is somewhat discussed in
https://www.icevirtuallibrary.com/doi/10.1680/jgeot.15.P.113 (or
https://hal.archives-ouvertes.fr/hal-01868739), around Eq. (6) which
gives a stress expression that better accounts for boundary effects, in
my opinion.

(Not implemented in public YADE, at the moment)

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

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


Re: [Yade-users] [Question #700531]: Contacts in function getStress()

2022-02-09 Thread Jan Stránský
Question #700531 on Yade changed:
https://answers.launchpad.net/yade/+question/700531

Jan Stránský posted a new comment:
> the brach vector is calculated by the position of the two objects

currently the code is like that.
Therefore, it is not suitable for wall-sphere contact, where the branch should 
(?) be perpendicular to the wall (not related to wall.state.pos, which is some 
"random" point in the wall plane)
Cheers
Jan

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

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


Re: [Yade-users] [Question #700369]: Circular setting

2022-02-09 Thread Jan Stránský
Question #700369 on Yade changed:
https://answers.launchpad.net/yade/+question/700369

Jan Stránský posted a new comment:
'\XC2' is "Latin Capital Letter A With Circumflex" [3].
It is not present in the code I provided, so most likely you somehow added it 
it to the script.
Cheers
Jan

[3] https://www.codetable.net/hex/c2

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

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