On Wed, Feb 8, 2012 at 20:38, Roy Stogner <roystgnr@...> wrote:
> > 3 Support for an Uzawa solver (stokes problem)
>
> This is doable in libMesh application code, but it wouldn't be as easy
> as many other solvers, and it isn't built in to the library.
>
For simple Stokes problems, PETSc can construct this automatically (because
there is 0 on the diagonal for the "pressure rows"). If you use
stabilization or anything nonstandard, you would have to identify those
rows corresponding to velocity and pressure (or whatever the split is).
Also, if you want to use custom preconditioners for the Schur complement
system (e.g. other than the Least Squares Commutator which we can construct
a certain form of automatically), you would provide that too. These aren't
libmesh native interfaces, but they are just a couple extra PETSc functions.
> > 5 Support for mixed FEM, FVM. I want to use FEM for equation of fluid
> motion and FVM for
> > solving a pure convection problem (As I have a 2 fluids in my system
> and want to handle it with VOF method).
>
> libMesh can do FVM with small flux stencils by using discontinuous
> shape functions for those variables; for larger stencils you'd be out
> of luck, since libMesh wouldn't be able to extend the parallel
> ghosting or sparsity pattern as far as you'd like.
You can do a second order TVD unstructured FVM in a slightly goofy way, but
that isn't really bad.
1. Define a cellcentered P0 (discontinuous) space for averages of state
variables and another P0 discontinuous space that holds cellcentered
gradients.
2. Do a face traversal and add jumps in state (perhaps locally transformed
to characteristic variables) into the gradients of the two cells.
3. Communicate the gradients.
4. Do a face traversal, evaluate the interface state using the gradients,
then solve a Riemann problem using the reconstructed states, and contribute
the fluxes (face area/cell volume weighted) into the residuals defined on
the cells.
