Mathias,
> I want to simulate how a solid moves in a fluid with a fixed mesh using > Cut-FEM. I implemented this using the hp-framework and set all the DoFs > where just the solid is to FE_Nothing. You can see this in (attached) > two pictures: overlay_0 shows a solid circle lying in a fluid. On > no_overlay_0 the overlay is removed and you see the the underlying > "solution" behind the cut and the 4 complete solid cells (the FE_Nothing > cells). > > This works well, but the idea has always been to move now the solid in > the fluid. This works until the solid gets out of the starting > FE_Nothing cells. What I do in a naive way every timestep is I check > where the solid is and set the active FE index accordingly but this is > not enough, and the solution gets distorted. You see this in overlay_1 > (distorsion top left of the solid should not be there) and in > no_overlay_1 you see that see that see just activated cells are not > continuous (and they should be, since I use continuous elements). I can see that this doesn't look right. But do you understand *why* things go wrong? I can't tell from the pictures, but I've often found that when trying to solve a problem for which I know that there is a bug somewhere, then it's worthwhile investing the time to *understand* why it is wrong, rather than trying to come up with completely different ways of doing this. This is because I may want to use the technique that doesn't work again at a later time, and it's useful to actually understand how to make it work. It's also possible that the bug is not in fact where one thinks it is, and then using a different approach isn't actually going to solve anything. > So now I'm thinking of a proper and computationally cheap way to achieve > my goal and have two ideas in mind: > > 1.) Using the hp-framework and FE_Nothing: > After setting the right FE_Index I have call distribute_dofs(), update > my constraints and reinit all my matrices and vectors. I further have to > somehow transfer the old solution to the new "grid". I guess these > things make this option computationally expensive. No, I would venture the guess that the cost of assembling and solving linear systems is still the dominant factor. > 2.) Not using FE_Nothing: > Just using the fluid FE everywhere on the mesh and set the DoF where the > solid is to "0" (by using constraints?). Since I use a relatively > complex block matrix (in parallel) with some non-quadratic blocks I > guess this probably means fiddling around with the corresponding matrix > entries to make the resulting matrix not singular? You should be able to put these constraints into an AffineMatrix object for the whole DoFHandler. This will ensure that all rows and columns of the matrix are correct. Best W. -- ------------------------------------------------------------------------ Wolfgang Bangerth email: [email protected] www: http://www.math.colostate.edu/~bangerth/ -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/5837bcc6-5298-df87-6993-9ce76896d03b%40colostate.edu.
