New question #684762 on Yade:
https://answers.launchpad.net/yade/+question/684762

I am trying to create a weld type between two bars. These bars would be the 
cylinders. Each cylinder is composed of a different material and the weld is 
another cylinder with a weaker material. When I try to move one of the bars to 
test the solder the connection disappears. Is it possible to make this type 
connection? It would be like having two cylinders in different planes connected 
by each other and each composed of a different material. This is my script:

# encoding: utf-8
"An example showing how to create two cylinders which are interacting."

from yade.gridpfacet import *
from yade import plot, bodiesHandling, pack, ymport, geom

#### define parameters for the net
# wire diameter
d = 0.01
# particle radius
radius = d/2
# define piecewise lineare stress-strain curve
strainStressValues=[(0.00019230769,9e7),(0.032,4.28e8),(0.036,4.61e8),(0.045,4.95e8),(0.06,5.05e8),(0.075,5.15e8),(0.09,5.20E+08),(0.12,5.36E+08),(0.14,5.41E+08),(0.16,5.46E+08),(0.21,5.57E+08),(0.28,5.65E+08),(0.35,5.67E+08)]
particleVolume = 4./3.*pow(radius,3)*pi
particleMass = 3.9/1000.
density = particleMass/particleVolume
young = 2e11
poisson = 0.3


#### Parameter ####
L=1.            # length of the cylinder element
#r=0.01         # radius of the cylinder element
r=radius
phi=30.     # friction angle
E=1e13          # Young's modulus
n=5                 # number of nodes used to generate the beam


#### Creat materials ####
O.materials.append( CohFrictMat( 
young=E,poisson=0.3,density=1000,frictionAngle=radians(phi),normalCohesion=1e40,shearCohesion=1e40,
 momentRotationLaw=True,label='cMat' ) )  # material to create the 
gridConnections
O.materials.append( FrictMat( 
young=E,poisson=0.3,density=1000000,frictionAngle=radians(phi),label='fMat' ) ) 
 # material for general interactions
O.materials.append( 
CohFrictMat(young=E,poisson=0.3,density=1100,frictionAngle=radians(10),normalCohesion=1e30,shearCohesion=1e30,
 momentRotationLaw=True,label='wMat' ) )  # material to create the 
gridConnections

O.materials.append( WireMat( 
young=young,poisson=poisson,frictionAngle=radians(30),density=density,isDoubleTwist=False,diameter=d,strainStressValues=strainStressValues,label='wire'
 ) )

#### Engines ####
Factor=1.5     # wire
O.engines=[
        ForceResetter(),
        InsertionSortCollider([
                Bo1_Sphere_Aabb(aabbEnlargeFactor=Factor, label="aabb"),
                Bo1_Box_Aabb(),
                Bo1_Sphere_Aabb(),
                Bo1_GridConnection_Aabb(),
        ]),
        InteractionLoop([
                Ig2_Sphere_Sphere_ScGeom(),
                Ig2_Box_Sphere_ScGeom(),
                Ig2_GridNode_GridNode_GridNodeGeom6D(),
                Ig2_Sphere_GridConnection_ScGridCoGeom(),
                Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
                
Ig2_Sphere_Sphere_ScGeom6D(interactionDetectionFactor=Factor,label="Ig2"),
        ],
        [
                Ip2_WireMat_WireMat_WirePhys(),        
        #Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(label='gridinteraction'),     
        
        
Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False),
   # internal cylinder physics
                Ip2_FrictMat_FrictMat_FrictPhys()       # physics for external 
interactions, i.e., cylinder-cylinder, sphere-sphere, cylinder-sphere
        ],
        [
                Law2_ScGeom_FrictPhys_CundallStrack(),  # contact law for 
sphere-sphere
                Law2_ScGridCoGeom_FrictPhys_CundallStrack(),    # contact law 
for cylinder-sphere

                Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),    # contact law 
for "internal" cylinder forces
                Law2_ScGeom_WirePhys_WirePM(),                      # manter o 
contato entre os cilindros wire
        Law2_GridCoGridCoGeom_FrictPhys_CundallStrack() # contact law for 
cylinder-cylinder interaction
        ]
        ),
        #GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1,label='ts'), 
        NewtonIntegrator(gravity=(0,0,0),damping=0.5,label='newton'),
    PyRunner(command='main()',iterPeriod=20)
]


#### Create bars ####

#### simulation
## to define interaction range for which cohesive links will be created
bar1=[]
bar2=[]
bar3=[]
sph1=[]
for i in range(0,n):
    bar1.append( [i*L/(n-1),0,0] )
    bar2.append( [L/2,(L/2)-i*L/(n-1),3.1*r] )
    bar3.append( [i*L/(n-1),0.4,L] )
    sph1.append( [i*L/(n-1),0.4,2*L] )

#### Create cylinder connections ####
nodesIds1=[]
cylIds1=[]
nodesIds2=[]
cylIds2=[]
nodesIds3=[]
cylIds3=[]
nodesIds_c=[]
cylIds_c=[]


#bloc=O.bodies.append(sphere(sph1[2],radius=10*r,wire=False,highlight=False,color=[1,1,0],material='fMat'))

for i in range(0,n):
    nodesIds1.append( 
O.bodies.append(gridNode(bar1[i],r,wire=False,fixed=False, material='cMat', 
color=[1,0,0])) )

for i in range(0,n):
    nodesIds2.append( 
O.bodies.append(gridNode(bar2[i],r,wire=False,fixed=False, material='wire', 
color=[1,1,1])) )

for i in range(0,len(nodesIds1)-1):
    O.bodies.append( 
gridConnection(nodesIds1[i],nodesIds1[i+1],r,color=[1,0,0], material='cMat') )

for i in range(0,len(nodesIds2)-1):
    O.bodies.append( 
gridConnection(nodesIds2[i],nodesIds2[i+1],r,color=[1,1,1], material='wire') )


gridNode(bar1[2],r,wire=False,fixed=False, material='wMat', color=[1,1,0])
gridNode(bar2[2],r,wire=False,fixed=False, material='wMat', color=[1,1,0])

O.bodies.append(gridConnection(nodesIds1[2],nodesIds2[2],r,color=[1,1,0],material='wMat')
 )

for i in nodesIds1:
    O.bodies[i].state.blockedDOFs='xyzXYZ'


def main():
    O.bodies[nodesIds2[0]].state.blockedDOFs='xyzXYZ'
    O.bodies[nodesIds2[0]].state.vel[2]=0.1
    O.interactions.eraseNonReal()


#### For viewing ####
from yade import qt
qt.View()
Gl1_Sphere.stripes=True

#### Set a time step ####
#O.dt=1e-06
O.dt=utils.PWaveTimeStep()


#### Allows to reload the simulation ####
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     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to