← Back to team overview

yade-users team mailing list archive

Re: [Question #229268]: Modelling a free-fall test of a concrete block

 

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

    Status: Solved => Open

fracardo is still having a problem:
Hi everybody,

As you know by my first post, I'm trying to model a free fall test for a
concrete block against a common ground (I've modelled it using a facet
of concrete material). Everything is running right, but I'm having
several problems with the simulation because of the concrete block
stability.

I mean, few seconds after the simulation started all the particles that
conform the concrete block begin to eject under high velocity. I think
that it is due to a large Young modulus in concrete block (30e9). When I
modify that parameter and use a lower one (3e5 - 3e7), this phenomenon
does not happen, and concrete block stays stable.

With this modification, obviously, stiff behaviour of the concrete block
does not represent the real phenomenon and when it reaches the ground
all the particles that conform it crack around the floor without any
cohesion or stifness. My question is related with such problem, is there
any option to modify the stifness behaviour of concrete block just when
it reaches the ground in order to avoid the particles ejection before
this happen, and at the same time, keeping the right behaviour of
concrete block when it impacts against the ground?

I developed a script as follows, and I'm using yade daily which
currently is 3+3606+47~precise1 running on Ubuntu:

"
#!/usr/bin/python
# -*- coding: utf-8 -*-

from yade import pack
from yade import utils
from yade import plot
import math 

# Concrete block material "idConcrete"

idConcrete=O.materials.append(CpmMat(young=30e9,dmgRateExp=0.3,dmgTau=1000,neverDamage=False,plRateExp=0,plTau=-1,frictionAngle=atan(0.8),poisson=.25,density=4800,sigmaT=3.5e6,epsCrackOnset=1e-4,isoPrestress=0,relDuctility=1e-6))

# Concrete ground material: "idGround"

idGround=O.materials.append(CpmMat(young=30e9,density=4800,poisson=.2,frictionAngle=.5,relDuctility=1e-4,sigmaT=9e6,epsCrackOnset=1e-8,isoPrestress=0))

# Geometry/Properties of concrete block:

Box1X=0.5 # X-axis lenght.

Box2Y=0.5 # Y-axis lenght

Box3Z=0.5 # Z-axis lenght

High=2 # Z-axis high of concrete block

RadioEsferas=0.01 # Radius of particles

DesvEsferas= 0.1 # Deviation of radius

NumEsferas=7000 # Sphere number in concrete block

Poroso=0.5 # Porosity of concrete block

sp=pack.SpherePack()

sp.makeCloud(minCorner=(0.5*Box1X,-0.5*Box2Y,1*High),
maxCorner=(-0.5*Box1X,0.5*Box2Y,(1*High)+Box3Z),rMean=RadioEsferas,rRelFuzz=DesvEsferas,num=NumEsferas,porosity=Poroso)

sp.toSimulation(material=idConcrete)

# Ground geometry.

Coord1= 5 # X-axis.

Coord2= 5 # Y-axis.

Coord3= 5 # Z-axis.


O.bodies.append([utils.facet([[Coord1,0,0],[-Coord1,-Coord2,0],[-Coord1,Coord2,0]],dynamic=False,wire=False,color=[1,0,0],material=idGround)])

# Interaction radius for concrete behaviour

RadioInt=1.5


# Engines

O.engines=[ForceResetter(),InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=RadioInt,label='bo1s'),Bo1_Facet_Aabb()]),
	InteractionLoop([Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=RadioInt,label='ig2ss'),Ig2_Facet_Sphere_ScGeom()],
	[Ip2_CpmMat_CpmMat_CpmPhys()],[Law2_ScGeom_CpmPhys_Cpm(epsSoft=0)]),NewtonIntegrator(damping=0.4,gravity=[0,0,-10]),PyRunner(command='myAddData()', iterPeriod=2)]


O.step()

bo1s.aabbEnlargeFactor=1
ig2ss.interactionDetectionFactor=1

O.dt=utils.PWaveTimeStep()

def myAddData():
	b=O.bodies[1000]
	plot.addData(z1=b.state.pos[2], i=O.iter, t=O.time)
"
I'm trying to solve this problem but I haven't been able yet.

Thank you in advance,

Paco.

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