Dear Alex,

This has been on my list of things to implement and verify with deal.II over a range of examples for quite a while, so I'm glad you bringing the topic up. It is definitely true that our way to define Jacobians does not take those identities into account, but I believe we should add support for them. The nice thing is that only some local computations are necessary, so having the option to use it in the polynomial mapping classes would be great. If you would be interested in this feature and trying to implement things, I'd be happy to guide you to the right places in the code.

Best,
Martin

On 17.06.20 06:02, Alexander Cicchino wrote:
Thank you for responding Wolfgang Bangerth.

The GCL condition comes from the discretized scheme satisfying free-stream preservation. I will demonstrate this for 2D below, (can be interpreted for spectral, DG, finite difference, finite volume etc): Consider the conservation law: \frac{\partial W}{\partial t} + \frac{\partial F}{\partial x} +\frac{\partial G}{\partial y} =0
Transforming this to the reference computational space (x,y)->(\xi, \eta):
J*\frac{\partial W}{\partial t} + J*\frac{ \partial \xi}{\partial x} * \frac{\partial F}{\partial \xi} + J * \frac{ \partial \eta}{\partial x}* \frac{\partial F}{\partial \eta} + J * \frac{ \partial \xi}{\partial y} * \frac{\partial G}{\partial \xi} + J*\frac{ \partial \eta}{\partial y}*\frac{\partial G}{\partial \eta}
Putting this in conservative form results in:
J\frac{\partial W}{\partial t} + \frac{\partial}{\partial \xi} ( J*F*\frac{\partial \xi}{\partial x} +J*G*\frac{\partial \xi}{\partial y} ) + \frac{\partial}{\partial \eta} ( J*F*\frac{\partial \eta}{\partial x} +J*G*\frac{\partial \eta}{\partial y} ) - F*( GCL in x) - G*(GCL in y) =0

where GCL in x = \frac{\partial }{\partial \xi} ( det(J)* \frac{\partial \xi
 }{\partial x}) + \frac{\partial }{\partial \eta}( det(J)* \frac{\partial
\eta}{\partial x} )
similarly for y.

So for the conservative numerical scheme to satisfy free stream preservation, the GCL conditions must go to zero. For linear grids, there are no issues with the classical definition for the inverse of the Jacobian, but what Kopriva had shown (before him Thomas and Lombard), was that the metric Jacobian has to be calculated in either a "conservative curl form" or an "invariant curl form" since it reduces the GCL condition to the divergence of a curl, which is always discretely satisfied. In the paper by Kopriva, he shows this, an example in 3D:
 Analytically
J*\frac{\partial \xi}{\partial x} = \frac{\partial z}{\partial \zeta} * \frac{\partial y}{\partial \eta} - \frac{\partial z}{\partial \eta} * \frac{\partial y}{\partial \zeta}

but the primer doesn't satisfy free-stream preservation while the latter ("conservative curl form") does.

I will put together a unit test for a curvilinear grid.

Thank you,
Alex

On Tuesday, June 16, 2020 at 10:24:59 PM UTC-4, Wolfgang Bangerth wrote:


    Alexander,

    > I am wondering if anybody has also found that the inverse of the
    Jacobian from
    > FE Values, with MappingQGeneric does not satisfy the Geometric
    Conservation
    > Law (GCL), in the sense of:
    >
    > Kopriva, David A. "Metric identities and the discontinuous
    spectral element
    > method on curvilinear meshes." /Journal of Scientific Computing/
    26.3 (2006): 301.
    >
    > on curvilinear elements/manifolds in 3D.
    > That is:
    > \frac{\partial }{\partial \hat{x}_1} *det(J)* \frac{\partial
    \hat{x}_1
    > }{\partial x_1} + \frac{\partial }{\partial \hat{x}_2} *det(J)*
    \frac{\partial
    > \hat{x}_2}{\partial x} + \frac{\partial }{\partial \hat{x}_3} *
    > det(J)*\frac{\partial \hat{x}_3 }{\partial x_1} != 0 (GCL says
    it should =0,
    > similarly for x_2 and x_3)
    >
    > If so or if not, also, has anybody found a remedy to have the
    inverse of the
    > Jacobian from FE Values with MappingQGeneric to satisfy the GCL.

    I'm not sure any of us have ever thought about it. (I haven't --
    but I really
    shouldn't speak for anyone else.) Can you explain what this equality
    represents? Why should it hold?

    I'm also unsure whether we've ever checked whether it holds
    (exactly or
    approximately). Can you create a small test program that
    illustrates the
    behavior you are seeing?

    Best
      W.

-- ------------------------------------------------------------------------

    Wolfgang Bangerth          email: bang...@colostate.edu <javascript:>
                                www:
    http://www.math.colostate.edu/~bangerth/
    <http://www.math.colostate.edu/~bangerth/>

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com <mailto:dealii+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/4f313231-dbb3-445f-923c-9eaff17ab783o%40googlegroups.com <https://groups.google.com/d/msgid/dealii/4f313231-dbb3-445f-923c-9eaff17ab783o%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/9f857b67-745a-31b7-6ecf-295106154a46%40gmail.com.

Reply via email to