

Hi everyone!
As a beginner I got stuck when reading the documentation on the periodic triangulations! My question is about the "Offset" vector, the documentation says "It represents the number of periods a representative in the original domain must be translated in x and ydirection". Could someone explain this vector in an example maybe? I wanted to visualize my periodic triangulation structure, but I do not know how to deal with the edges between an original point and a periodic copy.
Thanks, James


Hello,
An illustration of the offsets is given this
figure in the Periodic_3_triangulation_3 documentation. The
offset vector (or just simply offset) expresses a translation: a
periodic domain is an axisaligned cuboid that by definition
repeats itself in the x, y and z directions and thus forms a
tiling of the space. If we arbitrarily choose a tile and name it
the main tile, we can number all the other tiles via 3 numbers,
the amount of steps we have to do in the x, y, and z direction to
reach that tile from the main tile. That's the offset.
What is important to understand is that points of a periodic
triangulation all live in the same cube (the one with offset
(0,0,0), also known as fundamental or canonical
domain). Offsets are then used to indicate relative positions
within an element of the periodic triangulation.
For example, in 3D and using the unit cube as fundamental domain,
the cell composed of the points:
(0.7, 0.9, 1.1)
(0.8, 0.8, 0.9)
(0.9, 1.2, 0.9)
(1.0, 0.9, 1.1)
is going to be represented as
(0.7, 0.9, 0.1) with offset (0,0,1)
(0.8, 0.8, 0.9) with offset (0,0,0)
(0.9, 0.2, 0.9) with offset (0,1,0)
(0.0, 0.9, 0.1) with offset (1,0,1)
Thus, when you drawing your triangulation, you should iterate over
its elements and take into account the offsets to compute the
positions you have to draw in full space (this is basically reading
the example above from the bottom up). Whichever dimension you are
in, there are functions to obtain a position in Euclidean space from
a vertex within an element (e.g. periodic_point()). There
are also functions to save and output periodic triangulations, which
you can inspire yourself with if they're not satisfactory for you.
Best,
Mael
On 20/07/2018 01:42, GAD FLY wrote:
Hi everyone!
As a beginner I
got stuck when reading the documentation on the periodic
triangulations!
My question is
about the "Offset" vector, the documentation says "It represents the
number of periods a representative in the original domain
must be translated in x and ydirection".
Could someone explain this vector in an example maybe?
I
wanted to visualize my periodic triangulation structure, but I
do not know how to deal with the edges between an original
point and a periodic copy.
Thanks,
James


Thank you Mael for your detailed explanation. However, when for example a periodic point (xp,yp) in 2D has offset of (2,0), to find its position should we try (xp + 2*L , yp) where L is the box size?
Best, James
Hello,
An illustration of the offsets is given this
figure in the Periodic_3_triangulation_3 documentation. The
offset vector (or just simply offset) expresses a translation: a
periodic domain is an axisaligned cuboid that by definition
repeats itself in the x, y and z directions and thus forms a
tiling of the space. If we arbitrarily choose a tile and name it
the main tile, we can number all the other tiles via 3 numbers,
the amount of steps we have to do in the x, y, and z direction to
reach that tile from the main tile. That's the offset.
What is important to understand is that points of a periodic
triangulation all live in the same cube (the one with offset
(0,0,0), also known as fundamental or canonical
domain). Offsets are then used to indicate relative positions
within an element of the periodic triangulation.
For example, in 3D and using the unit cube as fundamental domain,
the cell composed of the points:
(0.7, 0.9, 1.1)
(0.8, 0.8, 0.9)
(0.9, 1.2, 0.9)
(1.0, 0.9, 1.1)
is going to be represented as
(0.7, 0.9, 0.1) with offset (0,0,1)
(0.8, 0.8, 0.9) with offset (0,0,0)
(0.9, 0.2, 0.9) with offset (0,1,0)
(0.0, 0.9, 0.1) with offset (1,0,1)
Thus, when you drawing your triangulation, you should iterate over
its elements and take into account the offsets to compute the
positions you have to draw in full space (this is basically reading
the example above from the bottom up). Whichever dimension you are
in, there are functions to obtain a position in Euclidean space from
a vertex within an element (e.g. periodic_point()). There
are also functions to save and output periodic triangulations, which
you can inspire yourself with if they're not satisfactory for you.
Best,
Mael
On 20/07/2018 01:42, GAD FLY wrote:
Hi everyone!
As a beginner I
got stuck when reading the documentation on the periodic
triangulations!
My question is
about the "Offset" vector, the documentation says "It represents the
number of periods a representative in the original domain
must be translated in x and ydirection".
Could someone explain this vector in an example maybe?
I
wanted to visualize my periodic triangulation structure, but I
do not know how to deal with the edges between an original
point and a periodic copy.
Thanks,
James


It seems the answer would be (xp  L, yp)?
Thank you Mael for your detailed explanation. However, when for example a periodic point (xp,yp) in 2D has offset of (2,0), to find its position should we try (xp + 2*L , yp) where L is the box size?
Best, James
Hello,
An illustration of the offsets is given this
figure in the Periodic_3_triangulation_3 documentation. The
offset vector (or just simply offset) expresses a translation: a
periodic domain is an axisaligned cuboid that by definition
repeats itself in the x, y and z directions and thus forms a
tiling of the space. If we arbitrarily choose a tile and name it
the main tile, we can number all the other tiles via 3 numbers,
the amount of steps we have to do in the x, y, and z direction to
reach that tile from the main tile. That's the offset.
What is important to understand is that points of a periodic
triangulation all live in the same cube (the one with offset
(0,0,0), also known as fundamental or canonical
domain). Offsets are then used to indicate relative positions
within an element of the periodic triangulation.
For example, in 3D and using the unit cube as fundamental domain,
the cell composed of the points:
(0.7, 0.9, 1.1)
(0.8, 0.8, 0.9)
(0.9, 1.2, 0.9)
(1.0, 0.9, 1.1)
is going to be represented as
(0.7, 0.9, 0.1) with offset (0,0,1)
(0.8, 0.8, 0.9) with offset (0,0,0)
(0.9, 0.2, 0.9) with offset (0,1,0)
(0.0, 0.9, 0.1) with offset (1,0,1)
Thus, when you drawing your triangulation, you should iterate over
its elements and take into account the offsets to compute the
positions you have to draw in full space (this is basically reading
the example above from the bottom up). Whichever dimension you are
in, there are functions to obtain a position in Euclidean space from
a vertex within an element (e.g. periodic_point()). There
are also functions to save and output periodic triangulations, which
you can inspire yourself with if they're not satisfactory for you.
Best,
Mael
On 20/07/2018 01:42, GAD FLY wrote:
Hi everyone!
As a beginner I
got stuck when reading the documentation on the periodic
triangulations!
My question is
about the "Offset" vector, the documentation says "It represents the
number of periods a representative in the original domain
must be translated in x and ydirection".
Could someone explain this vector in an example maybe?
I
wanted to visualize my periodic triangulation structure, but I
do not know how to deal with the edges between an original
point and a periodic copy.
Thanks,
James


Hello,
It depends what you mean by "position" :
 If you mean you want to compute the canonical position because
you have a point in R^2, you can compute its offset and then
you'll have to subtract the offset to get the canonical position.
 If you mean you want to compute the "real world" R^2 position
because you have a canonical position (for example that of a
vertex, obtained through v>point()) and you have a given
offset, then you'll add the offset.
I guess you mean the second case.
If you are not interested in the offset per se but just in the
general position of points in R^2 to draw the triangulation, you
don't need to bother with these offset computations: the function
"P2T2::point()" (which I have just noticed is mistakenly not
documented) can be used. Given a face 'f' and the index 'i' of the
vertex in the face, you can call p2t2.point(f, i) and it'll
give you a position in R^2 based on the offset of the point in the
face. Thus,
p2t2.point(f, 0),
p2t2.point(f, 1),
p2t2.point(f, 2)
will give you a geometrically correct face in R^2 (and thus you can
draw your segments crossing the canonical cube borders correctly).
Best,
Mael
On 24/07/2018 18:00, GAD FLY wrote:
It seems
the answer would be (xp  L, yp)?
Thank you Mael
for your detailed explanation.
However, when for
example a periodic point (xp,yp) in 2D has
offset of (2,0), to find its position should
we try (xp + 2*L , yp) where L is the box
size?
Best,
James
Hello,
An illustration of the offsets
is given this
figure in the
Periodic_3_triangulation_3
documentation. The offset vector
(or just simply offset) expresses
a translation: a periodic domain
is an axisaligned cuboid that by
definition repeats itself in the
x, y and z directions and thus
forms a tiling of the space. If we
arbitrarily choose a tile and name
it the main tile, we can number
all the other tiles via 3 numbers,
the amount of steps we have to do
in the x, y, and z direction to
reach that tile from the main
tile. That's the offset.
What is important to understand
is that points of a periodic
triangulation all live in the same
cube (the one with offset (0,0,0),
also known as fundamental
or canonical domain).
Offsets are then used to indicate
relative positions within an
element of the periodic
triangulation.
For example, in 3D and using
the unit cube as fundamental
domain, the cell composed of the
points:
(0.7, 0.9, 1.1)
(0.8, 0.8, 0.9)
(0.9, 1.2, 0.9)
(1.0, 0.9, 1.1)
is going to be represented as
(0.7, 0.9, 0.1) with
offset (0,0,1)
(0.8, 0.8, 0.9) with offset
(0,0,0)
(0.9, 0.2, 0.9)
with offset (0,1,0)
(0.0, 0.9, 0.1)
with offset (1,0,1)
Thus, when you drawing your
triangulation, you should iterate
over its elements and take into
account the offsets to compute the
positions you have to draw in full
space (this is basically reading the
example above from the bottom up).
Whichever dimension you are in,
there are functions to obtain a
position in Euclidean space from a
vertex within an element (e.g. periodic_point()).
There are also functions to save and
output periodic triangulations,
which you can inspire yourself with
if they're not satisfactory for you.
Best,
Mael
On
20/07/2018 01:42, GAD FLY wrote:
Hi
everyone!
As
a beginner I got stuck when
reading the documentation on
the periodic
triangulations!
My
question is about the
"Offset" vector, the
documentation says "It represents the number of periods a
representative in the
original domain must be
translated in x and ydirection". Could someone explain
this vector in an example
maybe?
I
wanted to visualize my
periodic triangulation
structure, but I do not know
how to deal with the edges
between an original point
and a periodic copy.
Thanks,
James

