Visco-plastic module, aborts with some combinations single or multiple parameter input

I am starting with the bending beam benchmark and changing the material model from the Viscoelastic module to Visco Plastic module so we can play with plasticity. This model has 4 composition fields - the first three are form the stress components and the last one is to define the location of the beam. The first test we wanted to do to make sure we “translated” the material models correctly was to replicate the visco-elastic benchmark just using the Visco Plastic module.

When changing the material model we came across a strange issue that causes the run to abort in the first time step. The trigger seems to be whether only one a value is entered for a material model parameter, e.g., :

 set Elastic shear moduli   = 1.0e11  

AND multiple values are entered for a different variable, e.g.,

set Prefactors for dislocation creep          = 0.5e-18, 0.5e-18, 0.5e-18, 0.5e-18, 0.5e-24

This causes the run to abort in the Stokes Solve of the first time-step. However, if I instead set, I set:

set Elastic shear moduli   = 1.0e11, 1.0e11, 1.0e11, 1.0e11, 1.0e10

Then this runs without a problem.

In these two cases, the other viscosity parameters were set as

set Stress exponents for dislocation creep    = 1.0
set Activation energies for dislocation creep = 0.0
set Activation volumes for dislocation creep  = 0.0

So it seems weird that we need to specific the values of the elastic moduli for all compositions, but we don’t have to do this for the other flow law parameters.

BUT (here’s the weird part), going from the successful run, I try to do this:

set Stress exponents for dislocation creep    = 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
set Activation energies for dislocation creep = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
set Activation volumes for dislocation creep  = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0

It aborts before entering the first time-step.

My understanding is that for all these parameters, I can choose (independently) if I set one value to be used by all compositions or set a list of values for each composition + background.

So, something strange seems to be going on. All three test were run with everything else exactly the same. The one that does not abort behaves exactly as expected (e.g, exactly like the output from Viscoelastic since we are replicating that set-up using Visco Plastic)

I’ve attached a file showing a snippet of part of the Visco Plastic subsection and then output of the run. I’ve also uploaded the full prm.

let me know if this is an issue I should open on git.,

weird_abort _bug.txt (4.2 KB)
vep_testnew_uniform_mesh.prm (7.5 KB)

Hi Magali,

I do not have a problem running your input file to at least Timestep 20. We’re both using the latest commit (main, 029548bd7) with 1 MPI process. The only differences I can see are that I’m using Trilinos 12.18.1 and p4est 2.3.2, while you’re using Trilinos 13.0.0 and p4est 2.8.0. That shouldn’t make a difference.

Could you post the full error output and maybe try debugging with gdb? It’s hard to chase down the issue when I can’t reproduce it.

For your second problem, you should see during the abort the following message:

Additional information: 
    The string for property <Stress exponents for dislocation creep> does
    not have the expected format. Check that the string is either a comma
    separated list of `<double>' or `<key1> : <double>|<double>|...,
    <key2> : <double>|... , ... '. If the string looks correct, it is
    likely that the length of the list of keys passed to
    parse_map_to_double_array does not match the length of the comma
    separated property list.

That error message tells you that you have the wrong number of items in your list (6, it should be 5).

If you find the whole five parameters for two compositions thing weird, you aren’t alone. Last year I started using our new “Field types” system that would sanitise a lot of these models ([WIP] Field types for viscoelasticity and corresponding rheology and EoS modules by bobmyhill · Pull Request #4260 · geodynamics/aspect · GitHub), but because the change introduces backwards-incompatibility and a lot of broken tests it requires some quiet time to finish off. Sadly I wasn’t able to attend the hack this year to do that, but it’s still on the to-do list.

Best wishes,

Hello Bob,

Thank you for you help, and sorry for the counting problem in the second issue.

I think the issue with only getting an about message and no other error information may be because we are running these small cases on a Mac. Is error message handling dealt with differently on a Mac compared to linux machine?

I will try the on the cluster instead and see if I still have an issue or not with the first case - or if I get message that is useful.


Hi Magali,

I’m using a Mac as well. In my experience, the error messages do look a bit different from OS to OS (where in the output the useful error message is), but I’ve never had a case where the error message isn’t shown in debug mode.

Yes, let us know whether the first case is still failing on the cluster. We should definitely get to the root of your Mac problem though.