[Dune] Basic question on coordinate transformation

Jö Fahlke jorrit at jorrit.de
Wed Jun 10 19:12:23 CEST 2015


Dear Aleksejs,

I guess the short answer is that normal are not coordinates, and so they don't
transform like coordinates.

Take for instance the following equilateral triangle in global coordinates:


      g2
     /  \
    /    \
   /      \
  ----g1----

You have the two coordinates from your counterexample: g1 in the center of one
side (we'll call that side the base) and g2 at the opposite tip.  The line
through g1 and g2 is orthogonal to the base.

Now let's look at this in the reference triangle:

  l2
  | \
  |   \
  |     \
  ---l1---

The line connecting l1 and l2 is clearly not orthogonal to the base in the
_reference coordinate system_.

The problem is that the coordinate transformation in general does not conserve
angles.  If I remember correctly, what you want is the Piola transformation (I
haven't really checked that, somebody please correct me if I'm blurting
garbage here).

Regards,
Jö.

Am Wed, 10. Jun 2015, 15:40:42 +0200 schrieb Aleksejs Fomins:
> Date: Wed, 10 Jun 2015 15:40:42 +0200
> From: Aleksejs Fomins <aleksejs.fomins at lspr.ch>
> To: Dune <dune at dune-project.org>
> Subject: [Dune] Basic question on coordinate transformation
> 
> Dear Dune,
> 
> I have always been puzzled by Jacobian transformations. And now, I might have a bug in their implementation in curvilinear geometry, so I thought it's a good time to sort out the unclear steps.
> 
> When I look at, e.g., affine geometry, I see that the Jacobian Transposed is defined in such a way that
> (1) global() = origin + J * local
> So "J" is a matrix that transforms from local to global coordinates.
> 
> However, if I look at the implementation of a surface normal, e.g. in GeometryGrid->Intersection->outerNormal I see that
> refNormal = refElement.integrationOuterNormal( indexInInside() );
> jit.mv( refNormal, normal );
> so in order to transform the local (reference) normal to global coordinates, one multiplies it by the inverse of the Jacobian.
> 
> I am somewhat unable to convince myself why this works. My simplest counter-proof is to take the above equation (1) at 2 different locations and subtract from one another
> 
> p_global = g2 - g1 = J * l2 - J * l1 = J (l2 - l1) = J * p_local
> 
> I would be grateful if somebody could hint me on why the transformation of the normal is correct, or perhaps the nicest place to read about this.
> 
> Thank you,
> Aleksejs
> 
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune
> 

-- 
Jorrit (Jö) Fahlke, Institute for Computational und Applied Mathematics,
University of Münster, Orleans-Ring 10, D-48149 Münster
Tel: +49 251 83 35146 Fax: +49 251 83 32729

In the beginning the Universe was created.  This has made a lot of
people very angry and been widely regarded as a bad move.
-- Douglas Adams
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 811 bytes
Desc: Digital signature
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20150610/bc5c8be6/attachment.sig>


More information about the Dune mailing list