I am trying to make a model of continental lithosphere deformation with grain size evolution. In my box model, I have kept a rectangular block of continental lithosphere and want to see if grain size evolution change the deformation pattern within lithosphere.
I followed the give cookbook aspect/cookbooks/grain_size_ridge/grain_size_ridge.prm at main · geodynamics/aspect · GitHub and made sure this is running fine.
Now I am adding another continental field so that I can change the rheological properties of the continent and starting with a constant grain size every where. The section looks like the following
subsection Compositional fields
set Number of fields = 2
set Names of fields = grain_size, continent
set Compositional field methods = particles, field
set Mapped particle properties = grain_size:grain_size
end
subsection Initial composition model
set Model name = function
subsection Function
set Function expression = 5e-3; if(x>1500e3 && x<2500e3 && y>460e3,1,0)
set Variable names = x,y
end
end
I am keeping exactly same values of flow law parameters given in the cookbook, but getting an error:
Exception ‘ExcMessage("parse_map_to_double_array can only check the structure " “of the parsed map for " + options.property_name + " if an expected number of values for each key is given.”)’ on rank 20 on processing:
An error occurred in line <521> of file </tmp/ritop7377/easybuild/build/ASPECT/3.0.0/foss-2023a/aspect-3.0.0/source/utilities.cc> in function
std::vector aspect::Utilities::MapParsing::parse_map_to_double_array(const std::string&, Options&)
The violated condition was:
options.check_values_per_key == false || options.n_values_per_key.size() == options.list_of_required_keys.size()
Additional information:
parse_map_to_double_array can only check the structure of the parsed
map for Angles of internal friction if an expected number of values
for each key is given.
Not sure why angle of internal friction is being called, there is no mention in the input file.
I also tested with a 2-compositional field (background and continent) values by updating the material model parameters:
set Diffusion creep prefactor = 5e-15, 5e-15
set Diffusion activation energy = 3.75e5,3.75e5
set Diffusion activation volume = 4e-6,4e-6
set Diffusion creep grain size exponent = 3,3
set Dislocation creep prefactor = 1e-15,1e-15
set Dislocation activation energy = 5.3e5,5.3e5
set Dislocation activation volume = 1.4e-5,1.4e-5
set Dislocation creep exponent = 3.5,3.5
set Dislocation viscosity iteration number = 10000
set Work fraction for boundary area change = 0.1,0.1
set Grain growth rate constant = 1.92e-10, 1.92e-10
set Grain growth activation energy = 4e5, 4e5
set Grain growth activation volume = 0,0
set Maximum viscosity = 1e23
set Minimum viscosity = 5e19
set Maximum temperature dependence of viscosity = 1e6
This changed some part of the error
Exception ‘ExcMessage("Error: The lists of grain size evolution and flow law parameters " “need to have the same length!”)’ on rank 33 on processing:
An error occurred in line <1039> of file </tmp/ritop7377/easybuild/build/ASPECT/3.0.0/foss-2023a/aspect-3.0.0/source/material_model/grain_size.cc> in function
void aspect::MaterialModel::GrainSize::parse_parameters(dealii::ParameterHandler&) [with int dim = 2]
The violated condition was:
false
Additional information:
Error: The lists of grain size evolution and flow law parameters need
to have the same length!
But, I have the same length for grain size evolution and flow law parameters.
Is there any recommendation about where I am missing the logic in the input file.
Thanks for your time
Regards,
Jyotirmoy