# Viscoelastic and compositional fields

Dear all,
I am working on simple models that would need however different Compositional fields with different initial viscosities assigned. To accomplish this I am using the Viscoelastic Material model. However, I have some doubt about the definition of the Compositional fields:
I know that for 2D models, the first three compositional fields must be labeled ’stress_xx’, ’stress_yy’ and ’stress_xy’. But then I have to assign these three “fields” different viscosities, geometries (using functions), temperatures (using functions). What about their geological significance? Would 0 be a correct value, at least for functions, to allow the code their proper calculation without interfering? What about viscosity? An average viscosity would be ok?

Eleonora

Hi Nora,

We are using the viscoelastic material model also with other compositional fields.I had the same question as you when I was figuring out what to enter.
There is a Component Mask used which sets the volume fraction for the three stress components to zero so that they do not get included in the compositional averaging of density or viscosity for each node. However, as far as I could tell, the viscosity does get calculated for the stress, so you don’t want to use values that will lead to a divide by 0. I used 0 for all the rheology parameters EXCEPT for the pre-exponent, for this I used 1. I can’t remember right now if I did this because I had a divide by zero problem or was just being cautious. For density I just entered 0.

Hope this helps,
Magali

Dear Magali,

All the best,
Eleonora

Dear all,
I am using this same post since the topic is pretty similar.
I would like to make the same simple model, with different Compositional fields with different initial viscosities assigned, using a viscoplastic material model instead of the viscoelastic one.
I am trying to achieve this using the constant viscosity prefactors to adjust viscosity differences among compositional fields. However, I just get a domain with an average viscosity. Am I dealing with this problem in the right way?

Eleonora

Hi Eleonora,

I am trying to achieve this using the constant viscosity prefactors to adjust viscosity differences among compositional fields.

Indeed, this is the correct approach.

However, I just get a domain with an average viscosity. Am I dealing with this problem in the right way?

Can you post an image of the viscosity field and the material model section of the parameter file?

Thanks!
John

Dear John,
Below you find the Initial composition and the Material model section in which I specify the prefactor values, and the paraview output. Could the problem be related to the fact that I am specifying horizontal variations of viscosity as well as vertical changes?

Thanks again,
Eleonora

###########################
subsection Initial composition model
set Model name = function
subsection Function
set Function constants = x1=400000, z1=120000
set Variable names = x, z
set Function expression = if ((x<=x1 && z<z1), 1, 0);
if ((x>x1 && z<z1), 1, 0);
if ((z>z1), 1, 0);
end
end

subsection Material model
set Model name = visco plastic
subsection Visco Plastic
set Cohesions = 1e7
set Constant viscosity prefactors = 1, 1e-5, 1e-4, 1e3
set Reference temperature = 1623.15
set Heat capacities = 1350
set Reference viscosity = 1e22
set Maximum viscosity = 1e25
set Minimum viscosity = 1e17
set Densities = 3300
set Define thermal conductivities = true
set Thermal conductivities = 3.3
set Thermal expansivities = 2e-5
end
end
#################################

Hi Eleonora,

Thank you for posting that snippet of the PRM file. I think the issue is that you are not defining some of the flow law values as 1 (exponent) or 0 (activation energy, volume).

The following prm file has an example of how to set fixed initial viscosities for different lithologies, which are then subject to yielding:
https://github.com/geodynamics/aspect/blob/main/benchmarks/viscoelastic_plastic_shear_bands/gerya_2019/gerya_2019_vp.prm

Can you take a look at that example and see if you can apply the approach to your models?

Let us know if you have any questions about the linked benchmark!

John

Dear John,
thanks for your suggestion. I am using the Frank Kamenentskii flow law (below you find how I applied it).

subsection Material model
set Model name = visco plastic
subsection Visco Plastic
set Cohesions = 1e7
set Constant viscosity prefactors = 1, 1e-5, 1e-4, 1e3
set Reference temperature = 1623.15
set Heat capacities = 1350
set Reference viscosity = 1e22
set Maximum viscosity = 1e25
set Minimum viscosity = 1e17
set Densities = 3300
set Define thermal conductivities = true
set Thermal conductivities = 3.3
set Thermal expansivities = 2e-5
set Viscous flow law = frank kamenetskii
set Prefactors for Frank Kamenetskii = 1e19
set Viscosity ratios for Frank Kamenetskii = 34
end
end

I tried to use the method used in the benchmark you sent me in different ways:

• applying 1 to both prefactors and ratios.
• modifying the flow law (composite), the exponent, and activation volume and energy putting them as in the benchmark you sent.
-modifying the constant viscosity prefactors.

Unfortunately, the results is always a viscosity value of 1e17 for the entire domain.

Thanks a lot,
Eleonora

Hi Eleonora,

I think that the fact that the viscosity everywhere is 1e17 Pa s provides some hints as to what is happening.

My guess is that the selected parameters combined with your temperature and adabiatic temperature profiles are producing viscosities at or below 1e17 Pa s, which is your defined minimum viscosity.

Can you look at the temperature and adiabatic temperatures at a given point in your model, and then see if you would indeed get viscosities lower than 1e17 based on the Frank Kamenetskii equation in ASPECT?:

However, my understanding is that you would like to have fixed viscosities for each compositional layer. If this is correct, then you would need to set the viscosity ratio value to 0, which should then produce viscosities that are equal to the prefactor value. Can you give this a try and see if it produces the desired result?

Cheers,
John

Dear John,
thanks for this suggestion. I already tried all these attempt, but reading your message I realized that more prefactor values could be assigned directly to Frank Kamenetskii, related to different compositional fields. I was using just one (and using different constant viscosity prefactors), and this was the reason why I was having a single viscosity value throughout the entire domain.

Thank you a lot for your help!

All the best,
Eleonora