I set some compositional field in custom,like this:
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:
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 (12.0 KB)
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
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 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