@YaqiWang and @jortensi reported that they get different results if they have a single periodic BC that applies to several variables vs several periodic bcs each acting on a single variable. This shouldn't be the case.
@YaqiWang provided an input file to reproduce the problem. I suspect that we could make this even simpler by using auto-direction bcs but this is a good start.
[Mesh]
type = GeneratedMesh
dim = 2
nx = 15
ny = 15
nz = 0
xmax = 10
ymax = 10
zmin = 0
zmax = 0
elem_type = QUAD4
[]
[Functions]
[./tr_x]
type = ParsedFunction
value = x
[../]
[./tr_y]
type = ParsedFunction
value = y+10
[../]
[./itr_x]
type = ParsedFunction
value = x
[../]
[./itr_y]
type = ParsedFunction
value = y-10
[../]
[]
[Variables]
[./u]
order = FIRST
family = LAGRANGE
[../]
[./v]
order = FIRST
family = LAGRANGE
[../]
[]
[Kernels]
[./diff]
type = Diffusion
variable = u
[../]
[./forcing]
type = GaussContForcing
variable = u
y_center = 1
x_spread = 0.25
y_spread = 0.5
[../]
[./dot]
type = TimeDerivative
variable = u
[../]
[./diffv]
type = Diffusion
variable = v
[../]
[./forcingv]
type = CoupledForce
variable = v
v = u
[../]
[./dotv]
type = TimeDerivative
variable = v
[../]
[]
[BCs]
# active = ' '
[./Periodic]
# [./x]
# primary = bottom
# secondary = top
# transform_func = 'tr_x tr_y'
# inv_transform_func = 'itr_x itr_y'
# variable = 'u v'
# [../]
[./u]
primary = bottom
secondary = top
transform_func = 'tr_x tr_y'
inv_transform_func = 'itr_x itr_y'
variable = u
[../]
[./v]
primary = bottom
secondary = top
transform_func = 'tr_x tr_y'
inv_transform_func = 'itr_x itr_y'
variable = v
[../]
[../]
[]
[Executioner]
type = Transient
dt = 0.5
num_steps = 10
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
@YaqiWang and @jortensi reported that they get different results if they have a single periodic BC that applies to several variables vs several periodic bcs each acting on a single variable. This shouldn't be the case.
@YaqiWang provided an input file to reproduce the problem. I suspect that we could make this even simpler by using auto-direction bcs but this is a good start.