I'm trying to pad my vector u using the boundary condition operator Q.
It works fine for 1d data, but gives me incorrect padded vector for 2d data when I use PeriodicBC.
Code for reproduction
1-D
#left-plot
plot(data1d)
#right-plot
Q1 = Dirichlet0BC(Float64)
plot(Q1*data1d,label="Q1*u (Dirichlet)")
Q2 = PeriodicBC(Float64)
plot!(Q2*data1d,label="Q2*u (Periodic)")

2-D
#left-plot
heatmap(data2d)
#right-plot
Q3 = compose(Dirichlet0BC(Float64, (6,6))...)
heatmap(Q3*data2d)

But, when I use PeriodicBC,
#left-plot
Q4 = compose(PeriodicBC(Float64, (6,6))...)
heatmap(Q4*data2d)
#right-plot
heatmap(periodic_expected)
I get a padded data as shown in the left plot below, but I expect to get the one shown in the right,

Am I doing something wrong in composing the BC's in 2-D?