Question #695558 on Yade changed: https://answers.launchpad.net/yade/+question/695558
Rohit John gave more information on the question: Dear Klaus Thoeni, I was playing around with the pfacet and I found a discrepancy in mass of the nodes in a pfacet. I calculated the mass of the nodes using the pfacet radius, the density of the material. The mass observed (O.bodies[id].state.mass) and mass I calculated is not equal. Moreover, changing the size of the pfacet changed the mass and the mass is not equally distributed to the nodes. [1] says that "The mass of the PFacet is equally lumped into the 3 nodes." so I thought the mass should be equal for all nodes. [1] Effeindzourou, A., Thoeni, K., Chareyre, B., & Giacomini, A. (2015). A general method for modelling deformable structures in DEM. Proceedings of the 4th International Conference on Particle-Based Methods - Fundamentals and Applications, PARTICLES 2015, October 2018, 744–754. Kind regards, Rohit John Please find the code for this # ----------------------------------------------------------------------------------------------------------- # encoding: utf-8 from yade import qt from yade.gridpfacet import * ########################### ##### ENGINES ##### ########################### O.engines=[ ForceResetter(), InsertionSortCollider([ Bo1_Sphere_Aabb(), Bo1_Wall_Aabb(), Bo1_PFacet_Aabb(), ],sortThenCollide=True), InteractionLoop( [ Ig2_GridNode_GridNode_GridNodeGeom6D(), Ig2_Sphere_PFacet_ScGridCoGeom(), Ig2_Wall_PFacet_ScGeom(), Ig2_Wall_Sphere_ScGeom() ], [ Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False), Ip2_FrictMat_FrictMat_FrictPhys()], [ Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), Law2_ScGeom_FrictPhys_CundallStrack(), Law2_ScGridCoGeom_FrictPhys_CundallStrack(), Law2_GridCoGridCoGeom_FrictPhys_CundallStrack() ]), GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.8,label='ts'), NewtonIntegrator(gravity=(0,-9.81,0),damping=0.1,label='newton') ] young = 1e9 density = 1e3 poisson = 0.3 friction= 30 O.materials.append( CohFrictMat( young=young, poisson=poisson, density=density, frictionAngle=radians(friction), normalCohesion=3e7, shearCohesion=3e7, momentRotationLaw=True, label='gridNodeMat' )) O.materials.append( FrictMat( young=young, poisson=poisson, density=density, frictionAngle=radians(friction), label='gridConnectionMat' )) ################################### ##### PFacet creators ##### ################################### fixed = False color=[255./255.,102./255.,0./255.] nodesIds = [] cylIds = [] pfIds = [] #position of the node in the middle r = 0.05 ## Option 2: pfacetCreator1(vertices) -> based on 3 vertices scale = 2 v1=Vector3(2, 0, 0) * scale v2=Vector3(3, 0, 0) * scale v3=Vector3(2.5, 2, 0) * scale vertices=[v1,v2,v3] pfacetCreator1( vertices, r, nodesIds=nodesIds, cylIds=cylIds, pfIds=pfIds, wire=False, color=color, fixed=fixed, materialNodes='gridNodeMat', material='gridConnectionMat') print('Mass of node 0: ', O.bodies[nodesIds[0]].state.mass) print('Mass of node 1: ', O.bodies[nodesIds[1]].state.mass) print('Mass of node 2: ', O.bodies[nodesIds[2]].state.mass) print('Calculated Mass: ', 4.0/3.0 * pi * r**3 * density) ##################### ##### Wall ### ##################### O.bodies.append(utils.wall(position=-1,sense=0, axis=1,color=Vector3(1,0,0),material='gridConnectionMat')) qt.View() O.saveTmp() -- 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