[lammps-users] pair_style peri/pmb

Dear LAMMPS users,

I would like to study wear of ductile material. I'm considering to use the Peridynamics model.

My questions are:

1.) Is there anybody going to implement a plastic material model into LAMMPS as well or are there
better suited open source packages for this?

2.) Are there any principal limitations that would hinder me to modify the existing pmb model for
lets say making the spring constant strain dependent and strain rate dependent?

3.) Why the model only supports cubic lattice? Does the lattice imply the direction of crack growth?

With kind regards
Thomas Wagner.

There are many variants of Peridynamics (PD), only a basic
model is in LAMMPS. You can use the pmb model as a starting
point for other variants; people are already doing this internally.
Re: cubic lattice, I think you can input any initial config of particles
you want.

Mike Parks (CCd) may want to comment on these Qs.



   Thanks for your interest in peridynamics. In answer to your questions,

1) I have no plans to implement a plastic material model into LAMMPS. However, we are implementing a plasticity model (section 16 of this paper: http://dx.doi.org/10.1007/s10659-007-9125-1) into a production peridynamic code, "Peridigm", currently under development. If you have interest in using this code when it becomes available, please contact me directly. I also have plans to release the linear peridynamic solid (section 15 of the same paper) in LAMMPS.

2) I don't believe there are any inherent limitations to adding rate dependence.

3) The reason to allow only simple cubic lattices was to simplify other parts of the program. There's no inherent obstacle to using other lattices. I do not have plans to allow for other types of lattices in the near future, but it's not hard to add them in yourself. Here's a sketch of what you'd need to do to allow for other lattice types:

   (1) In the routine PairPeriPMB::init_style(), comment out the code that restricts the lattice constant be the same in x,y,z.
   (2) Look for references to lc and half_lc in PairPeriPMB::compute() and PairPeriPMB::single(). For a simple cubic lattice, lc is defined to be the lattice constant, and half_lc = lc/2. These variables are used for two purposes:
   (2a) The first is for computation of short range forces, in the variable d_ij. If the lattice constant is different in x,y,z, you'll need to develop an alternate definition of interpenetration that works for another lattice in the definition of d_ij. (See section 4.2 of the "PDLAMMPS user guide" for more on short-range forces.)
   (2b) The second use is for computing the volume fraction. You'll want to define vfrac_scale in a meaningful way for different lattices. (See section 4.3 and Figure 1 of the user guide for more information.)

- Mike