Dear Sirs,

We have been trying to use the peri dynamics package implemented in lamps for performing tensile/compression tests on a number of materials at macro-scale. We have tried many ways to calculated the stresses (to extract the stress-strain response of the samples for validation) but we failed. The ways we tried are as follows:

Load application models:

- Applying a velocity to the toplayer of a 2D model (using setforce)
- Applying an indent to the toplayer of a 2D model
- Changing the size of the box

Applied stress measurement models:

- Compute the average stress of the toplayer atoms
- Compute the average force of the toplayer atoms
- Derivation of the kinetic energy of the system

None of the mentioned methods produced what is expected. We have assumed all conditions (including if the stresses or forces are in stress/force unit or stress/force/volume unit)

I was wondering if you could help us and let us know what is the correct way to do this.

Many thanks!

Bahman.

Dr Bahman Ghiassi BSc MSc PhD AFHEA

**Assistant Professor in Structural Engineering**

Centre for Structural Engineering and Informatics

Faculty of Engineering

Dept of Civil Engineering

The University of Nottingham

Nottingham NG7 2RD

**E-mail:** bahman.ghiassi@…3688…

**Phone:** +44 (0) 1157487163

**Follow us**

Facebook.com/TheUniofNottingham

Twitter.com/UniofNottingham

Youtube.com/nottmuniversity

Flickr.com/photos/uonottingham

Linkedin.com/company/university-of-nottingham

Foursquare.com/uniofnottingham

I am not an expert in peridynamics, so I cannot provide any specific advice on that, but there are more general problems with your message, so please take that into account when replying/reposting.

your question is too vague and too unspecific to give any specific advice. there are multiple peridynamics models implemented in LAMMPS, but you don’t say which ones you tried and what kind of materials you applied them to. as a starting point, you should confirm that you have reproduced some reference results from publications using the models in LAMMPS.

secondly, you do not define what “failure” means, i.e. what you compared to what and why you consider this a failure.

that needs to keep in mind, that the various models in LAMMPS make assumptions about the kind of material they can be applied to and all models being approximations, one has to take that into account when comparing results. stresses in particular are very sensitive to even small changes, so the error margins in general are expected to be comparatively large. also, if you refer to specific models you also need to explain how to you determined the model parameters.

in general, it is also always a good idea to provide some simple, small example that is representative of the kind of issue you are observing.

finally, whenever discussing issues about LAMMPS not functioning as expected, please state the specific version you are using and the platform you are running on, and - if possible - check with the latest patch release. this is less relevant in the case of such generic questions, but it is always good practice to do it just in case there is a well hidden bug that was since discovered.

axel.

Dear Axel,

First of all, I really appreciate your prompt reply. I am sorry if the question was vague.

We are using lammps 19 July 2019 version.

The issue is we think the stress/forces calculations in atoms in peridynamics package is somehow different than that of other packages and we can find out what is this difference.

In a simple example, attached, we are trying to simulate a compression test on an solid material. Material parameters are calculated according to plane stress conditions in peridynamics. In this model pmb package is being used. We apply the force by moving the toplayer by a certain speed until failure happens. Then we try to extract the stress-strain curve of the sample (global stress-strain curve). The problem it seems that we fail to get the expected young modulus (slope of the stress-strain curve) that is because we are not able to calculate the stresses (global stress applied to the system = Force/section area) accurately.

For calculating the stresses applied to the system (in each time step) we have tried various ways and we did not get what we expected (we could not get the young modulus we expect). These ways were:

Applied stress measurement models:

- Compute the average stress of the toplayer atoms
- Compute the average force of the toplayer atoms
- Derivation of the kinetic energy of the system

For that I am using the following thermo command:

thermo_style custom step v_totdam v_dam v_strain c_forcetop c_pe f_2[2]

I have assumed the stress can be as follows:

- c_forcetop/cross section area
- c_forcetop*volume of each atom/cross section area
- f_2[2]/cross section area
- f_2[2]*volume of each atom/cross section area
- derivative of the c_pe to strain

I suspect we are doing something in calculating the stress applied to the system. I hope this clarifies a bit?

Many thanks and I really appreciate any input you could give!

Best regards,

Bahman.

V2.lmp (4.73 KB)

Dear Axel,

First of all, I really appreciate your prompt reply. I am sorry if the question was vague.

there is still a lot to be desired in your response. you are still not providing anything that quantifies how you decide what is sufficiently accurate and what not. furthermore, you don’t provide any confirmation that your simulations can successfully reproduce published data from the references describing the implementation of the method you are using. both of these are crucial to get a qualified response. please keep in mind that when contacting people via e-mail they no nothing about you and your level of experience and degree of (theoretical and methodological) expertise, so they will have to assume the worst.

that all said, I cannot provide any specific advice, since this is outside of my area of expertise.

if you want to get a comment on the accuracy of the stress calculations and requirements (e.g. system size, averaging, calculation protocol and more), the first step would be that you provide convincing proof that the stresses themselves you compute are reproducing reference results and thus your calculations are consistent with the theory. only after that is would be prudent to discuss the method of obtaining stress/strain relations. as i already mentioned, when using a model, you can only get the level of accuracy that is consistent with with model itself and that requires that you realize that model correctly. transferring calculations on different materials is something that should only be attempted after you have confirmed that a) you are using the model correctly and b) that the model is capable of reproducing the property of interest.

a finaly comment: a lot of the LAMMPS code is contributed by people other than the core LAMMPS developers and most of those are not subscribed to this mailing list or will only reply when they see that a message falls into their area of expertise. so it would be very helpful to use a more descriptive subject line and - if nobody offers specific help after a reasonable amount of time - you look up the individual author(s) from the source code or the relevant publications and try to contact them directly.

axel.

Let me second what Axel said about PD:

a finaly comment: a lot of the LAMMPS code is contributed by people other than the core LAMMPS developers and most of those are not subscribed to this mailing list or will only reply when they see that a message falls into their area of expertise. so it would be very helpful to use a more descriptive subject line and - if nobody offers specific help after a reasonable amount of time - you look up the individual author(s) from the source code or the relevant publications and try to contact them directly.

For your Qs about stress in PD, contacting the authors of those

LAMMPS files would be the best route. Rezwanur R and John F

are listed at the top of several of the pair peri files, at USTA.

I don’t think LAMMPS is doing anything unique for PD regarding

stress, other than treating it as a pairwise potential. If you

look in the source code for the pair styles, the calls

to ev_tally are what are tallying the virial for each pairwise

interaction. That is what compute pressure or compute stress/atom

accesses to output stress.

For further PD details, I suggest contacting John F.

Steve

Thanks both. I will proceed as suggested.

Bests,

Bahman.