On Thu, Mar 1, 2018 at 9:30 AM, David Knezevic <david.kneze...@akselos.com> wrote:
> On Thu, Mar 1, 2018 at 10:50 AM, Roy Stogner <royst...@ices.utexas.edu> > wrote: > > > > > On Wed, 28 Feb 2018, David Knezevic wrote: > > > > I would like to implement a periodic boundary condition on a model with > >> circular symmetry, e.g. solve on sector of a disk with periodicity. To > >> implement this it seems like all I'd need to do is subclass > >> PeriodicBoundary and override get_corresponding_pos() to impose the > >> appropriate rotation rather than just a translation, and then add the > >> PeriodicBoundary subclass object to the system in the usual way. Is that > >> indeed all that's required, > >> > > > > Yes, if it's working correctly! > > > > or would we need something more? > >> > > > > If you have something vector or tensor valued, like e.g. a *velocity* > > variable, and your formulation doesn't already use polar coordinates > > for the components of that variable, then you're in trouble if you > > want anything other than 0/90/180/270 degree rotations, because we > > don't currently have any way to specify a periodic BC for one variable > > as a weighted sum of other variables. > > > Ah, OK. I was hoping to do cases other than 0/90/180/270 degree rotations, > and I'm considering elasticity, hence (u,v,w) displacement variables. As a > result I think the current implementation won't work for me since I'd need > one variable to be a weighted sum of the others. > > I can look into adding this, any suggestions on where to start? > > > > > Has anyone tried this case before? > >> > > > > We actually have some CI coverage for it thanks to the MOOSE guys: > > tests/bcs/periodic/orthogonal_pbc_on_square.i > > > > Thanks, I'll have a look. > > > John, regarding this: > > We have support for user-defined forward and inverse periodic boundary > > transform functions in MOOSE if you'd like to check and see how it's done > > there. > > > I'd be interested to check that, can you point me to the relevant part of > MOOSE? > It's just implemented by overriding get_corresponding_pos() as you said. https://github.com/idaholab/moose/blob/devel/framework/src/bcs/FunctionPeriodicBoundary.C -- John ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users