Passive particles and adaptive mesh refinement

Hi all, I would appreciate some guidance on the use passive particles in a model with adaptive mesh refinement.

I am using a modified version of the cookbook ‘continental_extension’ to test some ASPECT features that could be useful for my research. One of these features is tracking material properties through passive particles in a model that uses compositional fields and adaptive mesh refinement.

While doing some tests, I noticed the solution differs when the number of particles is changed, which should not happen if they are passive (model_1 and model _2 in the figure). Only the number of particles is different in the input files.

I also tested with a lower level of initial global refinement. The same thing happened, but the difference between the models with different number of particles was smaller (model_3 and model _4 in the figure).

The initial adaptive refinement remains the same for all models. The solution does not change if I re-run the same model.

Overall, it seems that as the level of refinement increases, the difference of the solution when using different number of particles is larger. This would be understandable if they were active particles, but seemingly it should not be the case for passive particles.

Perhaps I am missing something in the input file that is making the particles active, influence the mesh refinement and thus the solution.

I would appreciate some insights from you. Thank you.

model_1.prm (17.0 KB)

model_3.prm (17.0 KB)

Just in case, here is the diff between models:

@emunoz - Welcome to the community and thank you for posting the question to the forum!

You are correct that a difference in the number of passive particles in principal should not affect the solution (i.e., they are passive), but clearly something is changing.

To diagnose the issue, can you do the following:

  1. Remove particles from two models (say model_1 and model_2) and see if running them for a few time steps produces the same solution (it should).
  2. Send over the log.txt files for each of the four models you already ran? It would be good to pinpoint exactly where the solutions start to diverge.

Thank you again for posting the question to the forum and let’s get this sorted out :slight_smile:

John

Hi @jbnaliboff,

Thank you for taking the time to look into this matter.

I ran model_1 and model_2 without the subsection particles and particle postprocessor and, as expected, they produce the same solution. I also ran the same two models with the particle postprocessor but without the subsection particles, and the result is the same as the previous run and between models. It seems the subsection particles (the one outside the subsection postprocess) is causing this behavior. But then, if I remove this subsection, I am not sure how to indicate which properties I want to track or the distribution of particles I want to use.

Here are the log files for model_1 and model_2 in the original post:

log_1.txt (2.7 MB)

log_2.txt (2.2 MB)

Here are the log files for model_3 and model_4 in the original post:

log_3.txt (2.3 MB)

log_4.txt (1.9 MB)

@emunoz - Apologies for the delay in response. This is a quick note to say I reproduced the issue and also saw that the solutions diverged on the first time step when the number of particles is different.

One interesting note is that the solutions are identical if the number of nonlinear iterations is capped at 1.

I’m going to keep testing and see I can pinpoint where and why the number of particles is affecting the solution.

@emunoz A brief update - the solutions are identical when AMR is turned off, but the model contains different numbers of passive particles . When AMR is turned on, using either strain rate and/or minimum refinement function for the refinement strategy leads to divergence.

@emunoz - Thanks for your patience on this question, which we (developers, others) discussed at the regular user meeting today.

To briefly summarize, the divergence with different number of particles is related to some dependence of the adaptive mesh refinement on the particle distributions associated with the load balancing strategy (see Particles documentation).

This results in a slight AMR dependence based on both the number of MPI processes and passive particles. The slight changes in the mesh then lead to slight variations in the solution.

In this case, your careful analysis combined with the initial random strain distribution and mesh-dependence of the plasticity formulation revealed the feedbacks.

With said, if you were to run the models for an extended period of time, my guess is the solutions would be almost indiscernible.

If you would like to remove any dependence of the solution on the number of passive particles, you can use set Load balancing strategy = none within the subsection Particles.

Please let us know if you would like to discuss this further or have any additional questions!

Cheers,

John

Thank you for looking into this. I will take your suggestion into account for future models. If there is anything else related to this topic, I will let you know.