[Yade-users] [Question #693090]: Cohesive contact between a pfacet surface and a sphere

2020-09-25 Thread Ali Rafiee
New question #693090 on Yade:
https://answers.launchpad.net/yade/+question/693090

Hi every one,

I would like to know is there a method to put a cohesive contact condition 
between a pfacet surface and spheres?

It's working for a gridconnection and spheres but I try for a sphere and a 
pfacet surface and I could not find a way for that, as show in below simple 
code.

Can you give me some suggestion and idea?

Thanks a lot


###
from builtins import range
from yade import qt,plot
from yade.gridpfacet import *

phi=20.
E=3.*1e8
r=0.005

O.engines=[
  ForceResetter(),
  InsertionSortCollider([
Bo1_Sphere_Aabb(),
Bo1_GridConnection_Aabb(),
Bo1_PFacet_Aabb(),
  ]),
  InteractionLoop([
Ig2_Sphere_Sphere_ScGeom(),
Ig2_Sphere_GridConnection_ScGridCoGeom(),
Ig2_Sphere_PFacet_ScGridCoGeom(),
Ig2_GridNode_GridNode_GridNodeGeom6D(),
Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
Ig2_GridConnection_PFacet_ScGeom(),
Ig2_PFacet_PFacet_ScGeom(),
  ],
  [

Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False),
#Ip2_FrictMat_FrictMat_FrictPhys()
  ],
  [
Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),
Law2_ScGridCoGeom_CohFrictPhys_CundallStrack(),
  ]
  ),
  GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1,label='ts'),
  NewtonIntegrator(gravity=(0,0,-9.81),damping=.5,label='newton'),
]

O.materials.append( CohFrictMat( 
young=0.05*E,poisson=0.3,density=2650,frictionAngle=radians(phi),normalCohesion=3e100,shearCohesion=3e100,momentRotationLaw=True,label='cohfrictMat'
 ) )



O.materials.append( FrictMat( 
young=E,poisson=0.5,density=260050,frictionAngle=radians(phi),label='frictMat' 
) )

# SPHERES
O.bodies.append( 
sphere(center=(Vector3(0.2828,0.5,0.4253)),radius=0.1,material='cohfrictMat',fixed=False)
 )


# GRIDS
raduis1=0.001

pf1=O.bodies.append(gridNode([ 0, .0, 
0],raduis1,wire=False,fixed=True,material='cohfrictMat',color=[0,0,25]))
pf2=O.bodies.append(gridNode([ 1, .0, 
1],raduis1,wire=False,fixed=True,material='cohfrictMat',color=[0,0,25]))
pf3=O.bodies.append(gridNode([ 1, 1, 
1],raduis1,wire=False,fixed=True,material='cohfrictMat',color=[0,0,25]))
pf4=O.bodies.append(gridNode([ 0, 1, 
0],raduis1,wire=False,fixed=True,material='cohfrictMat',color=[0,0,25]))


O.bodies.append( gridConnection(pf1,pf2, 
raduis1,material='cohfrictMat',color=[0,0,25] ))
O.bodies.append( gridConnection(pf2,pf4, 
raduis1,material='cohfrictMat',color=[0,0,25] ))
O.bodies.append( gridConnection(pf4,pf1, 
raduis1,material='cohfrictMat',color=[0,0,25] ))

O.bodies.append( gridConnection(pf2,pf3, 
raduis1,material='cohfrictMat',color=[0,0,25] ))
O.bodies.append( gridConnection(pf3,pf4, 
raduis1,material='cohfrictMat',color=[0,0,25] ))

O.bodies.append( 
pfacet(pf1,pf2,pf4,wire=False,material='cohfrictMat',color=[0,0,25] ))
O.bodies.append( 
pfacet(pf2,pf3,pf4,wire=False,material='cohfrictMat',color=[0,0,25] ))



qt.Controller()
qtv = qt.View()
qtr = qt.Renderer()
qtr.bgColor=[1,1,1]
Gl1_Sphere.stripes=1
O.saveTmp()


-- 
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 #692040]: How to fix a Pfacet with node

2020-07-27 Thread Ali Rafiee
Question #692040 on Yade changed:
https://answers.launchpad.net/yade/+question/692040

Ali Rafiee confirmed that the question is solved:
Thanks Klaus Thoeni, that solved my question.

-- 
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 #692040]: How to fix a Pfacet with node

2020-07-27 Thread Ali Rafiee
Question #692040 on Yade changed:
https://answers.launchpad.net/yade/+question/692040

Status: Answered => Solved

Ali Rafiee confirmed that the question is solved:
Hi Klaus,
Thank you very much.

So, There is not a way to fix an element inside a clump.

Ali

-- 
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 #692040]: How to fix a Pfacet with node

2020-07-24 Thread Ali Rafiee
New question #692040 on Yade:
https://answers.launchpad.net/yade/+question/692040

Hi everybody,

I have a problem with fixing (blocking) a pfacet with nodes.
in fact, I wanted to fix a pfacet just from bottom part, so I fix the below 
nodes, but this method did not work.
I do not want to completely fix the pfacet, just only lower part.

here is my simple code:


###
from yade import qt, pack, utils, ymport, export
from yade.gridpfacet import *
import gts, os.path, locale
import math




 Engines 
O.engines=[
ForceResetter(),
InsertionSortCollider([
Bo1_GridConnection_Aabb(),Bo1_Sphere_Aabb(),Bo1_PFacet_Aabb(),
]),
InteractionLoop([
Ig2_Sphere_Sphere_ScGeom(),
Ig2_Sphere_GridConnection_ScGridCoGeom(),
Ig2_Sphere_PFacet_ScGridCoGeom(),
Ig2_GridNode_GridNode_GridNodeGeom6D(),
Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
Ig2_GridConnection_PFacet_ScGeom(),
#Ig2_PFacet_PFacet_ScGeom(),

],
[

Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False),
   # internal cylinder physics
Ip2_FrictMat_FrictMat_FrictPhys()   # physics for external 
interactions, i.e., cylinder-cylinder interaction
],
[   Law2_ScGeom_FrictPhys_CundallStrack(), # contact law for 
sphere-sphere
Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),# contact law 
for "internal" cylinder forces
Law2_ScGridCoGeom_FrictPhys_CundallStrack(),# contact law 
for cylinder-sphere
Law2_GridCoGridCoGeom_FrictPhys_CundallStrack() # contact law 
for cylinder-cylinder interaction
]
),
GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1,label='ts'),
NewtonIntegrator(gravity=(0,0,-9.81),damping=.1,label='newton'),

]

 

youngm=1.3e11
poissonm=0.2
densitym=5300*100




## 
O.materials.append(CohFrictMat(young=200e9,poisson=0.3,density=5600,frictionAngle=radians(20),normalCohesion=1e20,shearCohesion=1e20,momentRotationLaw=True,label='cMatx'))
O.materials.append(FrictMat(young=200e9,poisson=0.3,density=5600,frictionAngle=radians(20),label='fMatx'))
##

##
 
newob0=len(O.bodies)
print(newob0)

raduis_1=0.005

pf_1_1=O.bodies.append(gridNode([ 8.2928,-0.1, 
.3],raduis_1,wire=False,fixed=False,material='cMatx',color=[0,0,25]))

pf_1_2=O.bodies.append(gridNode([ 8.4928,-0.1, 
.3],raduis_1,wire=False,fixed=False,material='cMatx',color=[0,0,25]))

pf_1_3=O.bodies.append(gridNode([ 8.4928,-0.1, 
0],raduis_1,wire=False,fixed=True,material='cMatx',color=[0,0,25]))


pf_1_4=O.bodies.append(gridNode([ 8.2928,-0.1, 
0],raduis_1,wire=False,fixed=True,material='cMatx',color=[0,0,25]))


pf_1_5=O.bodies.append(gridNode([ 8.2928, 0, 
.3],raduis_1,wire=False,fixed=False,material='cMatx',color=[0,0,25]))

pf_1_6=O.bodies.append(gridNode([ 8.4928, 0, 
.3],raduis_1,wire=False,fixed=False,material='cMatx',color=[0,0,25]))

pf_1_7=O.bodies.append(gridNode([ 8.4928, 0, 
0],raduis_1,wire=False,fixed=True,material='cMatx',color=[0,0,25]))


pf_1_8=O.bodies.append(gridNode([ 8.2928, 0, 
0],raduis_1,wire=False,fixed=True,material='cMatx',color=[0,0,25]))






O.bodies.append( gridConnection(pf_1_1,pf_1_2, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_2,pf_1_3, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_3,pf_1_1, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_1,pf_1_4, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_4,pf_1_3, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_5,pf_1_6, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_6,pf_1_7, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_7,pf_1_5, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_5,pf_1_8, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_8,pf_1_7, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_4,pf_1_8, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_5,pf_1_4, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_5,pf_1_1, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_3,pf_1_7, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bodies.append( gridConnection(pf_1_6,pf_1_3, 
raduis_1,material='fMatx',color=[0,0,25] ))

O.bod

Re: [Yade-users] [Question #689486]: Relationship between JCF contact law parametres and particle size

2020-04-20 Thread Ali Rafiee
Question #689486 on Yade changed:
https://answers.launchpad.net/yade/+question/689486

Status: Answered => Solved

Ali Rafiee confirmed that the question is solved:
Thanks Luc Scholtès, that solved my question.

-- 
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 #689486]: Relationship between JCF contact law parametres and particle size

2020-03-26 Thread Ali Rafiee
Question #689486 on Yade changed:
https://answers.launchpad.net/yade/+question/689486

Status: Answered => Open

Ali Rafiee is still having a problem:
Thanks Luc,

You are right, but as you said, if the particle sizes in a sample
change, consequently the porosity and also interconnectivity between
particles will be changed, what will change this balanced state in the
sample.

how we can find limit values for cohesion and tensile strength in an
independent way from particle sizes in the model? For example by adding
a phase inside the code, to check this condition and adjust the
parameters regarding the particle sizes in the model.

Is it possible to do in interaction level for each particle to adjust
these parameters just in order to have a stable condition?

Thanks again
Ali

-- 
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 #689486]: Relationship between JCF contact law parametres and particle size

2020-03-25 Thread Ali Rafiee
Question #689486 on Yade changed:
https://answers.launchpad.net/yade/+question/689486

Status: Answered => Open

Ali Rafiee is still having a problem:
Hi Luc,

The sample is under gravity force and this happens after first
iteration.

Under gravity force, the force applied on each particle is proportional
to its size, so if the particle is bigger to make remain in place on
stable condition (without movement) it needs more cohesion force, I
think.

This example can be a simple rock slope with different particle size.

Thanks
Ali

-- 
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 #689486]: Relationship between JCF contact law parametres and particle size

2020-03-25 Thread Ali Rafiee
New question #689486 on Yade:
https://answers.launchpad.net/yade/+question/689486

Hi everybody,

I have a question about parameter calibration, indeed I have a model in rock 
mass media generated by random size spheres.
just in the first step, in which I try to have a stable assembly of spheres, I 
put the values for tensile strength and cohesion of materials in the way that 
sphere particles remain just without movement under imposed cohesion between 
particles.

but I see when the particle size changes (new range of sphere sizes), I lose 
this preliminary stable condition and for each particle size range I should 
find new values for the parameters.

I would like to know how one can find the approximate values for these 
parameters to have just a stable condition in the model (not with very high 
magnitude), or how these values can be related to the size of particles?

Thanks a lot
Take care of yourself
Ali


-- 
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 #687209]: Grid contact with spheres having cohesive material defintion

2019-12-17 Thread Ali Rafiee
Question #687209 on Yade changed:
https://answers.launchpad.net/yade/+question/687209

Status: Open => Solved

Ali Rafiee confirmed that the question is solved:
I get answer.
I deleted "Law2_ScGridCoGeom_FrictPhys_CundallStrack()" and it works.

-- 
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 #687209]: Grid contact with spheres having cohesive material defintion

2019-12-17 Thread Ali Rafiee
New question #687209 on Yade:
https://answers.launchpad.net/yade/+question/687209

Hi every one,

I wanted to create a model for interaction between a grid and the spheres 
having rolling friction coefficient characteristics, so I modified a simple 
existing example 
"https://github.com/yade/trunk/commit/89a57e8eede6465bf11521a525ce3fc1c48a6cce";,
 and I modified the materiel definition for spheres as CohFrictMat in order to 
use rolling friction coefficient.

but I don't know why this modified code does not work.

Can you give me some suggestion?

Thanks a lot


tested by: Yade 20191214-2896~6d5e1cb~xenial1

from yade import qt,plot
from yade.gridpfacet import *

phi=20.
E=3.*1e8
r=0.005

O.engines=[
  ForceResetter(),
  InsertionSortCollider([
Bo1_PFacet_Aabb(),
Bo1_Sphere_Aabb(),
Bo1_GridConnection_Aabb()
  ]),
  InteractionLoop([
Ig2_GridNode_GridNode_GridNodeGeom6D(),
Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
Ig2_Sphere_GridConnection_ScGridCoGeom(),
Ig2_Sphere_Sphere_ScGeom(),
  ],
  [

Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False),
#Ip2_FrictMat_FrictMat_FrictPhys()
  ],
  [
Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),
Law2_ScGeom_FrictPhys_CundallStrack(),
Law2_ScGridCoGeom_FrictPhys_CundallStrack(),
  ]
  ),
  GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1,label='ts'),
  NewtonIntegrator(gravity=(0,-9.81,0),damping=.5,label='newton'),
]

O.materials.append( CohFrictMat( 
young=0.05*E,poisson=0.3,density=2650,frictionAngle=radians(phi),normalCohesion=3e100,shearCohesion=3e100,momentRotationLaw=True,label='gridNodeMat'
 ) )
O.materials.append( FrictMat( 
young=E,poisson=0.5,density=260050,frictionAngle=radians(phi),label='sphereMat' 
) )

O.materials.append( CohFrictMat( 
young=0.05*E,poisson=0.3,density=2650,frictionAngle=radians(phi),isCohesive=False,alphaKr=0.25,
 alphaKtw=0.2, momentRotationLaw=True, etaRoll=5.0,label='Sphere1' ) )

# SPHERES
O.bodies.append( 
sphere(center=(Vector3(0.025,-0.035,0.015)),radius=.005,material='Sphere1',fixed=False)
 )
O.bodies.append( 
sphere(center=(Vector3(0.045,-0.035,0.015)),radius=.005,material='Sphere1',fixed=False)
 )
O.bodies.append( 
sphere(center=(Vector3(0.045,-0.025,0.015)),radius=.005,material='Sphere1',fixed=False)
 )

# GRID
L=0.1 #length
l=0.05 #width
nbL=10 #number of nodes for the length
nbl=5 #number of nodes for the width
r=L/100. #radius
color=[40./255.,102./255.,50./255.]
nodesIds=[]
#Creating all nodes:
for i in range(0,nbL):
  for j in range(0,nbl):
nodesIds.append( 
O.bodies.append(gridNode([i*L/nbL,-0.1,j*l/nbl],r,wire=False,fixed=False,material='gridNodeMat',color=color))
 )
#Creating connection between the nodes
for i in range(0,len(nodesIds)):
  for j in range(i+1,len(nodesIds)):
dist=(O.bodies[nodesIds[i]].state.pos - 
O.bodies[nodesIds[j]].state.pos).norm()
if(dist<=L/nbL*1.01):
  O.bodies.append( 
gridConnection(nodesIds[i],nodesIds[j],r,material='gridNodeMat',color=color) )
#PFacet Connection
O.bodies.append( 
gridConnection(nodesIds[11],nodesIds[17],r,color=color,material='gridNodeMat') )

# Constraining the ends of the geogrid
for i in range(nodesIds[0],nodesIds[4]):
  O.bodies[i].state.blockedDOFs='xyzXZ'
  for j in range(nodesIds[-1]-(5),nodesIds[-1]+1):
O.bodies[j].state.blockedDOFs='xyzXZ'

qt.Controller()
qtv = qt.View()
qtr = qt.Renderer()
qtr.bgColor=[1,1,1]
Gl1_Sphere.stripes=1
O.saveTmp()

==


-- 
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 #685539]: shape orientation for Potential Block

2019-11-22 Thread Ali Rafiee
Question #685539 on Yade changed:
https://answers.launchpad.net/yade/+question/685539

Status: Expired => Open

Ali Rafiee is still having a problem:
Hi Vasileios,
I looked at this code in C ++, but I do not have much experience in C ++.
but I think, there is no problem on finding vertex coordinates, but there is a 
problem on the rotation operation.
I'm counting on you as soon as you find time to try to fix this problem.

Thank you very much
Best regards
Ali

-- 
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 #685867]: polyhedron in pfacets- mass center

2019-11-22 Thread Ali Rafiee
Question #685867 on Yade changed:
https://answers.launchpad.net/yade/+question/685867

Ali Rafiee posted a new comment:
Hi every one,
for my question about polyhedron in pfacet, I have not had any answer yet.
Am I wrong?

Best regards
Ali

-- 
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 #685867]: polyhedron in pfacets- mass center

2019-11-14 Thread Ali Rafiee
New question #685867 on Yade:
https://answers.launchpad.net/yade/+question/685867

Hi everyone,
I have a question about mass attribution for polyhedron in pfacet form.
as I guess the mass in pfacet form is attributed to the nodes (if I'm right), I 
would like to know if one has a complex polyhedron geometrically, the mass 
center in this case will not be in the real position by considering the spatial 
distribution of its nodes.

- if I'm wrong, I would like to know for a closed polyhedron in pfacet form, 
the mass center how is calculated? 
- and is there a method to give a weight for each polyhedron and the position 
of its mass center?

Thanks a lot
Ali


-- 
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 #685539]: shape orientation for Potential Block

2019-11-12 Thread Ali Rafiee
Question #685539 on Yade changed:
https://answers.launchpad.net/yade/+question/685539

Ali Rafiee posted a new comment:
Hi Vasileios,

I see that apparently you have not had time to look at this example.
if you need another example I can do it.
but this problem of orientation is not always solved.

Thanks a lot
Best regards
Ali

-- 
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 #685539]: shape orientation for Potential Block

2019-11-05 Thread Ali Rafiee
Question #685539 on Yade changed:
https://answers.launchpad.net/yade/+question/685539

Ali Rafiee gave more information on the question:
Here is a simple example with a single polyhedron.

Thanks again
Ali


## simple code
from yade import polyhedra_utils
from yade import export, ymport
from yade import plot
from yade import qt
import itertools
import numpy as np
import math
import random


gravel = PolyhedraMat()
gravel.IsSplitable = False
gravel.strength = 7.9e6
gravel.density = 2678#kg/m^3
gravel.young = 5.98e7 #Pa
gravel.poisson =0.3
gravel.frictionAngle = 0.5 #rad

inputfil="poly-1"
inputfiln=inputfil+".txt"

O.materials.append(FrictMat(young=1e10,poisson=0.25,frictionAngle=radians(0.0),density=2500,label='frictionless'))


##"

O.engines=[
ForceResetter(),
InsertionSortCollider([PotentialBlock2AABB()],verletDist=0.01),
InteractionLoop(
[Ig2_PB_PB_ScGeom(twoDimension=False, unitWidth2D=1.0)],
[Ip2_FrictMat_FrictMat_KnKsPBPhys(kn_i=1e8, ks_i=1e7, 
Knormal=1e8, Kshear=1e7, useFaceProperties=False, calJointLength=False, 
viscousDamping=0.2)],
[Law2_SCG_KnKsPBPhys_KnKsPBLaw(label='law',neverErase=False, 
allowViscousAttraction=True, traceEnergy=False)]
),
#GlobalStiffnessTimeStepper(),

NewtonIntegrator(damping=0.0,exactAsphericalRot=True,gravity=[0,0,-9.81]),

#PotentialBlockVTKRecorder(fileName='./vtk/Arch-1',iterPeriod=1,twoDimension=False,sampleX=50,sampleY=50,sampleZ=50,maxDimension=0.2,label='vtkRecorder')
]

###

chosenR=0.0001
bbb=Body()
wire=False
color=[0,0.5,1]
highlight=False
bbb.shape=PotentialBlock(k=0.0, r=chosenR, R=0.0, 
a=[0.4233422835886639,-0.0,-1.0,-0.0,-0.0,-0.2544435504552162,-0.0,0.2256157225428006,0.7071067811865475],
 
b=[-0.4658182304526213,-1.0,0.0,1.0,-0.0,-0.0,0.2924660204513265,-0.5965652970583126,-0.0],
 
c=[-0.4658182304526213,0.0,-0.0,-0.0,1.0,-0.8250734563293101,-0.12273156061799324,-0.4512314450856012,-0.0],
 
d=[0.9630391247904834,1.20623023977275,1.83734355291125,0.79356976022725,1.1039638685226245,1.2066387820121347,0.3419810759564882,0.7092731583297133,1.5290583284351422],
 id=0)
utils._commonBodySetup(bbb, bbb.shape.volume, 
bbb.shape.inertia,material='frictionless', pos=[0,0,0], fixed=False)
bbb.state.pos =[0.6733279600737498,3.79366976022725,6.1040638685226245]
bbb.state.ori=bbb.shape.orientation
#bbb.state.ori=Quaternion((0,1,0),pi)
O.bodies.append(bbb)


#create a polyhedron
O.bodies.append(yade.ymport.textPolyhedra(inputfiln, material=gravel, 
shift=Vector3(0,0,0), scale=1.0))


 end of Yade code


 poly-1.txt   file
1 8 9
-1.489228487015 3.0 5.0
-1.489228487015 3.0 7.0
-1.489228487015 5.0 5.0
-0.188776910305 3.349358081818 7.832510948181
2.510771512985 3.0 5.0
2.510771512985 3.0 7.0
2.510771512985 5.0 5.0
2.510771512985 5.0 7.0
1 3 2
7 6 2
7 5 4 6
5 1 0 4
0 2 6 4
5 7 3
1 5 3
3 7 2
0 1 2

-- 
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 #685539]: shape orientation for Potential Block

2019-11-05 Thread Ali Rafiee
Question #685539 on Yade changed:
https://answers.launchpad.net/yade/+question/685539

Status: Needs information => Open

Ali Rafiee gave more information on the question:
Hi Vasileios,
I just tested this simple example with Yade 20191104-2651 bionic version, but 
this orientation problem persists still.

I try to send you a simple MWS.

I have the orientation problem with polyhedron such this one having
orthogonal and oblique faces:

#
9   ## Number of facets
0.6733279600737498 3.79366976022725 6.1040638685226245   # center of block
0.4233422835886639 -0.0 -1.0 -0.0 -0.0 -0.2544435504552162 -0.0 
0.2256157225428006 0.7071067811865475  # a
-0.4658182304526213 -1.0 0.0 1.0 -0.0 -0.0 0.2924660204513265 
-0.5965652970583126 -0.0# b
-0.4658182304526213 0.0 -0.0 -0.0 1.0 -0.8250734563293101 -0.12273156061799324 
-0.4512314450856012 -0.0   # c
0.9630391247904834 1.20623023977275 1.83734355291125 0.79356976022725 
1.1039638685226245 1.2066387820121347 0.3419810759564882 0.7092731583297133 
1.5290583284351422  # d



Thanks a lot

Best regards
Ali

-- 
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 #685539]: shape orientation for Potential Block

2019-10-31 Thread Ali Rafiee
New question #685539 on Yade:
https://answers.launchpad.net/yade/+question/685539

Hi everyone,

I can't understand the logic of the orientation standards for Potential Block, 
in particular for blocks with oblique facets.
I respected all the explanations from the answers to this question:
https://answers.launchpad.net/yade/+question/685375

but I see some problems specially for blocks having oblique facets as for third 
blocks in the simple example, below.

for converting a convex block to PB, I do in this way:
1-compute center of block
2-calculate new vertex coordinates with local center
3-calculate a,b,c,d for all faces
4-(d-chosenR) for all d s

what gives me the output data same as below example, but when I try to create 
PB, it works without problem for (straight) block, but for blocks with oblique 
faces, they are misdirected.

I don't know why?

Thanks a lot
Best regards
Ali


 a simple example
chosenR=0.0001
 PB parts
#Number of facets
# center of block
# aax+by+cz+d=0
# b
# c
# d
6
0.0 3.0 0.0
1.0 -0.0 -1.0 -0.0 -0.0 -0.0 
0.0 -1.0 0.0 1.0 -0.0 -0.0 
0.0 -0.0 -0.0 -0.0 1.0 -1.0 
0. 1. 0. 1. 0. 0. 
6
0.0 4.0 3.0
1.0 -0.0 -1.0 -0.0 -0.0 -0.0 
0.0 -1.0 0.0 1.0 -0.0 -0.0 
0.0 -0.0 -0.0 -0.0 1.0 -1.0 
0. 0. 0. 0. 1. 1. 
9
0.6733279600737498 3.79366976022725 6.1040638685226245
0.4233422835886639 -0.0 -1.0 -0.0 -0.0 -0.2544435504552162 -0.0 
0.2256157225428006 0.7071067811865475 
-0.4658182304526213 -1.0 0.0 1.0 -0.0 -0.0 0.2924660204513265 
-0.5965652970583126 -0.0 
-0.4658182304526213 0.0 -0.0 -0.0 1.0 -0.8250734563293101 -0.12273156061799324 
-0.4512314450856012 -0.0 
0.9630391247904834 1.20623023977275 1.83734355291125 0.79356976022725 
1.1039638685226245 1.2066387820121347 0.3419810759564882 0.7092731583297133 
1.5290583284351422 
6
0.0 0.0 0.0
1.0 -0.0 -1.0 -0.0 -0.0 -0.0 
0.0 -1.0 0.0 1.0 -0.0 -0.0 
0.0 -0.0 -0.0 -0.0 1.0 -1.0 
1. 0. 1. 0. 0. 0.
###  

-- 
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 #685375]: Converting polyhedron body to Potential Particle or Potential Block

2019-10-29 Thread Ali Rafiee
Question #685375 on Yade changed:
https://answers.launchpad.net/yade/+question/685375

Ali Rafiee confirmed that the question is solved:
Thanks Vasileios Angelidakis, that solved my question.

-- 
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 #685375]: Converting polyhedron body to Potential Particle or Potential Block

2019-10-29 Thread Ali Rafiee
Question #685375 on Yade changed:
https://answers.launchpad.net/yade/+question/685375

Status: Answered => Solved

Ali Rafiee confirmed that the question is solved:
Thank you very much Vasileios for your time.

I think you're right, for the moment, I have a lot to do with your detailed 
explanations.
I'm finishing here for this question.

Best Regards
Ali

-- 
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 #685375]: Converting polyhedron body to Potential Particle or Potential Block

2019-10-29 Thread Ali Rafiee
Question #685375 on Yade changed:
https://answers.launchpad.net/yade/+question/685375

Ali Rafiee gave more information on the question:
with setting  dt=0.0001, my code works but I see this error message:
"analytic centre did not converge"

and I need more information about input parameters for BP contact law
and also about PotentialBlockVTKRecorder.

thanks
Ali

-- 
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 #685375]: Converting polyhedron body to Potential Particle or Potential Block

2019-10-29 Thread Ali Rafiee
Question #685375 on Yade changed:
https://answers.launchpad.net/yade/+question/685375

Status: Answered => Open

Ali Rafiee is still having a problem:
Hi Vasileios,

I solve the problems related to the geometric transformation, but I
think I have another problem concerning parameter setting in Potential
block part, because I do not know exactly how it works.

1 ## below, you can find my code for an arch structure, it should slide
with 0 degree for friction angle without cohesion, but it remains
without any movement.

2 ## in order to generate vtk files with PotentialBlockVTKRecorder, the
input parameters such as sampleX, how are they used?

Thanks a lot
Best regards
Ali


# code part
from yade import pack,export,qt,ymport

import numpy as np
import math
import random
##
O.materials.append(FrictMat(young=1e10,poisson=0.25,frictionAngle=radians(0.0),density=2500,label='frictionless'))
 #The normal and shear stifness values are determined in the IPhys functor, 
thus the young,

chosenR=0.0001


O.engines=[
ForceResetter(),
InsertionSortCollider([PotentialBlock2AABB()],verletDist=0.01),
InteractionLoop(
[Ig2_PB_PB_ScGeom(twoDimension=False, unitWidth2D=1.0)],
[Ip2_FrictMat_FrictMat_KnKsPBPhys(kn_i=1e8, ks_i=1e7, 
Knormal=1e8, Kshear=1e7, useFaceProperties=False, calJointLength=False, 
viscousDamping=0.2)],
[Law2_SCG_KnKsPBPhys_KnKsPBLaw(label='law',neverErase=False, 
allowViscousAttraction=True, traceEnergy=False)]
),
#GlobalStiffnessTimeStepper(),

NewtonIntegrator(damping=0.0,exactAsphericalRot=True,gravity=[0,0,-9.81]),

#PotentialBlockVTKRecorder(fileName='./vtk/cubePBscaled',iterPeriod=1,twoDimension=False,sampleX=50,sampleY=50,sampleZ=50,maxDimension=0.2,label='vtkRecorder')
]

## geometry part, by A.Rafiee
bbb=Body()
wire=False
color=[0,0.5,1]
highlight=False
bbb.shape=PotentialBlock(k=0.0, r=chosenR, R=0.0, a=[-0.0, -1.0, -0.0, -0.0, 
1.0, -0.0], b=[-1.0, -0.0, -0.0, -0.0, -0.0, 1.0], c=[0.0, -0.0, -1.0, 1.0, 
-0.0, -0.0], d=[1.8749, 2.8124, 0.0624, 0.0624, 2.8124, 1.8749], id=0)
utils._commonBodySetup(bbb, bbb.shape.volume, 
bbb.shape.inertia,material='frictionless', pos=[0,0,0], fixed=True)
bbb.state.pos =[2.125, 0.25, -0.0625]
bbb.state.ori=Quaternion((0,1,0),pi)
O.bodies.append(bbb)
#
bbb=Body()
wire=False
color=[0,0.5,1]
highlight=False
bbb.shape=PotentialBlock(k=0.0, r=chosenR, R=0.0, a=[-0.995184720391626, 0.0, 
-0.0, -0.0, -0.0, -0.19509018176012233, 1.0], b=[2.7205239199536258e-18, -1.0, 
-5.551115123125783e-17, 1.0, -0.0, 1.0829680583419728e-17, 
-1.1102230246251564e-16], c=[0.09801720409724536, -0.0, 1.0, -0.0, -1.0, 
-0.9807853083018742, -2.8454080613571164e-16], d=[0.337181872405393, 0.2499, 
0.17967108333414306, 0.2499, 0.21030951666585695, 0.17888318179899965, 
0.303692080616296], id=1)
utils._commonBodySetup(bbb, bbb.shape.volume, 
bbb.shape.inertia,material='frictionless', pos=[0,0,0], fixed=False)
bbb.state.pos =[0.30379208061629603, 0.25, 0.17977108333414304]
bbb.state.ori=Quaternion((0,1,0),pi)
O.bodies.append(bbb)
#
bbb=Body()
wire=False
color=[0,0.5,1]
highlight=False
bbb.shape=PotentialBlock(k=0.0, r=chosenR, R=0.0, a=[0.1950901817601223, 
0.9569403497890105, -1.4555161670882268e-16, -0.38268355158955414, 
2.262943718606007e-16, -0.9569403375852945], b=[-4.537043464545097e-17, 
1.3428361705711876e-17, -0.9951847174017722, -1.466534115884631e-17, 
0.9951847174017722, 2.0392625979676485e-16], c=[0.9807853083018742, 
-0.2902846309153932, 1.1777448297131143e-16, -0.9238794831268877, 
4.976255189356365e-18, 0.290284671145658], d=[0.1717652880563909, 
0.23684874980903367, 0.14917770761026583, 0.17176528561465593, 
0.14917770761026589, 0.26054366159508413], id=2)
utils._commonBodySetup(bbb, bbb.shape.volume, 
bbb.shape.inertia,material='frictionless', pos=[0,0,0], fixed=False)
bbb.state.pos =[0.44708096679737336, 0.25006, 0.5089911606262629]
bbb.state.ori=Quaternion((0,1,0),pi)
O.bodies.append(bbb)
#
bbb=Body()
wire=False
color=[0,0.5,1]
highlight=False
bbb.shape=PotentialBlock(k=0.0, r=chosenR, R=0.0, a=[0.38268355158955414, 
0.8819212004273606, 8.127355190878246e-17, -0.703541431359, 
1.958258197514367e-16, -0.8819212357727806], b=[-1.2821403426828246e-16, 
6.54194554658077e-17, -0.9951847260300383, -1.7972755132828346e-16, 
0.9951847260300383, -1.1957524611753766e-16], c=[0.9238794831268877, 
-0.47139685641374757, 1.9621163966280541e-16, -0.8314695313703745, 
-1.0467111550412906e-16, 0.4713967902871334], d=[0.17176529181696487, 
0.2368487673900063, 0.1491777089045058, 0.17176529360968104, 
0.14917770890450577, 0.2605436475477011], id=3)
utils._commonBodySetup(bbb, bbb.shape.volume, 
bbb.shape.inertia,material=&#x

Re: [Yade-users] [Question #685375]: Converting polyhedron body to Potential Particle or Potential Block

2019-10-28 Thread Ali Rafiee
Question #685375 on Yade changed:
https://answers.launchpad.net/yade/+question/685375

Status: Answered => Open

Ali Rafiee is still having a problem:
Hi Vasileios, and thank you  again.

just without last rotation around Y axis, the obtained PB is not same as
the input polyhedron regarding to its orientation.

is it related to the sign of d value?

I want to convert large number of polyhedra, it is not possible to check
them one by one, how can I solve this issue automatically?

Merci

Best regards
Ali

-- 
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 #685375]: Converting polyhedron body to Potential Particle or Potential Block

2019-10-28 Thread Ali Rafiee
Question #685375 on Yade changed:
https://answers.launchpad.net/yade/+question/685375

Status: Solved => Open

Ali Rafiee is still having a problem:
Thank you very much Vasileios,

I tried to do this converting method, and that is my code:


from yade import pack,export,qt,ymport

import numpy as np
import math
import random


##
def dotproduct(v1, v2):
  return sum((a*b) for a, b in zip(v1, v2))

def length(v):
  return math.sqrt(dotproduct(v, v))

def veccc(pp1,pp2):
pp3=[pp2[0]-pp1[0],pp2[1]-pp1[1],pp2[2]-pp1[2]]
if length(pp3)>0:
pp3=[pp3[0]/length(pp3),pp3[1]/length(pp3),pp3[2]/length(pp3)]

return pp3

### calculate d value of a surface with normal vector and one point
def dvalue(vecn1,pp1):
dd1=-1*(vecn1[0]*pp1[0]+vecn1[1]*pp1[1]+vecn1[2]*pp1[2])
return dd1



powderDensity = 2000
distanceToCentre = 0.5
meanSize = 1.0
wallThickness = 0.5*meanSize
O.materials.append(FrictMat(young=-1,poisson=-1,frictionAngle=radians(0.0),density=powderDensity,label='frictionless'))
 #The normal and shear stifness values are determined in the IPhys functor, 
thus the young,


young = 1e9
density=2500
FricDegree1= atan(.6)
m = PolyhedraMat()
m.density = density  
m.young = young 
m.poisson = 0.25
m.frictionAngle = FricDegree1

c1=polyhedron(((0.6250,0.,0.),(0.6250,0.5000,0.),(0.65382210,0.5000,0.29263550),(0.65382210,0.,0.29263550),(0.16342940,0.5000,0.39018060),(0.16342940,0.,0.39018060),(0.,0.5000,0.39018060),(0.,0.,0.39018060),(0.,0.5000,0.),(0.,0.,0.)),material=m)
O.bodies.append(c1)

chosenR=0.001

for b in O.bodies:
aa=[]
bb=[]
cc=[]
dd=[]
if not isinstance(b.shape,Polyhedra): # skip non-polyhedra bodies
continue
vs = [b.state.pos + b.state.ori*v for v in b.shape.v] # vertices in global 
coords
#print(len(vs))
face2=[]
face2=b.shape.GetSurfaces()
#print(face2)
#print(vs)

id1=0
while id12:
vec1=veccc(vs[face11[2]],vs[face11[1]])
vec2=veccc(vs[face11[0]],vs[face11[1]])  

vects=[]
vects = list(np.cross(vec1, vec2))

#print(vects)
dvalue2=dvalue(vects,vs[face11[0]])


#print("***")
#print(dvalue2)
dv=dvalue2-chosenR
if dv<0:
vects=[-1*vects[0],-1*vects[1],-1*vects[2]]
dv=-1*dv


aa.append(vects[0])
bb.append(vects[1])
cc.append(vects[2])
dd.append(dv)  

id1=id1+1
#print(aa)
#print(bb)
#print(cc)
#print(dd)


 after that how can put correct values for PotentialBlock() ?
bbb=Body()
wire=False
color=[0,0.5,1]
highlight=False
bbb.shape=PotentialBlock(k=0.001, r=chosenR, R=chosenR, a=aa, b=bb, c=cc, 
d=dd, id=len(O.bodies))
utils._commonBodySetup(bbb, bbb.shape.volume, 
bbb.shape.inertia,material='frictionless', pos=[0,0,0], fixed=False)
bbb.state.pos = [-2,0,0]
lidID = O.bodies.append(bbb)


 ###

the values for a, b, c and d are obtained, but I can't complete all
parameters required by PotentialBlock() command  just with these 4
parameters.

in any case, I do not know how to complete the last phase of this
geometric transformation.

Thanks again
Ali

-- 
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 #685375]: Converting polyhedron body to Potential Particle or Potential Block

2019-10-24 Thread Ali Rafiee
Question #685375 on Yade changed:
https://answers.launchpad.net/yade/+question/685375

Status: Answered => Solved

Ali Rafiee confirmed that the question is solved:
Thanks Vasileios Angelidakis, that solved my question.

-- 
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 #685375]: Converting polyhedron body to Potential Particle or Potential Block

2019-10-24 Thread Ali Rafiee
New question #685375 on Yade:
https://answers.launchpad.net/yade/+question/685375

Dear all,

I would like to know if there is a method for converting polyhedron objects to 
geometric format of potential particle or not.

Thanks a lot
Ali


-- 
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 #685203]: problem in moving particles and existence of weight force on each particle

2019-10-16 Thread Ali Rafiee
Question #685203 on Yade changed:
https://answers.launchpad.net/yade/+question/685203

Ali Rafiee proposed the following answer:
Hi,
as I can see from your model, in fact you are trying to model the "block 
caving".
if you want to model it, that will be very difficult with polyhedra in Yade, as 
you will have large number of polyhedra in your model, and it is very time 
consuming, as I know.

but for just a simple model, it will be better to use stl format for
your boundary as facet objects in Yade, and put your polyhedrons inside.

another solution will be to use DFN method with spheres for which Yade
is more adapted.

good luck
Ali

-- 
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 #684018]: unbreakable clumps to breakable ones(glued spheres)

2019-09-18 Thread Ali Rafiee
New question #684018 on Yade:
https://answers.launchpad.net/yade/+question/684018

Hi everyone,
I'm trying to convert a compact clumps to a glued spheres; the spheres inside 
of each clump become cohesive meanwhile the spheres of two different clumps 
remain without cohesion, however they may be in contact after compaction phase.

I know this type of operation is possible in Yade, but I seek a method more 
practical in the way that after releasing spheres from a clump the spheres 
inside this clump become cohesive with a given cohesive material definition.


Thanks a lot


-- 
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 #670852]: remote interaction, net&wire mats attribution by sphere's material

2018-07-13 Thread Ali Rafiee
Question #670852 on Yade changed:
https://answers.launchpad.net/yade/+question/670852

Status: Open => Solved

Ali Rafiee confirmed that the question is solved:
Thanks Jan Stránský, that solved my question.

-- 
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 #670852]: remote interaction, net&wire mats attribution by sphere's material

2018-07-13 Thread Ali Rafiee
Question #670852 on Yade changed:
https://answers.launchpad.net/yade/+question/670852

Status: Answered => Open

Ali Rafiee is still having a problem:
Thanks Jan,

I completed the script in this way, and it seems to be correct now?



#===
# -*- coding: utf-8 -*-

from yade import plot, qt

tolerance=0.01
errors=0

 define parameters for the net
# wire diameter
d = 2.7/1000.
# particle radius
radius = d*4.
# define piecewise lineare stress-strain curve
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
) )


 get net 
s1=O.bodies.append(sphere([-0.04,0.075,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,1,0],material=netMat))
s2=O.bodies.append(sphere([-0.04,0.025,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,1,0],material=netMat))
s3=O.bodies.append(sphere([0.04,0.075,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,1,0],material=netMat))
s4=O.bodies.append(sphere([0.04,0.025,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,1,0],material=netMat))
s5=O.bodies.append(sphere([0,0.15,0],radius=0.01,wire=False,highlight=False,fixed=True,
 color=[1,0,0],material=wireMat))
s6=O.bodies.append(sphere([0,0.1,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,0,1],material=wireMat))
s7=O.bodies.append(sphere([0,0,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,0,1],material=wireMat))
s8=O.bodies.append(sphere([0,-0.05,0],radius=0.01,wire=False,highlight=False,fixed=True,
 color=[1,0,0],material=wireMat))


""
 define engines to create link
interactionRadius=1 # value has to be adjusted according to the particle 
size of the net and the mesh opening size of the net (check always if links are 
created)
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(gravity=(0.,0,-10),damping=0.5,label='newton'),
]

#
O.dt=1e-5
dd=createInteraction( s3,s6 )

createInteraction( s1,s6 )
createInteraction( s2,s1 )
createInteraction( s7,s2 )
createInteraction( s7,s4 )
createInteraction( s4,s3 )
createInteraction( s6,s5 )
createInteraction( s8,s7 )
##
O.step()
aabb.aabbEnlargeFactor=-1.
Ig2ssGeom.interactionDetectionFactor=-1.

print dd.phys
v = qt.Controller()
v = qt.View()
rr = qt.Renderer()
rr.intrAllWire = True

#
O.run(2)

#===

-- 
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 #670852]: remote interaction, net&wire mats attribution by sphere's material

2018-07-13 Thread Ali Rafiee
Question #670852 on Yade changed:
https://answers.launchpad.net/yade/+question/670852

Status: Needs information => Open

Ali Rafiee gave more information on the question:
Hello Jan,

in below simple example you can see my question in the model.
I tried to have all of possible cases.

I created my interactions before O.engines by createInteraction command,
and I suppose this command works for this type of interaction creation.

thanks a lot
Ali


=
# -*- coding: utf-8 -*-

from yade import plot, qt

tolerance=0.01
errors=0

 define parameters for the net
# wire diameter
d = 2.7/1000.
# particle radius
radius = d*4.
# define piecewise lineare stress-strain curve
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
) )


 get net 
s1=O.bodies.append(sphere([-0.04,0.075,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,1,0],material=netMat))
s2=O.bodies.append(sphere([-0.04,0.025,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,1,0],material=netMat))
s3=O.bodies.append(sphere([0.04,0.075,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,1,0],material=netMat))
s4=O.bodies.append(sphere([0.04,0.025,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,1,0],material=netMat))
s5=O.bodies.append(sphere([0,0.15,0],radius=0.01,wire=False,highlight=False,fixed=True,
 color=[1,0,0],material=wireMat))
s6=O.bodies.append(sphere([0,0.1,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,0,1],material=wireMat))
s7=O.bodies.append(sphere([0,0,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[0,0,1],material=wireMat))
s8=O.bodies.append(sphere([0,-0.05,0],radius=0.01,wire=False,highlight=False,fixed=False,
 color=[1,0,0],material=wireMat))
createInteraction( s3,s6 )
createInteraction( s1,s6 )
createInteraction( s2,s1 )
createInteraction( s7,s2 )
createInteraction( s7,s4 )
createInteraction( s4,s3 )
createInteraction( s6,s5 )
createInteraction( s8,s7 )
##

v = qt.Controller()
v = qt.View()
rr = qt.Renderer()
rr.intrAllWire = True

==

-- 
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 #670852]: remote interaction, net&wire mats attribution by sphere's material

2018-07-13 Thread Ali Rafiee
New question #670852 on Yade:
https://answers.launchpad.net/yade/+question/670852

Hi,
I have a question about the definition of material given to a remote 
interaction between two spheres with for example one having netMat and other 
one wireMat material.

in fact, I am trying to create a model of net (at least with two different 
types of cable) by createInteraction method, but I not sure my below hypothesis 
is correct or not?

1- sphere netMat with sphere netMat =  remote interaction in netMat

2- sphere netMat with sphere wireMat =  remote interaction in netMat ???

3- sphere wireMat with sphere wireMat =  remote interaction in wireMat


I hope my question is clear.

Thank you very much,
Ali





-- 
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@lists.launchpad.net

2018-07-12 Thread Ali Rafiee
New question #670838 on Yade:
https://answers.launchpad.net/yade/+question/670838

Hi everyone,

I was trying to model a simple test for cohesive condition between a sphere and 
two small multi-parts cylinders created by gridconnection.

this is a simple example just to show problem itself.

while one cylinder remains in cohesive contact with fixed sphere but other one 
that is also in cohesive contact condition disappear from the model!

thanks a lot
Ali

my simple script:

#=
# encoding: utf-8
"""
Same example as CohesiveCylinderSphere.py but using gridConnections instead of 
chainedCylinder.
"""
from yade import qt
from yade.gridpfacet import *
from numpy import linspace

### Engines need to be defined first since the function gridConnection creates 
the interaction
O.engines=[
ForceResetter(),
InsertionSortCollider([
Bo1_Sphere_Aabb(),
Bo1_GridConnection_Aabb(),
]),
InteractionLoop(
# Geometric interactions
[
  Ig2_GridNode_GridNode_GridNodeGeom6D(),
  Ig2_Sphere_GridConnection_ScGridCoGeom(), # used for the cohesive 
sphere-cylinder interaction
],
[
# Interaction phusics
  
Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False),
],
# Interaction law
[
  Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),
  Law2_ScGridCoGeom_CohFrictPhys_CundallStrack(),   # used for the 
cohesive sphere-cylinder interaction
]
),
NewtonIntegrator(gravity=(0,-9.81,0),damping=0.7,label='newton'),

]

O.dt=1e-7

O.materials.append(CohFrictMat(young=8e5,poisson=0.3,density=3000,frictionAngle=radians(30),normalCohesion=1e15,shearCohesion=1e15,momentRotationLaw=True,label='gridNodeMat'))

O.materials.append(CohFrictMat(young=8e5,poisson=0.3,density=3000,frictionAngle=radians(30),normalCohesion=1e15,shearCohesion=1e15,momentRotationLaw=True,label='gridCoMat'))

O.materials.append(CohFrictMat(young=8e5,poisson=0.3,density=3000,frictionAngle=radians(30),normalCohesion=1e15,shearCohesion=1e15,momentRotationLaw=False,label='spheremat'))

rCyl=0.005

p1=O.bodies.append(gridNode([-0.3,0,0],rCyl,wire=False,fixed=False,material='gridNodeMat'))
p2=O.bodies.append(gridNode([0.4,0,0],rCyl,wire=False,fixed=False,material='gridNodeMat'))
p3=O.bodies.append(gridNode([0.15,0,0],rCyl,wire=False,fixed=False,material='gridNodeMat'))
p4=O.bodies.append(gridNode([0,-0.3,0.02],rCyl,wire=False,fixed=False,material='gridNodeMat'))
p5=O.bodies.append(gridNode([0,0.4,0.02],rCyl,wire=False,fixed=False,material='gridNodeMat'))
p6=O.bodies.append(gridNode([0,0.1,0.02],rCyl,wire=False,fixed=False,material='gridNodeMat'))
O.bodies.append( gridConnection(p1,p3,rCyl,material='gridCoMat'))
O.bodies.append( gridConnection(p3,p2,rCyl,material='gridCoMat'))
O.bodies.append( gridConnection(p4,p6,rCyl,material='gridCoMat'))
O.bodies.append( gridConnection(p6,p5,rCyl,material='gridCoMat'))


IdSphere=O.bodies.append(sphere([0.0,0,0.01],rCyl,wire=False,fixed=False,material='spheremat'))
O.bodies[-1].state.blockedDOFs='xyzXYZ'


qt.View()

#==








  

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