# yade-users team mailing list archive

## [Question #694253]: JCFpmMat parameters define

```New question #694253 on Yade:

I found the JCFpmMat and related functors might be good to simulate bonded particle problems(https://answers.launchpad.net/yade/+question/635871).  I was trying to simulate a uniaxial compression of a cubic brick that is making by using soft bonding material connecting hard sand particles(the mechanical parameters could be given). So my brick is made of two parts: soft bonding material and hard particles. Here are my questions.

1. What are the differences between cohesion and jointCohesion?
2.  What is the meaning of joint surface, does it describe the strength/stiffness of debonding? if so, why do we have to define the stiffness of debonding? why not just define the stiffness of the bonding material itself?
3. What is the young in my case, it depends on IP2 functor, but I did not find related information. Does it mean the Young modulus of particles?

from __future__ import division
from __future__ import print_function

from future import standard_library
standard_library.install_aliases()
import time, sys, os, copy
young=1e6,
poisson=.6,

sigmaT=3.5e6,
epsCrackOnset=1e-4,
relDuctility=30,

dtSafety=.8,
damping=0.4,
strainRateTension=-1,
strainRateCompression=-.5,
setSpeeds=True,

specimenLength=.04,

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

)

#alphaKr=30,alphaKtw=30,

#concreteId=O.materials.append(FrictMat(young=15e6,poisson=.4,frictionAngle=0,density=0,label='frictionlessWalls'))

sp.toSimulation()
bb=uniaxialTestFeatures()
negIds,posIds,axis,crossSectionArea=bb['negIds'],bb['posIds'],bb['axis'],bb['area']
O.dt=0.9*PWaveTimeStep()

O.engines=[
ForceResetter(),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom()],
[Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')],
[Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key=OUT,label='interactionLaw'),Law2_ScGeom_FrictPhys_CundallStrack()]

),
NewtonIntegrator(damping=damping,label='damper'),
#CpmStateUpdater(realPeriod=.5),
UniaxialStrainer(strainRate=strainRateTension,axis=axis,asymmetry=0,posIds=posIds,negIds=negIds,crossSectionArea=crossSectionArea,blockDisplacements=False,blockRotations=False,setSpeeds=setSpeeds,label='strainer'),
#PyRunner(realPeriod=4å,command='stopIfDamaged()',label='damageChecker'),
#
]

print(strainer.strain)
plot.plots={'eps':('sigma',)}
plot.plot(subPlots=False)

O.saveTmp('initial');

O.timingEnabled=False

O.run()
#InteractionLoop(
#
#	),