From: Jed Brown <jed@59...>  20120208 21:11:44

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. 