Visualisation of solution fields in volume meshes - especially of dynamic phenomena - remains one of the challenges in post-processing and visualisation. Because of the overwhelming amount of data, one must concentrate on regions of special interest or try to extract the important features, such as vortex cores in CFD simulations. While baspl++ does not provide algorithms to search for and identify vortex cores automatically, it has the possibility to simulate and visualise particle traces. Such particle traces illustrate and help to understand the flow in a region of interest.
Often, particle traces are referred to as "streamlines". This is true only for steady flows, where the trace of the particle follows the stream line of the flow. The term "particle trace" is more general as it applies to unsteady flows as well. baspl++ is capable of calculating particle traces for steady and for unsteady flows.
This chapter explains how particle tracing is implemented in baspl++ and how to create and visualise particle traces.
The Tracer
object is used to generate and to
visualise particle traces. To a Tracer
object,
there is a Model
associated which is used by the
Tracer
object to extract the mesh geometry and
solution fields. The Tracer
object can generate as
many particle traces are desired. It has the following sub-objects:
-
The
datasource
sub-object contains the settings regarding to which velocity field(s) should be used, what is the field for the colouring, etc. Both steady (streamlines) and unsteady particle traces are possible. -
The
emitters
sub-object contains a list of emitters, where each emitter defines a hexahedral, rectangular, or line grid of points or a single point where particles are injected. -
The display attributes, defining the display properties of the visualised particle traces, are available in the
attributes
sub-object.
To create a Tracer
object with the GUI,
first select the Model
object and then, in the
main menu, select Object->Create Particle Tracer
.
In Python, assuming the Model
object is
referenced by the variable "m", this is done as follows:
tr = Tracer(m)
![]() |
Note |
---|---|
For NSMB meshes, the
m.displace_sfv = True |
Once this is done, the Tracer
object
appears in the tree widget, and its editor is activated. There are no
particle traces visible yet, since a newly created
Tracer
object has no emitters.
The editor consists of three pages: "Datasource", "Emitters", and "Attributes". In the majority of the cases, the default datasource and attributes settings need no modification in the first place. On the other hand, emitters must be created. This is explained in the next section.