← Back to team overview

yade-users team mailing list archive

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

 

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

Hi everybody,

I'm trying to model how a concrete block behaves when it falls from a certain high (only accelerated with gravity action). I am interested in understanding how it breaks or, at least, obtaining its tensional behaviour. 

In order to model this test I'm using Yade with CpmMat model for the spheres of the block. For the ground, I'm using a wall made of concrete too, but stiffer than the concrete block in order to introduce a harder material simulating the ground effect in the collision.  I'm a new user of Yade so I'm still getting used with all the commands and models implemented in Yade.

My first question is, basically, is Yade capable of simulate my main purpose? or, should I modify the models or code so that Yade works this test? I'm using Yade-daily version which, currently is 3+3602+47~precise1

On the other hand, I've tried to do this by using different commands of Yade, and I have developed a script, here it is (I used the same parameters that are given in the examples, if the model results lead to a succesful model, then I would use more realistic parameters of my particular material):

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

from yade import pack
from yade import utils
import math

pred=pack.inParallelepiped((0,0,.3),(.1,0,.3),(0,.1,.3),(0,0,.4)) # 0.3 meters each squared face

idConcrete=O.materials.append(CpmMat(young=24e9,frictionAngle=atan(0.8),poisson=.2,density=4800,sigmaT=3.5e6,epsCrackOnset=1e-4,isoPrestress=0)) # Concrete block material definition

idGround=O.materials.append(CpmMat(young=30e30,density=1000,poisson=.2,frictionAngle=.5)) # Concrete ground material definition

Spheres=pack.randomDensePack(pred, radius=3.5e-3, spheresInCell=1000, material=idConcrete)

O.bodies.append(Spheres)

Horizontal_Wall=utils.wall(0,axis=2,sense=0,material=idGround)

O.bodies.append(Horizontal_Wall)

from yade import qt
qt.Controller()
qt.View()

O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=1.5),Bo1_Wall_Aabb()]),
	InteractionLoop(
		[Ig2_Sphere_Sphere_Dem3DofGeom(distFactor=1.5),Ig2_Wall_Sphere_Dem3DofGeom() if not ScGeom else Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=1.5),Ig2_Wall_Sphere_ScGeom()],
		[Ip2_CpmMat_CpmMat_CpmPhys()],
		[Law2_Dem3DofGeom_CpmPhys_Cpm(epsSoft=0) if not ScGeom else Law2_ScGeom_CpmPhys_Cpm()],
	),
	NewtonIntegrator(damping=.4,gravity=[0,0,-9.81]),]
"

When I run the script I get an error like this: 

Yade [2]: FATAL /build/buildd/yade-daily-3+3602+47~precise1/pkg/dem/ConcretePM.cpp:375 go: Verification `!isnan(epsFracture)' failed!
FATAL /build/buildd/yade-daily-3+3602+47~precise1/pkg/dem/ConcretePM.cpp:375 go: in interaction #423+#570
terminate called without an active exception
Abortado (`core' generado)

I've been reading tutorials but I don't understand which one has been my mistake. I would be grateful if anyone could help me. 

Thank you.





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