[petsc-users] FE discretization in DMPlex

Matthew Knepley knepley at gmail.com
Mon Feb 23 07:47:37 CST 2015


On Sun, Feb 22, 2015 at 7:05 PM, Justin Chang <jychang48 at gmail.com> wrote:

> Hi Matt,
>
> Bringing this thread back from the dead.
>
> 1) Have you had the chance to implement things like RT and DG in DMPlex?
>

No, there has not been much call. Its on my stack of things to do.


> 2) Are examples/tests that illustrate how to do dualspaces?
>

I have commented the dual space routines now. Basically, you just create a
set of functionals,
and in this world a functional is just a quadrature rule. If you have a
hard time understanding
something, feel free to mail.


> 3) Or quantities like cell size h, jump, average?
>

The first thing is to declare the adjacency correctly, so that you get
neighboring cells. Once you
have that all these are simple local calculations.

Why don't we start with RT0 since it is the simplest to think about.

  Thanks,

    Matt


> I was originally trying to implement DG and RT0 in FEniCS but I am having
> lots of trouble getting the FEniCS code to scale on our university's
> clusters, so that's why I want to attempt going back to PETSc's DMPlex to
> do strong scaling studies.
>
> Thanks,
> Justin
>
> On Sat, Sep 6, 2014 at 3:58 AM, Matthew Knepley <knepley at gmail.com> wrote:
>
>> On Fri, Sep 5, 2014 at 10:55 PM, Justin Chang <jychang48 at gmail.com>
>> wrote:
>>
>>> Hi all,
>>>
>>> So I understand how the FEM code works in the DMPlex examples (ex12 and
>>> 62). Pardon me if this is a silly question.
>>>
>>> 1) If I wanted to solve either the poisson or stokes using the
>>> discontinuous Galerkin method, is there a way to do this with the built-in
>>> DMPlex/FEM functions? Basically each cell/element has its own set of
>>> degrees of freedom, and jump/average operations would be needed to
>>> "connect" the dofs across element interfaces.
>>>
>>> 2) Or how about using something like Raviart-Thomas spaces (we'll say
>>> lowest order for simplicity). Where the velocity dofs are not nodal
>>> quantities, instead they are denoted by edge fluxes (or face fluxes for
>>> tetrahedrals). Pressure would be piecewise constant.
>>>
>>> Intuitively these should be doable if I were to write my own
>>> DMPlex/PetscSection code, but I was wondering if the above two
>>> discretizations are achievable in the way ex12 and ex62 are.
>>>
>>
>> Lets do RT first since its easier. The primal space is
>>
>>   P_K = Poly_{q--1}(K) + x Poly_{q-1}(K)
>>
>> so at lowest order its just Poly_1. The dual space is moments of the
>> normal component
>> of velocity on the edges. So you would write a dual space where the
>> functionals integrated
>> the normal component. This is the tricky part:
>>
>>   http://www.math.chalmers.se/~logg/pub/papers/KirbyLoggEtAl2010a.pdf
>>
>> DG is just a generalization of this kind of thing where you need to a)
>> have some geometric
>> quantities available to the pointwise functions (like h), and also some
>> field quantities (like
>> the jump and average).
>>
>> I understand exactly how I want to do the RT, BDM, BDMF, and NED
>> elements, and those
>> will be in soon. I think DG is fairly messy and am not completely sure
>> what I want here.
>>
>>    Matt
>>
>>
>>> Thanks,
>>> Justin
>>>
>>
>>
>>
>> --
>> What most experimenters take for granted before they begin their
>> experiments is infinitely more interesting than any results to which their
>> experiments lead.
>> -- Norbert Wiener
>>
>
>


-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150223/7061ecdb/attachment.html>


More information about the petsc-users mailing list