[aspect-devel] Purpose of denormalize_pressure?

Jonathan Perry-Houts jperryh2 at uoregon.edu
Tue Sep 20 17:13:25 PDT 2016


According to the git "blame" feature, that function was introduced here:
https://github.com/geodynamics/aspect/commit/758005767378da1b08a2ebbce8ae95ac7daeef71

hope that helps!

-JPH

On 09/20/2016 03:37 PM, Wolfgang Bangerth wrote:
> 
> Menno and I are trying to figure out how to make his Newton code
> converge. In the process, we came across the denormalize_pressure()
> function, but don't recall what exactly it was used for.
> 
> normalize_pressure() computes an adjustment to the pressure to make sure
> its mean value at the surface or in the domain is zero.
> denormalize_pressure() undoes this correction, but it's not entirely
> clear to me why we do this. Does anyone remember?
> 
> 
> In my mind, this is how far I've gotten with my thoughts:
> normalize_pressure converts the "mathematical" pressure that solves the
> equations -- and which in general is only determined up to a constant --
> to a "physical" pressure for which we know that it is zero at the
> surface. The additive constant that relates the two is, from a
> mathematical perspective, irrelevant, and "denormalizing" should not be
> necessary because the equations only contain the gradient of the
> pressure. In other words, we wouldn't have to do the denormalization.
> The only place where it matters is if we have open boundary conditions
> where we prescribe the traction (or assume it's zero) because the
> traction actually contains the *value*, not the gradient of the
> pressure. In other words, if you solve the weak form of the equations
> with open boundary conditions, the linear residual will be zero, but if
> you the normalize the pressure, the linear residual will not be zero any
> more. To determine the linear residual, or the nonlinear residual as the
> right hand side of a Newton system, one therefore first has to
> de-normalize the pressure again.
> 
> I don't know whether that's the whole story. I have no recollection who
> invented the denormalize_pressure() function, or what the story is that
> prompted the discovery that it is necessary. Any insight would be
> appreciated!
> 
> Best
>  Wolfgang
> 


More information about the Aspect-devel mailing list