Re: [Yade-users] [Question #404135]: intRadius(aabbenlargefactor) doesn't work

2016-11-21 Thread Jérôme Duriez
Question #404135 on Yade changed:
https://answers.launchpad.net/yade/+question/404135

Status: Open => Answered

Jérôme Duriez proposed the following answer:
1. The behavior you observed is normal. As the doc of
cohesiveTresholdIteration [1] says, Ip2_JCFpmMat_JCFpmMat_JCFpmPhys will
set as cohesive only the *new* contacts.

In fact, it is a general rule in YADE that any Ip2_* executes his job
(which is to define interaction properties) only once, where
interactions are created.

If you'd like to "apply" cohesion to a previously created packing, you
have to perform yourself Ip2_JCFpmMat_JCFpmMat_JCFpmPhys's corresponding
job, using Python loops:

for interaction in O.interactions:
   interaction.phys.isCohesive = True
   # define cohesive thresholds interaction.phys.FnMax [2] and 
interaction.phys.FsMax [3] from material properties such as done in source code 
[4]. See also corresponding equations e.g. in [Duriez2016] (listed among the 
references of the doc)


2. Why are you expecting 13 as a coordination number ? The coordination number 
you will eventually get for a given interaction radius highly depends on the 
packing you're considering. 
There is no unique relationship coordination number = f(interaction radius)


[1] 
https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ip2_JCFpmMat_JCFpmMat_JCFpmPhys.cohesiveTresholdIteration
[2] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.JCFpmPhys.FnMax
[3 ]https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.JCFpmPhys.FsMax
[4] 
https://github.com/yade/trunk/blob/master/pkg/dem/JointedCohesiveFrictionalPM.cpp#L260
 and line below

-- 
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 #403663]: Modeling 2 materilas by CPM model

2016-11-21 Thread Seti
Question #403663 on Yade changed:
https://answers.launchpad.net/yade/+question/403663

Status: Answered => Open

Seti is still having a problem:
Hi Jan,


Thanks for your help, , in a sample with just two materials. I have done a 
series of parametric studies to understand how changing( say increasing) the 
percentage of material #1 has effect on the strength of sample.  By increasing 
the percentage of mat 1 ( %10, %30, %70) the strength of sample has been 
increased respectively. However when I increase the percentage of mat 1 to 90% 
I have drop in stress - strain curve ( strength even less that 30 %) 

Is there any issue with the script or there is a convergence problem
here?

Thanks so much for your help.


#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import division

from yade import plot,pack,timing
import time, sys, os, copy

#import matplotlib
#matplotlib.rc('text',usetex=True)
#matplotlib.rc('text.latex',preamble=r'\usepackage{concrete}\usepackage{euler}')


"""
A fairly complex script performing uniaxial tension-compression test on 
hyperboloid-shaped specimen.
Most parameters of the model (and of the setup) can be read from table using 
yade-multi.
After the simulation setup, tension loading is run and stresses are 
periodically saved for plotting
as well as checked for getting below the maximum value so far. This indicates 
failure (see stopIfDamaged
function). After failure in tension, the original setup is loaded anew and the 
sense of loading reversed.
After failure in compression, strain-stress curves are saved via 
plot.saveGnuplot and we exit,
giving some useful information like peak stresses in tension/compression.
Running this script for the first time can take long time, as the specimen is 
prepared using triaxial
compression. Next time, however, an attempt is made to load 
previously-generated packing 
(from /tmp/triaxPackCache.sqlite) and this expensive procedure is avoided.
The specimen length can be specified, its diameter is half of the length and 
skirt of the hyperboloid is 
4/5 of the width.
The particle size is constant and can be specified using the sphereRadius 
parameter.
The 3d display has displacement scaling applied, so that the fracture looks 
more spectacular. The scale
is 1000 for tension and 100 for compression.
"""


# default parameters or from table
readParamsFromTable(noTableOk=True, # unknownOk=True,
young=30e9,
poisson=.2,

sigmaT=1.1e9,
frictionAngle=atan(.57),
epsCrackOnset=1e-4,
relDuctility=30,

intRadius=1.5,
dtSafety=.8,
damping=0.4,
strainRateTension=.1,
strainRateCompression=.1,
setSpeeds=True,
# 1=tension, 2=compression (ANDed; 3=both)
doModes=2,

specimenLength=.15,
sphereRadius=3.5e-3,

# isotropic confinement (should be negative)
isoPrestress=0,
)

from yade.params.table import *

if 'sigmaT=3.5e6, compression' in O.tags.keys():
O.tags['id']=O.tags['id']+O.tags['sigmaT=3.5e6, compression']


# make geom; the dimensions are hard-coded here; could be in param table if 
desired
# z-oriented hyperboloid, length 20cm, diameter 10cm, skirt 8cm
# using spheres 7mm of diameter
mat1=CpmMat(young=young,frictionAngle=atan(.32),poisson=poisson,density=4800,sigmaT=sigmaT,relDuctility=relDuctility,epsCrackOnset=epsCrackOnset,isoPrestress=isoPrestress)
mat2=CpmMat(young=30e9,frictionAngle=frictionAngle,poisson=poisson,density=4800,sigmaT=sigmaT,relDuctility=relDuctility,epsCrackOnset=epsCrackOnset,isoPrestress=isoPrestress)
concreteId1=O.materials.append(CpmMat(young=young,frictionAngle=atan(.32),poisson=poisson,density=4800,sigmaT=sigmaT,relDuctility=relDuctility,epsCrackOnset=epsCrackOnset,isoPrestress=isoPrestress))
concreteId2=O.materials.append(CpmMat(young=young,frictionAngle=frictionAngle,poisson=poisson,density=4800,sigmaT=sigmaT,relDuctility=relDuctility,epsCrackOnset=epsCrackOnset,isoPrestress=isoPrestress))
#sp=pack.randomDensePack(pack.inHyperboloid((0,0,-.5*specimenLength),(0,0,.5*specimenLength),.25*specimenLength,.17*specimenLength),spheresInCell=2000,radius=sphereRadius,memoizeDb='/tmp/triaxPackCache.sqlite',returnSpherePack=True)

#
sp=pack.SpherePack()
pred=pack.inCylinder((0,0,0.002),(0,0,0.3),0.05)
O.bodies.append(pack.randomDensePack(pred,radius=0.008))

#pred=pack.inCylinder((0,0,0),(0,0,0.2),0.1)

#sp=pack.randomDensePack(pred,radius=0.002,material=concreteId)
#O.bodies.append(TS1)
##

#sp=pack.randomDensePack(pack.inAlignedBox((-.25*specimenLength,-.25*specimenLength,-.5*specimenLength),(.25*specimenLength,.25*specimenLength,.5*specimenLength)),spheresInCell=2000,radius=sphereRadius,memoizeDb='/tmp/triaxPackCache.sqlite',returnSpherePack=True)


sp.toSimulation()

for b in O.bodies:
  if random.random() < 0.3:
b.mat = mat1
b.shape.color = (1,0,0)
  else:
b.mat = mat2
b.shape.color = (0,1,1)


bb=uniaxialTes

Re: [Yade-users] [Question #404228]: the normal force of CmpMat

2016-11-21 Thread liukeqi
Question #404228 on Yade changed:
https://answers.launchpad.net/yade/+question/404228

Status: Answered => Solved

liukeqi 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 #404228]: the normal force of CmpMat

2016-11-21 Thread Jan Stránský
Question #404228 on Yade changed:
https://answers.launchpad.net/yade/+question/404228

Status: Open => Answered

Jan Stránský proposed the following answer:
Hi Liu,

1) there is a misprint in the thesis, the code is correct, i.e.
omega = 1 - (e0/kappa)*exp(-(kappa-e0)/ef)
for kappa=e0, damage should be 0

2) ok, this comment is clearly misleading and not true.. It is true for
linear damaged stress-strain law. but for default exponential one, epsF
controls the slope of the exponential but the exponential is never 0..

cheers
Jan

-- 
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 #404228]: the normal force of CmpMat

2016-11-21 Thread liukeqi
Question #404228 on Yade changed:
https://answers.launchpad.net/yade/+question/404228

Status: Answered => Open

liukeqi is still having a problem:
Hello Jan

Thanks for your reply. But I still have question.

[1]First, the formula to compute the Normal Stresses 
σN = [1 - ωH(εN)]kNεN in the paper page 38 
is same as the formula 
sigmaN = (1-(epsN-epsNPl>0?omega:0))*E*(epsN-epsNPl) 
in the source code ConcretePM.cpp. 

But the formula to compute damage variable 
ω = g(κ) = 1 -εf/κ*exp(-(κ - ε0)/εf) in the paper page 38 
is not same as the formula 
omega = isCohesive? 
phys->funcG(kappaD,epsCrackOnset,epsFracture,neverDamage,damLaw) : 1., 
funcG return 1.-(epsCrackOnset/kappaD)*exp(-(kappaD-epsCrackOnset)/epsFracture)
in the source code ConcretePM.cpp.
The formula in the source code changed to ω = g(κ) = 1 -ε0/κ*exp(-(κ - ε0)/εf). 
That is εf change to ε0 in εf/κ.
Which is true, paper or source code?

[2]According the source code comments, the εf(epsFracture) should be the
"strain at which the bond is fully broken". That is, when the tensile
strain reach the εf, the stress should be zero, or at least tends to
zero. But if I use the formula in paper page or 38 σN = [1 - ωH(εN)]kNεN
or the formula in source code sigmaN = (1-(epsN-epsNPl>0?omega:0))*E
*(epsN-epsNPl), if I used the same value as papar said that εf is 30ε0
and ε0 is 0.0001, the σN is about 280 when the εN is 30ε0, not zero!
Why?Do I have some misunderstandings about it?

Thank you.
Liu

-- 
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 #404228]: the normal force of CmpMat

2016-11-21 Thread Jan Stránský
Question #404228 on Yade changed:
https://answers.launchpad.net/yade/+question/404228

Status: Open => Answered

Jan Stránský proposed the following answer:
Hello Liu
​
1) exactly as you explained. You can
use Law2_ScGeom_CpmPhys_Cpm.omegaThreshold [1] to delete the interaction at
certain damage level
But even if the interaction exists, the normal force tends to zero for
larger strains..

2) rate-dependency means section 3.2.3.2 Vsico-damage and related figure
3.4

cheers
Jan

[1]
https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Law2_ScGeom_CpmPhys_Cpm.omegaThreshold

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