Copying to libmesh-devel; I know Ben's interested in the state of ALE too.
On Tue, 11 May 2010, David Knezevic wrote: > I had a bit of spare time yesterday, so I thought I'd have another look at > some mesh motion in FEMSystem. The API seems simple enough: I've added two > extra isoparametric variables "x" and "y", and put the following code in > init_data: > > this->time_evolving(x_var); > this->time_evolving(y_var); > set_mesh_system(this); > set_mesh_x_var(x_var); > set_mesh_y_var(y_var); This should be right. > and then, just to start with something simple, I tried to add vertical mesh > motion via: > > Fy(i) += JxW[qp] * ( -0.1*phi[i][qp] ); This looks like a good test case. > In the main function, I initialized x and y by calling > system.mesh_position_get(). I do this in init_data() as well, but depending on where in main() you do it, that could be fine. > But in the solve I hit an assertion related to an > unclosed vector: > > Assertion `v.closed()' failed. > [0] src/numerics/petsc_vector.C, line 583, compiled May 11 2010 at 10:48:31 > > #8 0x00007f54f8464cb6 in UnsteadySolver::advance_timestep (this=0x1eda090) > at src/solvers/unsteady_solver.C:131 I'm not sure what's happening here. So it's asserting that the solution vector hasn't been closed after the solve? That mesh_position_get() call would have unclosed the solution vector, but the solver should have closed it again. There's two outstanding bugs in parallel: there ought to be a mesh_position_set() call added to end of FEMSystem::solve(), to make sure that the mesh on non-local elements gets moved properly in parallel runs. And mesh_position_set() needs to build a temporary SERIAL vector of mesh position data so it can get non-ghost element positions right. But those are orthogonal problems to an unclosed vector. --- Roy ------------------------------------------------------------------------------ _______________________________________________ Libmesh-devel mailing list Libmesh-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-devel