From: David K. <dav...@ak...> - 2018-03-01 16:36:36
|
On Thu, Mar 1, 2018 at 10:50 AM, Roy Stogner <roy...@ic...> 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? Thanks, David |