Particles and Free Surface

Hi all,

I would like to run a model using active particles and a free surface. I understand that the Particles implementation is in a preliminary state and hence its combination with a free surface is currently untested. Consequently, when I run ASPECT I get the following message:

“Combining particles and a free surface is currently untested and not officially supported. If you disable this assertion make sure you benchmark the particle accuracy, and carefully check for problems related to storing the particle reference coordinates for a deforming mesh.”

Does anyone know if there is a way to disable this assertion and run the model? I am running ASPECT 2.1.0 in OPTIMIZED mode.

Thanks!

Hi David,

Thanks for posting to the forum!

Using particles in combination with a free surface is disabled to issues with the particle advection near the free surface. There is a proposed fix for this (link), but I’m not sure what the status is.

You can remove the AssertThrow preventing using particles with a free surface by commenting out the following lines (834-839) in source/particle/world.cc: https://github.com/geodynamics/aspect/blob/master/source/particle/world.cc#L834

However, my suggestion would be to not go down this path as you will likely run into issues the same issues others have observed.

An alternative would be to use stick-air in combination with a free-slip traction upper boundary. This enables using the GMG solver, which is currently not enabled to work with the free surface. Let me know if you would like advice or help setting this up.

Out of curiosity, are compositional fields not suitable for your model applications?

Cheers,
John

Hi John,

Thank you very much for your answer! I will probably try the sticky-air strategy as well. I would like to try the Particles method apart from the normal compositional fields because precisely I am trying to find how these advection methods might produce changes in the results. It is more of a benchmarking situation.

Cheers,
David

Hi David,

If you do try the free surface with particles, my suggestion would be to use the branch in the PR linked above.

Let us know if you have any questions about the benchmarking efforts and strategies for handling specific issues!

Cheers,
John

Hi John,

I tried to use the PR but so far it is not working for me. I did a fetch of the remote PR to my local repository in a new branch, then I compiled aspect again with the changes and the compilation showed some errors. After, I tried to run ASPECT and the AssertTrhow did not show but the model crashed in time-step 0. Is there anything I can do about this?

Cheers,
David

Hi David,

Likely the PR needs to be updated, but perhaps best to just remove the AssertThrow in your own branch and see if you can run without issues.

How much surface deflection (magnitude relative to model size, wavelength) do you expect in your benchmarks? The particles + free surface only become an issues with sufficient surface deflections.

If you run into compiler or model run time errors, please post the related messages! You likely already are, but be sure to run in debug for these kind of tests.

Cheers,
John

Hi John,

I already tried removing the AssertThrow but it didn’t worked. In this model in particular I expect a surface deflection with an amplitude of about 400m relative to a model size of about 400km. I am now running in debug mode. I tried to post the compiling and run time errors but I am not allowed to upload files here.

The run time error goes like this:

*** Timestep 0: t=0 years
[david-XPS-8930:04347] *** Process received signal ***
[david-XPS-8930:04347] Signal: Segmentation fault (11)
[david-XPS-8930:04347] Signal code: (128)
[david-XPS-8930:04347] Failing at address: (nil)
[david-XPS-8930:04345] [ 0] [david-XPS-8930:04347] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7fbb9109c210]
[david-XPS-8930:04346] [ 1] [ 1] /lib/x86_64-linux-gnu/libc.so.6(+0x46210)[0x7f394e8f7210]
[david-XPS-8930:04348] [ 1] /lib/x86_64-linux-gnu/libstdc++.so.6(_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base+0x13)[0x7f249b3dd283]
[david-XPS-8930:04348] [ 2] aspect(_ZNSt23_Rb_tree_const_iteratorIjEppEv+0x1f)[0x55a13c1858bf]
david-XPS-8930:04345] [ 3] aspect(_ZNSt23_Rb_tree_const_iteratorIjEppEv+0x1f)[0x55f4431938bf]
[david-XPS-8930:04346] [ 4] aspect(_ZN6aspect15MeshDeformation22MeshDeformationHandlerILi2EE16make_constraintsEv+0x79a)[0x55a13c74d76e]
[david-XPS-8930:04345] [ 5] aspect(_ZN6aspect15MeshDeformation22MeshDeformationHandlerILi2EE7executeEv+0x143)[0x55f443759063]
[david-XPS-8930:04347] [ 6] aspect(_ZN6aspect9SimulatorILi2EE14solve_timestepEv+0x64)[0x55f443d2d62c]
[david-XPS-8930:04346] [ 7] aspect(_ZN6aspect9SimulatorILi2EE3runEv+0x523)[0x55a13cd1c8ef]
[david-XPS-8930:04345] [ 8] aspect(_Z13run_simulatorILi2EEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_bbb+0x363)[0x5645a375fcfc]
[david-XPS-8930:04347] [ 8] aspect(main+0x64f)[0x5645a3738be5]
[david-XPS-8930:04348] [ 9] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f317d47a0b3]
[david-XPS-8930:04345] *** End of error message ***
aspect(_start+0x2e)[0x55f4430ee0ee]

Thank you very much for your help!
David

Hi David,
just removing the AssertThrow will still lead to a crash. I’ve tried the change suggested in the PR, and that still works for an updated ASPECT version. I’ll test it and update the PR and keep you informed.
Cheers,
Anne

Hi Anne,

Thank you very much for your help! I tried the PR right after downloading and compiling the latest version of ASPECT. However, I got some compiling errors. See the errors attached in the files. Please keep me informed.

Cheers,
David

CompilingError.txt (17.9 KB) Error.txt (6.0 KB)