From: Ted K. <ted...@go...> - 2009-09-12 21:08:25
|
2009/9/12 David Knezevic <dk...@mi...> > Roy Stogner wrote: > >> >> On Sat, 12 Sep 2009, David Knezevic wrote: >> >> Ted Kord wrote: >>> >> >> How do I apply a Neumann B.C at an inter-element boundary? >>>> >>> >>> The same way as a usual Neumann BC... the only trick is that you have to >>> find which internal element to apply it to. One way to do this would be >>> to set the subdomain_id of elements on one side of the inter-element >>> boundary to 1 and on the other side to 2, and then search for elements >>> with subdomain_id = 1 that have a neighbor with subdomain_id = 2, and >>> apply the Neumann BC to the appropriate side of those elements. >>> >> >> The trouble with this is that you'll still have the entries in your >> matrix from the shape functions which stretch between the element on >> one side of the boundary and on the other. If you have a slit in your >> domain on which you want to weakly impose boundary conditions, you >> need to make it an actual topologically broken slit, and then it's >> just another set of exterior boundaries. >> > > I was thinking of imposing an internal flux between internal elements (e.g. > as a type of forcing, but inside the domain rather than on the boundary). In > that situation an "internal" Neumann condition does the job --- the > variational formulation takes care of everything for you... > > - Dave > The problem I actually have is that there's a concentrated load at a single point, say x = 16 (domain: 0 < x < 20) which is represented mathematically as : -0.5 - 30 * dirac-delta(x-16) As far as I know, this, i.e., -30 will have to be applied as a Neumann B.C at that point. So, is find_neighbors() the way to go? ------ Ted |