Hi,

Thanks for getting back to me.

Yes, I think you are right.  The Newmark system doesn't seem to be
compatible with what I wanted.  It was appealing because it seemed like the
easiest way to implement a time-dependent system with the benefit of not
having to implement my own time integration.  I have worked around the
issue by writing Crank-Nicolson time-stepper (like one of the other
examples).

By "wrong magnitude" I meant that when I expected a specific solution (say
linear in x and constant in y), the system evolved to the expected "shape"
but the range was wrong.  Specifically, I had something like u(x)=10x (x in
[0,1]) rather than u(x)=x.   The Crank-Nicolson time-stepper I have works
the way I expect.  I just couldn't figure out how to properly add the
Neumann conditions into the the Newmark implementation.  If anyone knows
happens to know that would be helpful, but the method I have is working
great for now.

Thanks!
Andrew


On Mon, Sep 23, 2013 at 12:43 PM, John Peterson <[email protected]>wrote:

> 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 <[email protected]>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 time-dependent 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
>
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to