ERROR: Fix property/global (id m3): per-atom type property matrix must be symmetric

Submitted by laudari on Mon, 12/06/2021 - 10:56

Hello,

I am trying to do simulation with two different particles at once.
So my first simulation will include particles differe in their cofficient of restitution,

This is my script
```
#Simple chute wear test

atom_style granular #Simulation of particles
atom_modify map array
boundary f f f #fixed boundaries -> particles will be deleted if leaving the simulation box
newton off
communicate single vel yes #default
units si #default
###################################System variables##################################################################
#Definition of boundaries
variable xmin equal -0.5
variable xmax equal 0.1 #Extension of the simulation box in x direction to have space for a second ground

variable ymin equal -0.2
variable ymax equal 0.2

variable zmin equal -0.4
variable zmax equal 0.15

#Definition of the timestep

variable dt equal 1e-5 #timestep = 0.0001 second; Each iteration step represents 0.0001 seconds.

###################################Specific variables for current simulation#########################################

variable natoms equal 2 #1 -> particle #2->hopper,frame and ground, lid

####variable for material properties####

####Young Modulus####
variable youngmodulus1 equal 5.e6 #N/mm²
variable youngmodulus2 equal 5.e6 #N/mm²

####Poission ratio####
variable poission1 equal 0.45
variable poission2 equal 0.45

####variable for contact properties####

####coefficient of restitution####
variable CoR11 equal 0.5
variable CoR12 equal 0.5
variable CoR21 equal 0.7
variable CoR22 equal 0.7

####sliding friction coefficient####
variable sf11 equal 0.4
variable sf12 equal 0.4
variable sf21 equal 0.4
variable sf22 equal 0.4

####rolling friction coefficient####
variable rf11 equal 0.8
variable rf12 equal 0.8
variable rf21 equal 0.8
variable rf22 equal 0.8

####k_finnie peratomtypepair####
variable KfP11 equal 0.5
variable KfP12 equal 0.5
variable KfP21 equal 0.5
variable KfP22 equal 0.5

####variable for particle####

#Number of particle radius
variable nradii equal 2

variable radius1 equal 0.001 #m
variable radius2 equal 0.001 #m

variable frac1 equal 0.5 #50%
variable frac2 equal 0.5 #50%

variable density equal 2500 #kg/m³

###################################Definition of simulationbox#######################################################

region reg block ${xmin} ${xmax} ${ymin} ${ymax} ${zmin} ${zmax} units box
create_box 2 reg

neighbor 0.002 bin #default
neigh_modify delay 0 #default

###################################Definition of Material properties#################################################
#Material properties required for new pair styles
fix m1 all property/global youngsModulus peratomtype ${youngmodulus1} ${youngmodulus2}
fix m2 all property/global poissonsRatio peratomtype ${poission1} ${poission2}
fix m3 all property/global coefficientRestitution peratomtypepair ${natoms} ${CoR11} ${CoR12} ${CoR21} ${CoR22}
fix m4 all property/global coefficientFriction peratomtypepair ${natoms} ${sf11} ${sf12} ${sf21} ${sf22}
fix m5 all property/global coefficientRollingFriction peratomtypepair ${natoms} ${rf11} ${rf12} ${rf21} ${rf22}
fix m6 all property/global k_finnie peratomtypepair ${natoms} ${KfP11} ${KfP12} ${KfP21} ${KfP22}

#################################Definition of the contact models####################################################
#New pair style
pair_style gran model hertz tangential history #Hertzian without cohesion
pair_coeff * *

timestep ${dt} #default 0.00001

fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
###################################Generation and Loading of the Geometry stl#######################################

#Import mesh
fix cad all mesh/surface/stress file meshes/simple_chute.stl type 1 wear finnie
#fix inface all mesh/surface file meshes/insertion_face.stl type 1
fix granwalls all wall/gran model hertz tangential history mesh n_meshes 1 meshes cad

###########Define primitive wall#######################################################

fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane ${xmin}
fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane ${xmax}
fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane ${ymin}
fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane ${ymax}
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane ${zmin}
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane ${zmax}

#fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 0.05 0. 0.

###################################Generation cylinderical Insertion area #########################################
# if this one is activated then we don't need particles insertion cad

#region and insertion
group nve_group region reg
#region bc cylinder z 0.0 0.0 0.015 0.05 0.12 units box
region bc cylinder z 0.0 0.0 0.012 0.01 0.05 units box

###################################Generation and Insertion of the particles#########################################

#distributions for insertion

fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant ${density} radius constant ${radius1}
fix pts2 all particletemplate/sphere 15485867 atom_type 2 density constant ${density} radius constant ${radius2}
fix pdd1 all particledistribution/discrete 32452843 ${nradii} pts1 ${frac1} pts2 ${frac2}

fix ins nve_group insert/stream seed 32452867 distributiontemplate pdd1 &
nparticles 100 massrate 0.1 insert_every 500 overlapcheck yes all_in no vel constant 0.0 0.0 -1.0 &
insertion_face inface

##########################################################################################################

#variable step equal step
#variable startStep equal ${step}+1

###################################Thermodynamics properties ############################

#apply nve integration to all particles that are inserted as single particles

fix integr nve_group nve/sphere

#output settings, include total thermal energy
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 10004
thermo_modify lost ignore norm no

###################################Dumping of the data for post-processing to visualize############################

#insert the first particles so that dump is not empty
run 1
dump dmp all custom/vtk 1000 post/chute_*.vtk id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
dump dumpstress all mesh/gran/VTK 1000 post/mesh_*.vtk stress wear cad
dump dmp0 all custom 1000 all/dump*.data id type x y z vx vy vz fx fy fz

#insert particles
run 150000 upto
unfix ins

```

When ever I give different cofficient of restitution values,

it gives me this error:

ERROR: Fix property/global (id m3): per-atom type property matrix must be symmetric

How can I solve it?

Any help and suggestion would be appreciated.

Thanks in advanced.

Daniel Queteschiner | Mon, 12/06/2021 - 12:52

CoR12 and CoR21 must have the same value to make the matrix of coefficients symmetric (that means a particle of type 1 hitting a particle of type 2 results in the same coefficient of restitution as a particle of type 2 hitting a particle of type 1 - it's exactly the same contact ...):
/ CoR11 CoR12 \
\ CoR21 CoR22 /

laudari | Tue, 12/07/2021 - 08:20

Thank you for you answer.

I tried to insert particles in this way(this way it works):

####coefficient of restitution####
variable CoR11 equal 0.5
variable CoR12 equal 0.7
variable CoR21 equal 0.7
variable CoR22 equal 0.5

Does it give me two different type of particles where one CoR is 0.5 and another is 0.7?

Thanks a lot.