Transcript Fluidix

Fluidix
Getting Started with Fluidix
© 2008 Adam MacDonald, Dr. David Pink, StFX University, OneZero Software
Introduction

This guide covers the basics of using Fluidix to build,
simulate, and visualize a simple system

Many advanced and important features are not
mentioned in this tutorial

Refer to the Fluidix User Manual for a thorough
explanation of the purpose and function of all aspects of
the user interface
At First Glance

The Fluidix control interface consists of four sections





Particles: for creating particles and specifying the interactions
Springs: for specifying permanent bonds between particles
Simulation: for setting properties and exporting a simulation
Analyzer: for visualizing results and data analysis
The 3D display window is shown on the right


Dragging using the left mouse button will rotate the display
Dragging using the right mouse button will zoom the display
The “World”

The first and only item in the “Structures” list is the
“World”

All particles specified within the “World” structure are
placed randomly throughout the entire simulation volume

The name of a structure can be edited by changing the
text in the entry field
Particle Types

Each structure (including “World”) contains a set of
particle types: a collection of particles with identical
radius and mass

Add a particle type to “World” by clicking “Add”

Particles can be added or removed to/from a particle
type by changing “Count”
Building a New Structure

A new structure can be created by selecting “World” and
clicking the “Edit” tab

This will switch into “Edit” mode



A local simulation of this structure’s particles is shown in the
display window
Particles can be interactively positioned within the box
Changes to the particle properties will be immediately evident in
the display window
Structural Springs

While in “Edit” mode, the “Springs” section has effect
only on the structure currently being designed

Select the first and last particles in the structure, and
click “Poly” to easily create a polymer
Positioning Structures

Click the “Move One” tab to leave “Edit” mode

Our polymer is visible in the small box at the origin

The six values in the “Move One” section can be used to
set the position and rotation of this structure
Structure Instances

Multiple copies of a structure can be independently
placed

The “Place All” section has a number of tools for placing
many structure instances easily

Here, I place 100 instances of our polymer randomly
throughout the world
Relations

Now, our simulation has two particle types:



“Water” (100 particles in the “World” structure, placed randomly)
“New Type” (2030 particles)
 30 particles in the “World” structure, placed randomly
 20 particles in each of 100 polymers (2000 total)
Three relations exist in the “Relations” list to account for
each possible interaction between particles of these two
types
Conservative Interaction

The energy-conserving repulsive interaction between
pairs of particles



A lower value means the particles are soft; they may penetrate
each other
A higher value means the particles are hard; they repel very
quickly once they penetrate even a small amount
Since interactions are specified per pair of particle types,
particles may be hard when interacting with one type of
particle, but soft to another

For example, “Water” particles may repel each other very
strongly, while “New Type” particles are allowed to pass through
“Water” without effect
Dissipative Interaction

The non-energy-conserving interaction between pairs of
particles



Fast moving particles are slowed by a dissipative force
A random force is applied according to the temperature
The dissipative and random forces are scaled by this value

This interaction is the key of the DPD technique, allowing
it to use a single soft particle to represent a cluster of
molecules

Any value between 2 and 5 is acceptable for most cases
Particle Properties


Properties of individual particles can be specified in the
“Particle Properties” section

Charge: the electrostatic charge of a particle

Mark: an integer tag which may be accessed by a custom plug-in

Hold: freeze a particle in place (use this feature temporarily to
move particles individually while in “Edit” mode)

Track: print the position of this particle during the simulation
Changes to a particle will take effect on all instances of
the structure containing that particle
Springs

While not in “Edit” mode, any two particles in the system
can be specified to be connected by a permanent spring

The “Weld” function will attach all pairs of particles of two
structure instances by a spring, if they are within the
specified distance

This feature can be used to build a large object from
many smaller structures

For example, flat squares of 5x5 particles can be placed side by
side and welded into a large sheet
Boundary Conditions

The size of the simulation volume can be specified using
the “World” values


In “Edit” mode, these values represent the size of the structure
Boundary conditions (what happens at the edges of the
world) can be specified for each dimension

Periodic: particles wrap to the other side of the world, simulating
an infinite system

Soft Walls: particles are repelled using a adaptive soft force
which behaves like a physical surface (including dissipative and
random components) and prevents layering

Hard Walls: particles are instantly reflected (velocity component
reversed) upon reaching the edge of the simulation
Time

The time-step of the simulation is the amount of time that
elapses during one iteration of Newton’s equations of
motion (one simulation step)




The default value of 0.02 is acceptable for most cases
A lower value will increase interaction stability and accuracy
A higher value will allow the simulation to progress through time
at a faster pace
The number of steps in the simulation and the frequency
at which particle data is output to disk are set by the
following “Frames” and “Output Every” values
Physical Parameters

Background water adds a static uniform fluid to the entire
simulation

This mean-field approach is used as a high-performance
alternative to filling the system with a high density of water
particles

The temperature is used to control the random force of
particle interactions (and background water)

Gravity enables a constant downward force on all
particles
Custom Plug-ins

A custom plug-in specific to each system can be
included to add infinite possibilities to your simulation

Plug-in code must be written in C and will be compiled
into the simulation server when it is created

A number of tools are provided which easily add specific
functionality to the plug-ins (water pump, 3D mesh, etc.)
Saving Your Project

To re-open your system for editing at a later time, you
must save the project to disk

The “Save” button will allow you to create a “.prj” file
storing all of your simulation parameters and settings

The “Open” button will prompt you to select a “.prj” file
which will load your system into Fluidix
Executing the Simulation

When your system is ready, clicking the “Export
Simulation” button will create an executable program

Running this program will start the simulation server

Many clients can connect to this server and help
simulate your system in parallel

Use the “Run Now” checkbox to automatically run the
server and connect one client on the local computer
Visualization

The “Analyzer” section operates independently of the
rest of the program

Output from any simulation can be opened for viewing
while any project is open or any server/client is running
Opening Output Data

1) Choose a “.sim” file containing simulation information



This step is optional; without this file advanced information about
your simulation will not be available
After “Export Simulation,” this file is opened automatically
2) Select a “Frame Sequence”


This is a folder containing your output files from each step
After “Export Simulation,” the folder is selected; just click “Open”
Appearance

Select a particle type from the “Particles” list to change
the way those particles are displayed




Using “Show,” particles can be represented as spheres, points, or
not at all
Set “Radius” to change the displayed size of spheres or points
Use “Display Every” to show only a some of a high density of
particles
Use the “Springs” tab to choose which sets of springs
should be displayed

Sometimes it is convenient to show only the springs of a polymer
while completely hiding the particles
Dynamics

Using the control buttons, the sequence of output frames
can be viewed intuitively

While a simulation is running, using “Play” without the
“Loop” option will cause each output frame to be
displayed as soon as it is created

Use the “Output .gif” option to write an animation to disk
Viewing a Specific Area

Using the “Selected Volume” values, a certain area of
the simulation can be isolated for easy viewing


For example: a cross section of a dense fluid
This tool also selects which particles are included in the
data analysis
Basic Analysis

Viewing a number of useful plots is as easy as clicking
the appropriate checkbox

Only a subset of the particles in the system are used



Particle types which are displayed with “Spheres” or “Points”
Particles that are within the “Selected Volume”
Use “Play” to see how the plot changes dynamically
Advanced Analysis

A custom analysis function can be written in C and
executed on the simulation data


Particles in the “Selected Volume” can be identified as well
Output data can be opened and viewed as a plot on the
display window

If time is the x-axis, the current simulation time will be identified
on the graph