On Thu, 10 Apr 2008, Mike L wrote:

> I am currently starting a project that will involve some mixed FEM work.  I
> have two coupled equations- one equation is solved for each element (which
> uses 3 or 4-node, elements, solving for an unknown at the centroid of the
> element),

If you're talking about discontinuous constant elements, this is a
capability which libMesh already has; if not then I'd still guess that
your element type would be simple to add.

> and the second would be solved for each element edge (which I am
> proposing to use a normal vector element such as an RT0 at each edge).

This, unfortunately, is not a capability libMesh already has - its
finite element APIs are designed for scalar-valued elements, and we
build vector-valued mixed elements as tensor products of scalar
spaces.  For an inherently vector-valued element like the RT family
where this isn't possible, you'd have to add not only the new element
but some new base class methods as well.  That's not an impossible
task, and you'd have people willing to help you, but it's not
something you could jump in and do yourself in a couple days.

> Looking through the documentation it appears to be both flexible,
> and powerful.  In the past I have always coded up my own FEM codes,
> but I would like to try giving a library like libmesh a try.  Is a
> mixed problem like the one I am proposing, something that would be
> possible to do using libmesh or some other general FEM library?  Or
> is something of this nature better off coded on my own?  If it does
> sound like something that libmesh could tackle, are there any code
> examples that solve a similar, mixed problem?  Thanks in advance.

Some mixed elements are fine (see the Navier-Stokes examples for some
P_n^d velocity with P_{n-1} pressure examples), but for RT elements
you'd have to do some library work within libMesh.  I believe deal.II
already has RT elements included, but only on quad and hex elements.
And of course coding from scratch is always an option, if your needs
are simple enough, but it would be significantly harder to add some of
the libMesh features to your own code than it would be to add RT0
elements to libMesh.

So I guess it depends on what you need.  If you can get by without
triangles or tetrahedra then I would suggest investigating deal.II.
If you need simplices but you don't need parallelism, adaptivity, or
any of the other more involved libMesh features then you can probably
get by with writing your own code from scratch.  In any other case,
adding the RT0 elements to libMesh may be your best bet.
---
Roy


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to