Skip to content

Commit e4b4994

Browse files
authored
Merge pull request #6546 from YiminJin/dilation-terms
Modify the plastic dilation terms to reduce noises in effective viscosity
2 parents e7a7750 + 7dc5c02 commit e4b4994

File tree

4 files changed

+63
-29
lines changed

4 files changed

+63
-29
lines changed

source/material_model/rheology/visco_plastic.cc

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -429,20 +429,12 @@ namespace aspect
429429
// Compute the dilation terms if necessary.
430430
if (this->get_parameters().enable_prescribed_dilation == true)
431431
{
432-
if (output_parameters.composition_yielding[j] == true)
433-
{
434-
output_parameters.drucker_prager_parameters[j].angle_dilation *= weakening_factors[1];
435-
const std::pair<double,double> dilation_terms = drucker_prager_plasticity.compute_dilation_terms_for_stokes_system (output_parameters.drucker_prager_parameters[j],
436-
non_yielding_viscosity,
437-
effective_edot_ii);
438-
output_parameters.dilation_lhs_terms[j] = dilation_terms.first;
439-
output_parameters.dilation_rhs_terms[j] = dilation_terms.second;
440-
}
441-
else
442-
{
443-
output_parameters.dilation_lhs_terms[j] = 0;
444-
output_parameters.dilation_rhs_terms[j] = 0;
445-
}
432+
output_parameters.drucker_prager_parameters[j].angle_dilation *= weakening_factors[1];
433+
const std::pair<double,double> dilation_terms = drucker_prager_plasticity.compute_dilation_terms_for_stokes_system (output_parameters.drucker_prager_parameters[j],
434+
non_yielding_viscosity,
435+
effective_edot_ii);
436+
output_parameters.dilation_lhs_terms[j] = dilation_terms.first;
437+
output_parameters.dilation_rhs_terms[j] = dilation_terms.second;
446438
}
447439
}
448440

source/material_model/visco_plastic.cc

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -287,14 +287,21 @@ namespace aspect
287287
if (const std::shared_ptr<PrescribedPlasticDilation<dim>> plastic_dilation =
288288
out.template get_additional_output_object<PrescribedPlasticDilation<dim>>())
289289
{
290-
plastic_dilation->dilation_lhs_term[i]
291-
= MaterialUtilities::average_value(volume_fractions,
292-
isostrain_viscosities.dilation_lhs_terms,
293-
MaterialUtilities::arithmetic);
294-
plastic_dilation->dilation_rhs_term[i]
295-
= MaterialUtilities::average_value(volume_fractions,
296-
isostrain_viscosities.dilation_rhs_terms,
297-
MaterialUtilities::arithmetic);
290+
const double dilation_lhs_term = MaterialUtilities::average_value(volume_fractions,
291+
isostrain_viscosities.dilation_lhs_terms,
292+
MaterialUtilities::arithmetic);
293+
const double dilation_rhs_term = MaterialUtilities::average_value(volume_fractions,
294+
isostrain_viscosities.dilation_rhs_terms,
295+
MaterialUtilities::arithmetic);
296+
297+
// When plastic yielding occurs (RHS - LHS * p > 0$), the LHS and RHS terms are set to
298+
// the values calculated by the Drucker Prager model; otherwise, the LHS and RHS terms
299+
// should cancel out (RHS = LHS * p) so as to satisfy the loading-unloading conditions.
300+
plastic_dilation->dilation_lhs_term[i] = dilation_lhs_term;
301+
if (dilation_rhs_term - dilation_lhs_term * in.pressure[i] > 0)
302+
plastic_dilation->dilation_rhs_term[i] = dilation_rhs_term;
303+
else
304+
plastic_dilation->dilation_rhs_term[i] = dilation_lhs_term * in.pressure[i];
298305
}
299306
}
300307

tests/kaus_2010_with_plastic_dilation/screen-output

Lines changed: 41 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,51 @@ Number of mesh deformation degrees of freedom: 594
99
Solving temperature system... 0 iterations.
1010
Advecting particles... done.
1111
Rebuilding Stokes preconditioner...
12-
Solving Stokes system (AMG)... 34+0 iterations.
13-
Relative nonlinear residuals (temperature, compositional fields, Stokes system): 1.14953e-16, 0, 0, 0, 0, 0, 0, 0, 0, 1
14-
Relative nonlinear residual (total system) after nonlinear iteration 1: 1
12+
Solving Stokes system (AMG)... 27+0 iterations.
13+
Relative nonlinear residuals (temperature, compositional fields, Stokes system): 1.14953e-16, 0, 0, 0, 0, 0, 0, 0, 0, 0.375107
14+
Relative nonlinear residual (total system) after nonlinear iteration 1: 0.375107
1515

1616
Solving temperature system... 0 iterations.
1717
Advecting particles... done.
1818
Rebuilding Stokes preconditioner...
19-
Solving Stokes system (AMG)... 0+0 iterations.
20-
Relative nonlinear residuals (temperature, compositional fields, Stokes system): 1.14953e-16, 0, 0, 0, 0, 0, 0, 0, 0, 9.42459e-08
21-
Relative nonlinear residual (total system) after nonlinear iteration 2: 9.42459e-08
19+
Solving Stokes system (AMG)... 21+0 iterations.
20+
Relative nonlinear residuals (temperature, compositional fields, Stokes system): 1.14953e-16, 0, 0, 0, 0, 0, 0, 0, 0, 0.0350776
21+
Relative nonlinear residual (total system) after nonlinear iteration 2: 0.0350776
22+
23+
Solving temperature system... 0 iterations.
24+
Advecting particles... done.
25+
Rebuilding Stokes preconditioner...
26+
Solving Stokes system (AMG)... 19+0 iterations.
27+
Relative nonlinear residuals (temperature, compositional fields, Stokes system): 1.14953e-16, 0, 0, 0, 0, 0, 0, 0, 0, 0.0089287
28+
Relative nonlinear residual (total system) after nonlinear iteration 3: 0.0089287
29+
30+
Solving temperature system... 0 iterations.
31+
Advecting particles... done.
32+
Rebuilding Stokes preconditioner...
33+
Solving Stokes system (AMG)... 16+0 iterations.
34+
Relative nonlinear residuals (temperature, compositional fields, Stokes system): 1.14953e-16, 0, 0, 0, 0, 0, 0, 0, 0, 0.00232937
35+
Relative nonlinear residual (total system) after nonlinear iteration 4: 0.00232937
36+
37+
Solving temperature system... 0 iterations.
38+
Advecting particles... done.
39+
Rebuilding Stokes preconditioner...
40+
Solving Stokes system (AMG)... 14+0 iterations.
41+
Relative nonlinear residuals (temperature, compositional fields, Stokes system): 1.14953e-16, 0, 0, 0, 0, 0, 0, 0, 0, 0.000636386
42+
Relative nonlinear residual (total system) after nonlinear iteration 5: 0.000636386
43+
44+
Solving temperature system... 0 iterations.
45+
Advecting particles... done.
46+
Rebuilding Stokes preconditioner...
47+
Solving Stokes system (AMG)... 12+0 iterations.
48+
Relative nonlinear residuals (temperature, compositional fields, Stokes system): 1.14953e-16, 0, 0, 0, 0, 0, 0, 0, 0, 0.000187177
49+
Relative nonlinear residual (total system) after nonlinear iteration 6: 0.000187177
50+
51+
Solving temperature system... 0 iterations.
52+
Advecting particles... done.
53+
Rebuilding Stokes preconditioner...
54+
Solving Stokes system (AMG)... 10+0 iterations.
55+
Relative nonlinear residuals (temperature, compositional fields, Stokes system): 1.14953e-16, 0, 0, 0, 0, 0, 0, 0, 0, 6.02812e-05
56+
Relative nonlinear residual (total system) after nonlinear iteration 7: 6.02812e-05
2257

2358

2459
Postprocessing:

tests/kaus_2010_with_plastic_dilation/statistics

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@
3838
# 38: Particle file name
3939
# 39: RMS velocity (m/year)
4040
# 40: Max. velocity (m/year)
41-
0 0.000000000000e+00 0.000000000000e+00 256 2507 297 18432 2 0 34 35 73 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.11111111e-01 3.47222222e+05 10240 output-kaus_2010_with_plastic_dilation/particles/particles-00000 8.17289302e-04 1.40766238e-03
41+
0 0.000000000000e+00 0.000000000000e+00 256 2507 297 18432 7 0 119 126 293 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.11111111e-01 3.47222222e+05 10240 output-kaus_2010_with_plastic_dilation/particles/particles-00000 8.17267895e-04 1.40762515e-03

0 commit comments

Comments
 (0)