← Back to team overview

yade-users team mailing list archive

Re: [Question #243909]: Representing beams, wires, grids, with connected cylinders

 

Question #243909 on Yade changed:
https://answers.launchpad.net/yade/+question/243909

Klaus Thoeni posted a new comment:
Hi David,

self-contact for the WireMat is not included yet but should be straight 
forward to implement. It's on my very long todo list.

One other think I should mention that the remote interaction can only have 
tensile forces, i.e. stiffness in compression is equal to zero. 

An other option of simulating a membrane with self-contacting spheres is with 
Luc's JCFpmMat, see example below.

Cheers
Klaus


# -*- coding: utf-8 -*-
from yade import utils, pack

R=1.

#### materials
blocMat = 
O.materials.append(JCFpmMat(young=1e6,poisson=0.3,frictionAngle=radians(30),density=2600))
netMat = 
O.materials.append(JCFpmMat(young=1e6,poisson=0.3,frictionAngle=radians(30),density=2600,tensileStrength=1e8,cohesion=1e5))

#### create membrane
O.bodies.append(pack.regularOrtho(pack.inAlignedBox((-5*R,0,-R),
(5*R,R/4,R)),radius=R/10.,gap=0,material=netMat))

#### create non dynamic body
O.bodies.append(utils.facetCylinder([0,-2*R,0.0],radius=R,height=2*R,dynamic=False,wire=False,color=[0,0,1],material=blocMat))

#### for viewing it
from yade import qt
qt.Controller()
qt.View()

#### simulation
## to define interaction range for which cohesive links will be created
interactionRadiusFactor=1.1
## engines definition
O.engines=[
	ForceResetter(),
	
InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=interactionRadiusFactor,label='aabb'),Bo1_Facet_Aabb()]), 
	InteractionLoop(
		
[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=interactionRadiusFactor,label='Ig2ssGeom'),Ig2_Facet_Sphere_ScGeom()],
		
[Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')],
		
[Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(label='interactionLaw')]
	),	
	NewtonIntegrator(gravity=[0.,-9.81,0.],damping=.2)
]

## time step definition
O.dt=0.1*utils.PWaveTimeStep()

#### run first time step to create cohesive link (cohesiveTresholdIteration=1)
O.step()

#### initialize the interaction detection factor for subsequent time steps 
(negative factor means deactivation)
aabb.aabbEnlargeFactor=-1.
Ig2ssGeom.interactionDetectionFactor=-1.


On Monday 17 February 2014 05:36:02 David Zhang wrote:
> Question #243909 on Yade changed:
> https://answers.launchpad.net/yade/+question/243909
> 
>     Status: Solved => Open
> 
> David Zhang is still having a problem:
> Hello Klaus and Bruno,
> 
> I have read the suggested papers and now  have a better understanding of
> the chained cylinders and remote interactions.
> 
> I think previously I misunderstood Klaus' message (#4) on wire-wire
> contacts. The self contacts of wires I meant are not the remote interaction
> between two adjacent wire nodes. Actually they are the contacts between two
> arbitrary wires. This could occur when a flexible structure undergoes large
> deformation, e.g. 1) folding a soft net from an spread state to a folded
> state;
> 2) axially compressing a soft spring to its shortest length.
> 
> It seems that this types of self-contacts have not been included by Yade
> yet. So is there a straightforward way to consider the self-contacts of
> wires in Yade?
> 
> Many thanks,
> 
> David
> 
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users
> More help   : https://help.launchpad.net/ListHelp

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.