Skip to content

Commit

Permalink
used prescribed field outputs
Browse files Browse the repository at this point in the history
  • Loading branch information
naliboff committed Jan 17, 2024
1 parent 2081c51 commit 92db265
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
16 changes: 12 additions & 4 deletions source/material_model/visco_plastic.cc
Original file line number Diff line number Diff line change
Expand Up @@ -285,18 +285,19 @@ namespace aspect
// Calculate changes in viscosity with iterative dampening and update the reaction terms
if (rheology->use_iterative_viscosity_dampening)
{
if (in.current_cell.state() == IteratorState::valid)
// set up variable to interpolate prescribed field outputs onto compositional fields
PrescribedFieldOutputs<dim> *prescribed_field_out = out.template get_additional_output<PrescribedFieldOutputs<dim>>();

if (in.current_cell.state() == IteratorState::valid && prescribed_field_out != NULL)
{
const double old_viscosity = in.composition[i][this->introspection().compositional_index_for_name("viscosity_field")];

// Only dampen after the first nonlinear iteration
if (this->get_nonlinear_iteration() > 0)
out.viscosities[i] = rheology->iterative_dampening->calculate_viscosity(old_viscosity, out.viscosities[i]);

rheology->iterative_dampening->fill_reaction_outputs(in, i, old_viscosity, out);
prescribed_field_out->prescribed_field_outputs[i][this->introspection().compositional_index_for_name("viscosity_field")] = out.viscosities[i];
}


}

// Fill plastic outputs if they exist.
Expand Down Expand Up @@ -479,6 +480,13 @@ namespace aspect

if (this->get_parameters().enable_elasticity)
rheology->elastic_rheology.create_elastic_outputs(out);

if (out.template get_additional_output<PrescribedFieldOutputs<dim>>() == NULL)
{
const unsigned int n_points = out.n_evaluation_points();
out.additional_outputs.push_back(
std::make_unique<MaterialModel::PrescribedFieldOutputs<dim>> (n_points,this->n_compositional_fields()));
}
}

}
Expand Down
1 change: 1 addition & 0 deletions tests/iterative_dampening_viscosity_no_dampening.prm
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ end
subsection Compositional fields
set Number of fields = 1
set Names of fields = viscosity_field
set Compositional field methods = prescribed field
end

# Set the initial composition for the viscosity field
Expand Down

0 comments on commit 92db265

Please sign in to comment.