2D sheared fault gouge simulation with ESyS_Particle

Asked by Michele Griffa

Hello

I need to run some preliminary simulation tests of shearing 2D granular layers, in order to investigate the role of particle-scale parameters in the dynamics of sheared fault gouge (the physical granular medium in my case). I also need to record the displacement and velocity at the walls imparting the shearing (or of particles in contact with them) in order to monitor Acoustic Emission events produced by slips of (layers/clusters of) particles.
At ESyS_Particle's Python API Web page a module for running a shearing gouge simulation is mentioned but it seems to be a general module to run simulations.

Does anybody know if there are examples of ESyS_Particle Python script "templates" to model a 2D fault gouge and performing a shearing simulation ?

How to implement a Runnable in order to add the recording of displacement/velocity at the shearing/driving plates ?

Thanks a lot for your help

Michele

Question information

Language:
English Edit question
Status:
Answered
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Dion Weatherley (d-weatherley) said :
#1

Hi Michele,

You might want to check out the source code for the 2D gouge benchmark mentioned in the ESyS-Particle API documentation. The source code can be found in the Python/esys/lsm/benchmarks/gouge2d/ directory.

To run this example you will first need to run the gengouge.sh script to generate a suitable geometry file. It would appear that gengouge.sh takes two arguments, the X- and Y- dimensions of the shear cell. To execute it, type:

sh gengouge.sh xdim ydim

where xdim and ydim should be numbers.

The actual simulation script is in gouge2dbench.py, although it is written in compact form so is not a terribly instructive script. It would appear that this script takes two arguments also: the number of parallel subdivisions in the X- and Y- directions. To execute it, type:

mpirun -np (N+1) `which mpipython` gouge2dbench.py Nx Ny

where N=(Nx+Ny).

Regarding your other question on recording displacements/velocities at the shearing plates: It would be best to record displacements/velocities of tagged particles near the plates rather than try to measure this on the plates themselves. Conveniently, particles near the bottom plate already have tag=3 and particles near the top plate have tag=4.

Here's how I suggest you get the displacements/velocities of the tagged particles:
1/ Before mySim.run() is called, get a list of all particles with mySim.getParticleList(), and search this list to create a list of IDs (IDlist) of particles with tag 3 or 4.
2/ Pass this list as an argument to a Runnable that periodically calls mySim.getParticleList(IDlist) to grab a copy of particles with the specified tags
3/ Write out the displacements/velocities of the particles returned in step 2.

Hope this helps and good luck.

Cheers,

Dion.

Revision history for this message
Dion Weatherley (d-weatherley) said :
#2

Hi Michele,

Just noticed a minor error in my reply above. It should have said

"where N=(Nx*Ny)"

instead of "where N=(Nx+Ny)".

Cheers,

Dion.

Revision history for this message
Michele Griffa (michele-griffa) said :
#3

Hi Dion

Thanks a lot for your answer.

The gengouge.sh shell script is calling in a program (I guess another shell script) call gengeo.
However, I cannot find gengeo anywhere in ESyS_Particle directory structure. Was it included in the previous release of ESyS_Particle ?
Is it related to/part of the LSMGenGeo library under development you mentioned to me a few weeks ago ?
Please, let me know.
From the shell script gengouge.sh, I see that it needs some options. I guess their meaning will be clear when you read the script and see how it uses them to write the output file .geo passed as input to the Python LSM script, gouge2dbench.py.

Is gengeo self described, in order to understand how the fault gouge is created at time 0 of the simulation ? If not, any reference in papers published by your Research Group (previous examples, etc. ...) ?

Thanks a lot for the suggestion about where to record the displacement/velocity of particles.

I anticipate another question.
Are there some examples or templates for analogue shearing simulations with 3D models of fault gouge ?

In addition, do you think it would be useful to post to this User's Forum details about the simulations I will perform, including providing the ESyS_Particle Python scripts, in case I'll perform slightly different simulations from the standard setup provided by the default scripts ?

Thanks a lot again

Best regards

Michele

Revision history for this message
Launchpad Janitor (janitor) said :
#4

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

Revision history for this message
Dion Weatherley (d-weatherley) said :
#5

Hi,

A number of ESyS-Particle users are conducting either 2D or 3D simulations of sheared granular media. Given the interest in examples of how to do this, an updated tutorial on shear cell simulations will be included with the upcoming ESyS-Particle v2.0 release. We are currently transitioning from the older 'gengeo' particle geometry setup tools to a new Python module called LSMGenGeo that provides considerably greater flexibility in the creation of particle geometries for ESyS-Particle simulations. LSMGenGeo is particularly well-suited for creating particle geometries for shear cell simulations.

If you would like further information about LSMGenGeo or shear cell simulations prior to the v2.0 release, feel free to post your questions here.

Cheers,

Dion.

Can you help with this problem?

Provide an answer of your own, or ask Michele Griffa for more information if necessary.

To post a message you must log in.