![]() |
![]() |
![]() |
![]() |
DVadvect
Synopsis
determine the position of a massless particle along a velocity streamline
module DVadvect { /* releases particles into a velocity field */
Mesh+Node_Data+Iparam &in { /* input field */
nnodes+req;
xform+nonotify;
};
float+Iparam time; /* time */
int+Iparam direction; /* direction of integration */
float+read+notify+opt+IPort2
start_time; /* start time for release */
float+read+notify+opt+IPort2
release_interval; /* release time interval */
Mesh+Node_Data+Oparam out { /* output field */
&xform+nowrite => in.xform;
};
omethod+notify_val+notify_inst upd_advect
= "DVadvect_update";
};Description
DVadvect takes the output of DVstream, which is a polyline Mesh with velocity Node_Data that represents the path of the velocities through a field, plus a float value that is a time along the streamline. From this, for each streamline, it calculates the position of a particle at that a given time along the streamline.
Input
Reference to the field output of DVstream. This is a polyline unstructured Mesh that is the path of a streamline through a velocity (three object X, Y, Z vector component) field. Its Node_Data is a velocity value.
An integer. If the value is not 0, the direction of integration is forward. If it is zero, the direction is backward.
Output
The output is a new object. Its mesh is an unstructured Mesh of cell type Point. The locations of the points represent each particle's current position. Its Node_Data is the velocities at those points. The field also includes a reference to the input field's xform.
advector uses precomputed streamlines (from DVstream) as particle paths. It integrates velocity along the streamlines to calculate the new position of the particles at each time step.The streamlines are originally calculated using the Runge-Kutte method of specified order with adaptive time steps.
Example
Libraries.Main.Mappers.advector
File
modules/advect.cUtility DVM macrosDVMadvect_param, Advect
See also
![]() |
![]() |
![]() |
![]() |