[petsc-users] FEM 101

Matthew Knepley knepley at gmail.com
Mon Mar 30 23:14:18 CDT 2015

On Mon, Mar 30, 2015 at 4:39 PM, Justin Pogacnik <j.pogacnik at auckland.ac.nz>

>  Hello,
>  I'm beginning to write a finite element solid mechanics code in F90 and
> am having some problems getting started with finite element basics within
> Petsc. I'm using an unstructured grid and the DMPlex class and able to
> access most of the mesh information required for FE numerical integration.
> I've used PetscFECreateDefault and have found the quadrature point
> locations/data. I'm trying to determine how to find the values of standard
> trilinear basis functions and their derivatives at the element quadrature
> points and then to perform the integration on the element. Can anyone
> advise what the proper routines are that I should call? It's possible that
> I'm way off target. I've seen "PetscFEGetBasisSpace", but I'm unsure what
> to do with the resulting output space. I've also seen the PetscFEIntegrate
> routines, but unsure how their intended to be used and don't see any
> fortran wrappers.
>  I hope this question is clear. Please let me know if you require more
> information. I appreciate any help and guidance that anyone can offer.

Here is the plain vanilla integration routine:


which is an implementation of PetscFEIntegrate(). The idea is that this
integrates a bunch of elements, and then there is an outer
loop over the whole mesh, which is currently DMPlexIntegrateResidual().
Unfortunately, this function also does a bunch of other
stuff, and right now I do not see how to simplify it.

Does this make sense?



> Many 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150330/e8846379/attachment.html>

More information about the petsc-users mailing list