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

Reply via email to