Initial Conditions: Position
The ray release positions may be mesh based, from a user-specified grid, uniformly distributed, loaded from a file, or based on an analytic expression.
Loading Initial Coordinates from File
If the initial ray positions are loaded from a text file using the Release from Data File node, the initial positions may be scaled, rotated, translated, or some combination of these. Assuming q0 to be the loaded ray release position, q0 can be rotated using the rotation matrix A
where A in 3D is given by
and in 2D by
In 3D, α, β, and γ are the Euler angles:
First α rotates the position about the space-fixed z-axis.
Then β rotates the position about the x'-axis, that is, the body-fixed X-axis after rotation about the z-axis.
Finally γ rotates the position about the z''-axis, that is, the body-fixed Z-axis after rotation about the z-axis and x'-axis.
In 2D, α is the angle of counterclockwise rotation about the origin.
All components of the ray release position vector are multiplied by the Scale factor,
Finally, the initial positions may be translated by a displacement vector Δq,
The primes indicate that translation is applied after any rotation or dilation (scaling). However, because the dilation applies equally to all vector components, the dilation and rotation commute with each other, so their relative order does not matter.