New question #707869 on Yade: https://answers.launchpad.net/yade/+question/707869
Hi, I've problem with Cohesive Frictional Contact law. I'm trying to run a simulation but I receive: <FATAL ERROR> InteractionLoop:178 virtual void yade::InteractionLoop::action(): None of given Law2 functors can handle interaction #23+24, types geom:ScGeom=1 and phys:CohFrictPhys=6 (LawDispatcher::getFunctor2D returned empty functor) Does the problem with my script or with something else? #!/usr/bin/python # -*- coding: utf-8 -*- from __future__ import division from __future__ import print_function import math from future import standard_library standard_library.install_aliases() from yade import plot, pack, timing, qt, export import time, sys, os, copy import numpy as np import gts # default parameters or from table readParamsFromTable( noTableOk=True, # unknownOk=True, young=70e9, poisson=0.3, density=2700, frictionAngle=radians(30), normalCohesion=300e6, shearCohesion=300e6/sqrt(3), intRadius=1.5, damping=.4, sphereRadius=1e-3, length=100e-3, width=50e-3, thickness=4e-3 ) from yade.params.table import * if 'description' in list(O.tags.keys()): O.tags['id'] = O.tags['id'] + O.tags['description'] aluminiumId = O.materials.append( CohFrictMat( young=young, poisson=poisson, density=density, frictionAngle=frictionAngle, normalCohesion=normalCohesion, shearCohesion=shearCohesion, momentRotationLaw=True ) ) r = sphereRadius partI=pack.inAlignedBox((0, 0, -thickness/2-r/2), (width+r, length, thickness/2+r/2)) partII=pack.inAlignedBox((width, 0, -thickness/2-r/2), (length+r, width, thickness/2+r/2)) sample = partI|partII O.bodies.append(pack.regularHexa(sample,radius=r,gap=0.)) load = [] for b in O.bodies: for b in O.bodies: if b.state.pos[1] > (length-3*r): # support b.state.blockedDOFs = 'xyzXYZ' b.shape.color = (0, 1, 1) elif b.state.pos[0] > (length-2*r): # load load.append(b.id) b.state.blockedDOFs = 'z' b.shape.color = (0, 1, 1) else: b.shape.color = (0, 0, 1) b.state.blockedDOFs = 'z' O.dt = PWaveTimeStep()*1e-1 O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=intRadius)]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intRadius)], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True, setCohesionOnNewContacts=True)], [Law2_ScGeom6D_CohFrictPhys_CohesionMoment()], ), NewtonIntegrator(damping=damping), PyRunner(iterPeriod=1, command='updateParameters()'), PyRunner(command='addPlotData()', iterPeriod=1), #PyRunner(iterPeriod=100, command='recordVTK()') ] O.step() print(len(O.interactions)) def updateParameters(): for i in range(len(load)): O.bodies[load[i]].state.vel = Vector3(-100e0, 0, 0) def addPlotData(): for b in O.bodies: b.shape.color = scalarOnColorScale(b.state.stress[0, 0], -300e6, 300e6) def recordVTK(): txtfilename = 'L_shape/L_test' + str(O.iter) + '.txt' vtkfilename = 'L_shape/L_test' + str(O.iter) + '.vtk' export.textExt(txtfilename, format='x_y_z_r_attrs', attrs=['b.state.oldTemp', 'b.state.stress[0,0]','b.state.stress[0,1]','b.state.stress[0,2]', 'b.state.stress[1,1]','b.state.stress[1,2]','b.state.stress[2,2]','O.time'], comment='temperature, S_11, S_12, S_13, S_22, S_23, S_33, Time') export.text2vtk(txtfilename, vtkfilename) qt.View() #plot.plots={'eps':('sigma')} #plot.plot() #O.run() Kind regards, Przemek -- 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