From: John Peterson <jwpeterson@gm...>  20130923 16:43:34

Hi Andrew, Sorry for the lack of response. I don't think any of the active developers are very familiar with the Newmark system, hence their silence. On Wed, Sep 18, 2013 at 1:43 PM, Andrew Davis <andrew.add@...> wrote: > Hi all, > > Apologies if this is somewhere in the documentation and I missed it. I am > trying to update the "Newmark system and the Wave Equation" example. I > have successfully updated the example to use time dependent Dirichlet > (essential) boundary conditions and I am working on doing something similar > in the Neumann (natural) case. > > The problem with just updating the assemble function to make the Neumann > BCs time dependent in the example is the matrix is only assembled once so > instead of having time dependent boundary conditions the initial evaluation > is treated as constant Neumann BCs. Doing a reinit() and assemble() each > timestep doesn't work for the Newmark case (and seems inefficient). > It sounds like the Newmark system (as it's implemented in libmesh) may be incompatible with what you are attempting to do? I think you'd be better off with either implementing something more general (either with FEMSystem or by following one of the other timedependent examples) or generalizing the existing Newmark system class so that it actually does what you want. > Finally, I tried to change the "fill_dirichlet_bc" function to > "fill_neumann_bc". The new version ingrates the Neumann BC over the > boundary sides of each boundary element and adds the result to the RHS > vector. This seems to make the BC time dependent but the wrong magnitude. > Not sure what you mean by "wrong magnitude" exactly. Note that the current fill_dirichlet_bc() function uses the penalty method to enforce a Dirichlet boundary condition, which is not appropriate for Neumann...  John 