From: David K. <dav...@ak...> - 2018-03-01 17:04:50
|
On Thu, Mar 1, 2018 at 12:00 PM, John Peterson <jwp...@gm...> wrote: > > > On Thu, Mar 1, 2018 at 9:30 AM, David Knezevic <dav...@ak... > > wrote: > >> 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? >> > > It's just implemented by overriding get_corresponding_pos() as you said. > > https://github.com/idaholab/moose/blob/devel/framework/src/bcs/ > FunctionPeriodicBoundary.C > OK, thanks! David |