Traction boundary condition with particle compositional field in a subduction model


I am trying to run a 3D self consistent subduction model with traction boundary condition and particle compositional field. Before this model, I had tried free-slip condition for all boundaries and this model runs with no problem. However, when I changed the left boundary into an initial lithostatic traction boundary, I run into a problem where there are cells with no particles:

The violated condition was:
non_empty_neighbors != 0
Additional information:
A cell and all of its neighbors do not contain any particles. The
`cell average’ interpolation scheme does not support this case unless
specified in Allow cells without particles.

I tried to add minimum particles per cell, but it doesn’t seem to solve the problem. I must misunderstand this parameter. I thought it means generate new particles if a cell particles are below the limit.
I also tried to add “set Allow cells without particles = true”, and so far this model seems to be able to run but the composition near the left boundary does not keep the original composition even though I set:

set Fixed composition boundary indicators = left, right

Figure shows the oceanic plate, where the material flows in on the top left boundary is not oceanic plate any more.

Here are my boundary conditions and particles section inputs:

subsection Boundary velocity model
set Tangential velocity boundary indicators = top, bottom, front, back, right

subsection Boundary traction model
set Prescribed traction boundary indicators = left:initial lithostatic pressure
subsection Initial lithostatic pressure
set Representative point = 0, 0, 660000

subsection Particles
set Number of particles = 75000000
set Minimum particles per cell = 50
set Allow cells without particles = true
set Time between data output = 2e6
set Data output format = vtu
set List of particle properties = velocity, initial composition
set Interpolation scheme = bilinear least squares
set Update ghost particles = true
set Particle generator name = random uniform
subsection Interpolator
subsection Bilinear least squares
set Use linear least squares limiter = true

Is there a way to create new particles at the left boundary when material flows in while using traction boundary condition? How to keep the inflow the same composition as the initial condition?

Thank you.

Hi Xiaowen,

Fortunately, you should just need to specify one additional parameter to solve the particle issue.

Under subsection Particles, you need to set the following:
set Load balancing strategy = add particles

However, you may also want to remove particles based on a set maximum limit, as too many particles may lead to slower run times without gaining any additional accuracy. For reference, here are the particle properties I have been using for a forthcoming update the continental extension cookbook:

  subsection Particles
    set Minimum particles per cell  = 40
    set Maximum particles per cell  = 60
    set Load balancing strategy     = remove and add particles
    set List of particle properties = initial composition, viscoplastic strain invariants, pT path, position
    set Interpolation scheme        = quadratic least squares
    set Update ghost particles      = true
    set Particle generator name     = reference cell
    subsection Generator
      subsection Reference cell
        set Number of particles per cell per direction = 7
    subsection Interpolator
      subsection Quadratic least squares
        set Use boundary extrapolation          = false
        set Use quadratic least squares limiter = true
    set Time between data output    = 10.e3
    set Data output format          = vtu

I hope this helps!

  • John

Hi John,

Thank you. Yes, I just tried your way and it works!