Restarting a Moving Mesh Wall

Submitted by estefan31 on Sat, 03/18/2017 - 23:26

I am trying to simulate a direct shear test that has 12 mesh walls each with 2 triangles. The upper and lower walls are used to compact the specimen, so their position and velocity change. I have two fix mesh/surface/stress/servo commands and ten fix mesh/surface/stress commands. I am trying to use a write_restart command after the compaction stage so I can restart more simulations without having to repeat the compaction process. How do I save the particle configuration as well as the mesh configuration and then load both of them into a new simulation? Reloading the particle configuration seems clear, but the fix move/mesh documentation only says "This fix writes the STL data to binary restart files to be able to correctly resume the simulation in case the mesh is moved." This doesn't really explain how exactly to save the STL data to binary restart files or how to ultimately load them into a new configuration.

Also, quick question: can I use write_restart and read_restart with fix multisphere in the latest version of LIGGGHTS?

ckloss's picture

ckloss | Sun, 04/23/2017 - 12:02

Hi Estafan,

the restart file contains the positions of the mesh elements so you can continue the simulation at this point. Also, the same goes for multi-sphere

Christoph

estefan31 | Tue, 04/25/2017 - 19:26

Hi Chris,

I finally figured it out after getting some segmentation faults. I posted a bug report about the issue I found. Basically, if fix property/global is modified later in the simulation without first using an unfix command on a particular contact property then a restart file using multispheres will crash. Things are now working wonderfully after making sure to use unfix whenever I want to change a contact property.

Baric | Thu, 04/27/2017 - 09:41

Since which version of LIGGGHTS do the restart files contain the mesh data? I only do a constant velocity movement, therefore I know exactly where the wall has been. When I run a restart, I use the fix mesh/surface/stress and fix move/mesh again to place the wall where it has to be. In that case no wall is added from restart file.

Regards,
Baric

estefan31 | Thu, 04/27/2017 - 19:08

Hi Baric,

In the latest version (3.6.0) the wall can be added from the restart file but I'm pretty sure you have to call it with a fix command by the same name as the one used to save the wall in the restart file. So if your mesh/surface/stress is labeled something like "movestuff" then you have to call "fix movestuff all mesh/surface/stress." But the parameters you use in that command will dictate the position and properties of the wall instead of the parameters used when the restart file was saved.

Baric | Fri, 04/28/2017 - 08:37

Ah okay, than I have been using it correctly already. Is there a way that it is not necessary to define the position of the mesh in the restartfile?

estefan31 | Fri, 04/28/2017 - 19:54

Oh I think I misspoke. I have a note in my script that says the position of the mesh should be stored in the restart file. I've been using the pre-restartfile center of mass for a servo wall and the wall would still be restarted in it's most recently saved position instead of the center of mass position I specified. So the way I understand it, the position is automatically stored in the restart file. So I'm not sure if the "com" or "reference_point" parameters actually need to be anything specific if you use mesh/surface/stress or mesh/surface/stress/servo. However, if you use a servo wall then the servo control parameters do need to be updated after loading the restart file. So it sounds like your script is good to go just as it is now.

AnjanaKittu | Fri, 02/16/2018 - 17:13

Hi estefan,
I am a new user to liggghts. Could you explain more about "the servo control parameters do need to be updated after loading the restart file" in your comment above? I am trying to restart a direct shear test and I get an error "could not find fix mesh id you provided ". I could not understand what this means. Any help is appreciated.

Thank you!!

estefan31 | Mon, 02/26/2018 - 21:40

I don't remember exactly what I meant back when I wrote that comment, but I think I was saying that when you restart a simulation that used a servo-wall, the parameters controlling the servo-mechanism are stored in the restart file. Your error is telling you that you are referencing a mesh id that has not been specified in your script. Whatever mesh id you input in the command that gave you that error, look through the previous mesh commands and you'll see that the mesh name it is trying to find does not exist.

AnjanaKittu | Fri, 03/02/2018 - 19:05

I fixed that issue with my code. Thank you so much for your suggestions!