Hi, Lina. Good to hear from you. There is such a channelflow utility,
findsymmetries.cpp in the latest release (1.3.4). I've attached it.
Basically, it loops over all combinations of fractional translations
and flips and find which ones a field satisfies.
John
John F. Gibson, 2009-03-17 08:46
(from Lina Kim)
Thanks for the code. So I tested findsymmetries.cpp and it works very quickly! But, let me make sure I fully understand the algorithm. nx and nz translates the flowfield (say with a pair of rolls) in their respective directions; so nz = 4 would shift a pair of rolls in increments of quarters along the channel's width. An output such as this:
returns 's' or tau (1, tau_x, tau_z, tau_xz) and where along the channel it satisfies that symmetry right? So in terms of these rolls, ( 1 1 1 1 0 0.5 ) shifting them half way along the channel in the spanwise direction will give me back the same flowfield.
I think it's correct but I just want to make sure I'm reading it correctly to avoid any confusion.
Lina
John F. Gibson, 2009-03-17 08:47
Your interpretation of the symmetry output is correct. The
symmetries are parameterized like this
sigma = (sign sx sy sz ax az)
(sign sx sy sz ax az) [u,v,w](x,y,z) = sign [sx u, sy v, sz w](sx x + ax Lx, sy y, sz z + az Lz)
The findsymmetries program returns the symmetries that the field
satisfies, i.e. those for which
u = sigma u
The one you mention, (1 1 1 1 0 0.5) does shift the field Lz/2 in z.
and it means that after you apply that operatuion you get the same
field back.
John
Lina Kim, 2009-03-17 18:51
Thanks for posting my question online John!
programming/determining_field_symmetries_lina_kim.txt · Last modified: 2010-02-02 07:55 (external edit)
Discussion
Hi, Lina. Good to hear from you. There is such a channelflow utility, findsymmetries.cpp in the latest release (1.3.4). I've attached it. Basically, it loops over all combinations of fractional translations and flips and find which ones a field satisfies.
John
(from Lina Kim)
Thanks for the code. So I tested findsymmetries.cpp and it works very quickly! But, let me make sure I fully understand the algorithm. nx and nz translates the flowfield (say with a pair of rolls) in their respective directions; so nz = 4 would shift a pair of rolls in increments of quarters along the channel's width. An output such as this:
s == ( 1 1 1 1 0 0 ) TRUE L2Dist(u,su)/L2Norm(u) == 0 s == ( 1 1 1 1 0 0.5 ) TRUE L2Dist(u,su)/L2Norm(u) == 2.69239e-12
satisfied 2 symmetries to eps == 1e-06 ( 1 1 1 1 0 0 ) ( 1 1 1 1 0 0.5 )
returns 's' or tau (1, tau_x, tau_z, tau_xz) and where along the channel it satisfies that symmetry right? So in terms of these rolls, ( 1 1 1 1 0 0.5 ) shifting them half way along the channel in the spanwise direction will give me back the same flowfield.
I think it's correct but I just want to make sure I'm reading it correctly to avoid any confusion.
Lina
Your interpretation of the symmetry output is correct. The symmetries are parameterized like this
sigma = (sign sx sy sz ax az)
(sign sx sy sz ax az) [u,v,w](x,y,z) = sign [sx u, sy v, sz w](sx x + ax Lx, sy y, sz z + az Lz)
The findsymmetries program returns the symmetries that the field satisfies, i.e. those for which
u = sigma u
The one you mention, (1 1 1 1 0 0.5) does shift the field Lz/2 in z. and it means that after you apply that operatuion you get the same field back.
John
Thanks for posting my question online John!