[aspect-devel] Question on Thermal Viscosity thresholds
FELIPE ORELLANA ROVIROSA
f_orellana at berkeley.edu
Fri Apr 27 12:44:08 PDT 2018
Hallo Wolfgang,
Thanks a lot for replying.
Understood.
I have read the code piece you pointed me at. I completely understand
it, I completely agree with its approach. Actually, I have programmed this
sort of temperature-dependent viscosities during my research, say an
Arrhenius exponential law, bounded by max-and-min thresholds. It's a
classic.
Indeed, the crucial part of your code (Aspect) regarding this issue is
this:
const double temperature_dependence
= (reference_T > 0
?
std::max(std::min(std::exp(-thermal_viscosity_exponent *
delta_temp/reference_T),
maximum_thermal_prefactor),
minimum_thermal_prefactor)
:
1.0);
which indeed will yield a continuous function: from the max, to the
exponential function, to the min.
All good, but my point remains: the handbook explicitly states threshold
(max, min) conditionals for the value of the exponential, in 0.01 and 100,
which effectively, are unspecified in the code, not part of the actual code
(above pasted).
If one were to interpret those thresholds, using
'min/max_thermal_prefactor' values other than those, discontinuities or
empty intervals would arise. This is an interpretation only, because the
actual code won't do that (cause Aspect will create continuous functions as
above discussed), so I think it's a problem of the handbook.
It seems to me that those two particular values (0.01, 100) were written
in the manual for the purpose of illustration of a specific case.
I think the manual should write:
H(x) = {
tau_min if x < tau_min
x if tau_min <= x <= tau_max
tau_max if x > tau_max
}
I hope this helps,
Thanks Wolfgang, and Lev.
cheers,
Felipe
On Thu, Apr 26, 2018 at 10:23 PM, Wolfgang Bangerth <bangerth at colostate.edu>
wrote:
>
> Felipe,
>
> I am referring to section A.77 Parameters in section Material model
>>
>> then subsection model 'simple'
>>
>> Temperature prefactor for viscosity:
>>
>> there is a definition tau(T) = H(exp...), H(x) = { .. 3 cases..}
>>
>> I have inspected the formula several times and it seems to me that it
>> would create a discontinuity if the values {tau min, tau max} are not {0.01
>> and 100}.
>>
>> I plotted the formula on matlab using values different than those,
>> and indeed created a discontinuity. ALternatively, depending on how you
>> program the formula, it will leave an unspecified interval.
>>
>> It's nothing grave I think, but if one is not wary when using the
>> model parameters tau max-min, the issue could get under the hood.
>>
> It may be instructive to look at the implementation to understand what the
> code actually does:
>
> https://github.com/geodynamics/aspect/blob/master/source/
> material_model/simple.cc#L37
>
> The implementation first computes something that is the min or max of an
> expression -- this yields a continuous function. (You can graphically
> understand this: draw two functions that are both continuous, and then in a
> different color draw that function that is the minimum of the first two --
> it's always a continuous function.)
>
> The rest is then just an interpolation, which in this case is also
> continuous.
>
> Best
> W.
>
>
> --
> ------------------------------------------------------------------------
> Wolfgang Bangerth email: bangerth at colostate.edu
> www: http://www.math.colostate.edu/~bangerth/
>
>
> _______________________________________________
> Aspect-devel mailing list
> Aspect-devel at geodynamics.org
> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20180427/335c0057/attachment.html>
More information about the Aspect-devel
mailing list