Does it exist a way to apply weighted displacement from master point x to slave point y with periodicBC ?

Asked by Abdallah Ben Othman

Dear all,

According to the periodicBC documentation, DOLFIN is able to apply periodic boundary condition such that :

u(x) = u(F^{-1}(x)) on G,
u(x) = u(F(x)) on H,

And I would like to add another member to this equation such that :

u(x) = u(F^{-1}(x)) + E(x-F^{-1}(x)) on G,
u(x) = u(F(x)) + E(x-F(x)) on H,

With E a given tensor.

So, if someone has already worked on this question or if someone have an idea, may
 she/he help me, please ?

thanks for your help and your attention,
Abdallah.

Question information

Language:
English Edit question
Status:
Answered
For:
DOLFIN Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Anders Logg (logg) said :
#1

This is not possible at the moment, but periodic BCs are up for
redesign and will likely support more general periodic boundary
conditions, such as letting a user explicitly mark (via for example a
MeshFunction) which dofs should be identified as periodic.

--
Anders

On Tue, Oct 30, 2012 at 02:55:58PM -0000, Abdallah Ben Othman wrote:
> Question #212757 on DOLFIN changed:
> https://answers.launchpad.net/dolfin/+question/212757
>
> Description changed to:
> Dear all,
>
> According to the periodicBC documentation, DOLFIN is able to apply
> periodic boundary condition such that :
>
> u(x) = u(F^{-1}(x)) on G,
> u(x) = u(F(x)) on H,
>
> And I would like to add another member to this equation such that :
>
> u(x) = u(F^{-1}(x)) + E(x-F^{-1}(x)) on G,
> u(x) = u(F(x)) + E(x-F(x)) on H,
>
> With E a given tensor.
>
> So, if someone has already worked on this question or if someone have an idea, may
> she/he help me, please ?
>
> thanks for your help and your attention,
> Abdallah.
>

Revision history for this message
Abdallah Ben Othman (abdallah-benothman) said :
#2

Thank you Anders Logg for your response,

I implemented an other class ExtendedPeriodicBC which extends the PeriodicBC in c++ for dolfin 1.0
This class is able to do what I need, as I explain previously. Even if the source code is not as clean as I want
(I had to hack some class visibilities), it works perfectly well.

I didn't submit this new class for a possible integration because I knew version 1.1 will be published.

I use this class to solve a multi-scale problem, and I need to use more than one periodic boundary condition on
the same mesh. It seems to be impossible with the version 1.1.

Is there a way to define two, three or more periodic boundary conditions, with c++ interface ?
And with the new periodic boundary condition, How could I add the second part of equation ?
(If I can't I will try to make my own extended class and if it works I will submit it).

Thanks for your help,
Abdallah Ben Othman.

Can you help with this problem?

Provide an answer of your own, or ask Abdallah Ben Othman for more information if necessary.

To post a message you must log in.