we am currently using the pair_style peri/pmb to simulate PMMA (LAMMPS 30March2018 version).
We found some problems when we tried to weaken the bonds acting between two different blocks of PMMA: from our understanding of the theory as stated in www.sandia.gov/~mlparks/papers/pd-lammps-cpc.pdf (equation 9 in particular), the parameters s00 and alpha need not be the same for all the pair interactions (at least in principle). Our idea was to use a smaller s00 for the interactions between the two blocks initially at contact, so to determine an area where a crack is more likely to initiate. We would prefer this solution as opposed to the one we found suggested in this mailing list, i.e. to weaken the 'effective spring constant' of the Peridynamic bond, as this choice would affect also the short-range repulsion (eq.10a of the same article).
However this fails to work in the present implementation. Specifically, in the pair_peri_pmb.cpp source we find the line :
MAX(s0_new[i],s00[itype][jtype] - (alpha[itype][jtype] * stretch)) (L266)
not to implement equation 9 mentioned above: instead of really minimizing the stretch within the horizon of particle i, in the code the total quantity s0 is maximized.
This implementation happens to work when all the alpha's and the s00's are the same, but fails to make the crack easier when we have a smaller s00 at the interface (because the MAX will not select that smaller value). If different alpha's and s00's (depending on the particles type) appear within the horizon of the i particle, the MAX over the total quantity s0 is in general different from a combination of the appropriate s00 for that bond with the MIN over the stretch for that particle.
We tried to modify pair_peri_pmb.cpp (attached to this email), but our version currently works only in the special case alpha=0.
This is a simple&quick input file (also attached) which illustrates the problem we are referring to:
pair_peri_pmb.cpp.gz (4.35 KB)
in.pmb.peri.gz (737 Bytes)