# What kinds of Compositional field that ASPECT has presupposed?

**URL:** <https://community.geodynamics.org/t/what-kinds-of-compositional-field-that-aspect-has-presupposed/4543>\
**Category:** ASPECT\
**Created:** [June 3, 2026, 7:48am UTC](https://community.geodynamics.org/t/what-kinds-of-compositional-field-that-aspect-has-presupposed/4543 "2026-06-03T07:48:16Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![guit-hub](https://yyz2.discourse-cdn.com/flex036/user_avatar/community.geodynamics.org/guit-hub/32/3105_2.png) [@guit-hub](https://community.geodynamics.org/u/guit-hub)\
**Post date:** [June 3, 2026, 7:48am UTC](https://community.geodynamics.org/t/what-kinds-of-compositional-field-that-aspect-has-presupposed/4543/1 "2026-06-03T07:48:16Z")

</div>

I set some compositional field in custom,like this:

```auto
subsection Compositional fields
  set Number of fields = 7
  set Names of fields = upper_crust, middle_crust, lower_crust, \
                         lithosphere, asthenosphere, eclogite, weak_zone
end

```

I know exactly that ASPECT can’t distinguish these compositions.But I also encount an error like:

```auto
An error occurred in line <252> of file </hpcdata/home/research/hzhang02/opt/aspect-3.0.0/source/material_model/rheology/strain_dependent.cc> in function
    void aspect::MaterialModel::Rheology::StrainDependent<dim>::parse_parameters(dealii::ParameterHandler&) [with int dim = 2]
The violated condition was:
    this->introspection().compositional_name_exists("plastic_strain")
Additional information:
    Material model visco_plastic with plastic strain weakening only works
    if there is a compositional field called plastic_strain.

```

So I guess there really is a composition called plastic\_strain.  
But I want to know where I can find exactly all these compositions implemented internally,like “upper”,“slab”,and so on.  
Thanks and looking forward for any guidance and advice.

[comeau1.prm](https://community.geodynamics.org/uploads/short-url/g3YV20TjbcZsYIJp69ZBBYQsbhV.prm) (12.0 KB)

---

<div class="post-metadata">

**Author:** ![optimux](https://avatars.discourse-cdn.com/v4/letter/o/f14d63/32.png) [@optimux](https://community.geodynamics.org/u/optimux)\
**Post date:** [June 3, 2026, 9:44am UTC](https://community.geodynamics.org/t/what-kinds-of-compositional-field-that-aspect-has-presupposed/4543/2 "2026-06-03T09:44:02Z")

</div>

Hi there,

The additional information is pretty clear: you’re using a material model called visco\_plastic which requires a nominal compositional field ‘plastic\_strain’. The line `this->introspection().compositional_name_exists("plastic_strain")` tells you that ASPECT is trying to check model consistency: if you use material model visco\_plastic, you have to name a field ‘plastic\_strain’. SO you just need to add it to the entry ‘Names of fields’, probably to the first place because it’s a default compositional field in this material model (if I remembered correctly).

If you want to see where they’re hiding, you can search the source directory where all models are well organized. Or you can use grep.

Cheers,  
Mingming

---

<div class="post-metadata">

**Author:** ![daniel.douglas](https://yyz2.discourse-cdn.com/flex036/user_avatar/community.geodynamics.org/daniel.douglas/32/2126_2.png) [@daniel.douglas](https://community.geodynamics.org/u/daniel.douglas)\
**Post date:** [June 3, 2026, 2:07pm UTC](https://community.geodynamics.org/t/what-kinds-of-compositional-field-that-aspect-has-presupposed/4543/3 "2026-06-03T14:07:39Z")

</div>

Hi @guit-hub,

Thanks for posting this on the forum! Just to expand on Mingming’s answer, ASPECT is only throwing this error because in your .prm file you specifically set:

`set Strain weakening mechanism = plastic weakening with plastic strain and viscous weakening with viscous strain`

Without a strain weakening mechanism, the `Visco Plastic` material model will work without requiring a compositional field called `plastic_strain`. Depending on the `Strain weakening mechanism` you want to use, ASPECT will also require other compositional fields (i.e. `viscous_strain`). If you do wish to use these then I recommend using the [continental extension cookbook](https://github.com/geodynamics/aspect/blob/main/cookbooks/continental_extension/continental_extension.prm) as a guide for how to structure this. Another thing you will want to do is make sure you are consistently setting the `Types of fields` so that your fields which track strain are `strain` fields (see continental\_extension.prm). Don’t hesitate to ask for more clarification or any follow up questions!

Cheers,

Daniel

---

<div class="post-metadata">

**Author:** ![guit-hub](https://yyz2.discourse-cdn.com/flex036/user_avatar/community.geodynamics.org/guit-hub/32/3105_2.png) [@guit-hub](https://community.geodynamics.org/u/guit-hub)\
**Post date:** [June 9, 2026, 10:04am UTC](https://community.geodynamics.org/t/what-kinds-of-compositional-field-that-aspect-has-presupposed/4543/4 "2026-06-09T10:04:28Z")

</div>

Thanks for your advice.The first composition is the default one exactly.I would try to add ‘plastic\_strain’ in a more complex model.

---

<div class="post-metadata">

**Author:** ![guit-hub](https://yyz2.discourse-cdn.com/flex036/user_avatar/community.geodynamics.org/guit-hub/32/3105_2.png) [@guit-hub](https://community.geodynamics.org/u/guit-hub)\
**Post date:** [June 9, 2026, 10:08am UTC](https://community.geodynamics.org/t/what-kinds-of-compositional-field-that-aspect-has-presupposed/4543/5 "2026-06-09T10:08:04Z")

</div>

Thanks @daniel.douglas ,  
both of your advice are really helpful,I will refer the continental extension cookbook now.
