yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #25165
Re: [Question #695827]: CHOLMOD warning: matrix not positive definite with PeriodicFlowEngine
Question #695827 on Yade changed:
https://answers.launchpad.net/yade/+question/695827
Katia Boschi gave more information on the question:
Dear All,
I attach the same script with few particles' sample generation:
(Even by running this script with the latest yadedaily package stable version (yade-2021.01a), I get the same error. )
from yade import pack,qt,utils,ymport
from yade import export
from yade import timing
from yade import plot
from builtins import range
import numpy
import time
from math import *
num_spheres=200
young=750.e6
finalFricDegree = 0.35
graindensity=2600.0
poisson=0.17
en=0.9
sigmaIso=-150.e3
radiusR=0.001/2.
D50=radiusR*2.0
O.periodic=True
O.cell.setBox(0.01,0.01,0.01)
mn,mx=Vector3(0,0,0),Vector3(0.01,0.01,0.01)
O.materials.append(FrictViscoMat(young=young,poisson=poisson,frictionAngle=finalFricDegree,density=graindensity,betan=0.0336,label='spheres'))
sp=pack.SpherePack()
sp.makeCloud(mn, mx, rMean=radiusR, rRelFuzz=0.0, num=num_spheres, periodic=True, seed=1)
sp.toSimulation(material='spheres')
triax=PeriTriaxController(
dynCell=True,
mass=0.2,
goal=[sigmaIso,sigmaIso,sigmaIso],
stressMask=7,
globUpdate=5,
maxStrainRate=[1,1,1],
label='triax')
newton=NewtonIntegrator(damping=0.1)
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom()],
[Ip2_FrictViscoMat_FrictViscoMat_FrictViscoPhys()],
[Law2_ScGeom_FrictViscoPhys_CundallStrackVisco(traceEnergy=True)]
),
PeriodicFlowEngine(dead=1,label="flow"),
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.5),
triax,
newton
]
while 1:
O.run(1000, True)
unb=unbalancedForce()
if unb<0.0001:
if triax.relStressTol<0.1:
break
flow.dead=0
flow.pressureForce=True
flow.viscousShear=True
flow.viscousNormalBodyStress=True
flow.viscousShearBodyStress=True
flow.normalLubrication=True
flow.shearLubrication=True
flow.defTolerance=0.1
flow.meshUpdateInterval=200
flow.useSolver=3
flow.permeabilityFactor=1
flow.viscosity=0.0001
flow.bndCondIsPressure=[0,0,0,0,1,1]
flow.bndCondValue=[0,0,0,0,0,0]
GlobalStiffnessTimeStepper.dead=True
O.dt=min(0.5*PWaveTimeStep(),0.5*1./1200.*pi/flow.viscosity*graindensity*(D50/2.)**2)
#O.dynDt=True
O.run(10,1)
while 1:
O.run(5000, True)
unb=unbalancedForce()
if unb<0.0001:
if O.cell.velGrad[0,1]<0.01:
O.cell.velGrad=O.cell.velGrad+Matrix3(0,0.005,0, 0,0,0, 0,0,0)
O.dt=min(0.5*PWaveTimeStep(),0.5*1./1200.*pi/flow.viscosity*graindensity*(D50/2.)**2)
if O.cell.velGrad[0,1]>0.01:
break
--
You received this question notification because your team yade-users is
an answer contact for Yade.