Phase shifted periodic BC

I am relatively new to freefem++. I am just wondering if there’s a way to implement a phase shifted ‘periodic’ bc? say instead of:
int[int] labPeriodic = [1, 3];
macro Pk()[P2, P2, P1], periodic=[[labPeriodic[0],rcoord], [labPeriodic[1],rcoord]]// EOM

i want that bc[1]=phase*bc[3].

Will appreciate any response.

Dear Khaldrogo,

Do you want to implement a Bloch wave computation? If you have a solution of the form u(x,y) exp(i (kx**x+ky**y)) where u(x,y) is periodic, it is better to introduce the Bloch wavevector k=(kx,ky) inside the variational form directly by selecting function u(x,y) as the FE function to solve for instead of the full Bloch wave.

Let us know what your exact need is, so we can look for an example. The code you suggest does not make much sense now.

Vincent

Hello Sir. Thank you for your response.

Yes, I want to do some sort of Bloch wave computation. I’m doing a global stability analysis (Fourier decomposition only in time). Right now, im doing effectively bc[1]=bc[3], where phase=0 by using the built-in periodic function in freefem. I already have a working code.

But in general case where phase is not equal to zero (e^(im*theta) where m>0), I want to know if it is possible? let me know if it’s not clear. I might not have explained it clearly.

Yes, your explanations are very unclear to me.

You do a Fourier decomposition only in time but do a (periodic) finite element computation in space. Do you represent time as a spatial coordinate?

Can you please write down your equations?