[aspect-devel] VectorTools::integrate_difference fails to return an error that decreases under grid refinement

Ying He yinghe at math.ucdavis.edu
Wed Oct 26 12:43:01 PDT 2016


On 2016-10-26 12:00, aspect-devel-request at geodynamics.org wrote:

> 
> The usual situation where this happens is if the implementation of the 
> "exact
> solution" is wrong, i.e., you want to compute
>    || u_h - u ||
> but instead you compute
>    || u_h - v ||
> with some v that has nothing to do with u and consequently the norm 
> does not
> converge to zero.
> 
> I don't quite understand where in your code you set the exact solution. 
> But
> that's where I would check -- maybe you have a sign error, of a missing 
> factor.
> 
> Best
>   W.
> 
> --
> ------------------------------------------------------------------------
> Wolfgang Bangerth          email:                 
> bangerth at colostate.edu
>                             www: 
> http://www.math.colostate.edu/~bangerth/

Hi Wolfgang,

I tried Gerry's code yesterday by setting the exact solution = 0, and 
found the infty norm of |u_h|_infty turned out to be very small in the 
order of 10^-8. But Gerry's exact solution is supposed to in the range 
[-1,1]. So I just realized that perhaps there was a scaling issue due to 
the parameter set use year instead of second = true.

I didn't go through all the logic of the unit/ unit transfer of the 
code, but based on the results, I am guessing in the core computation, 
always use SI unit like second, meter, but for the input/output, one 
needs to do the unit scaling to/from years to seconds or second to year. 
Is that correct?

If that's the case, then Gerry's input for velocity boundary condition 
actually is 1 meter/year = 1 meter/3.154e+7 seconds approximately equals 
to 10^-8 m/s. However, they set up the exact solution in material model 
by using unit m/s which are not in the same order of magnitude ... so 
the error never converges.

Therefore the right way I guess should be either giving the right 
boundary condition using unit meter/year in the prm file, or just 
setting the parameter "set use year instead of second = false"

Does all the above make sense?

-- 
Best,
Ying He



More information about the Aspect-devel mailing list