output of the properties of particles crossing a surface

Submitted by kalei on Tue, 05/17/2016 - 13:23

I want to store the properties (e.g. velocity and time) of all particles crossing a certain plane (e.g. a surface defined by a stl or the boundary of my computational domain). Can anybody give me a hint, how this can be realised?

kalei | Thu, 05/19/2016 - 13:15

Thanks for the hint. I tried to use the fix massflow/mesh
>fix mas nve_group massflow/mesh mesh cad vec_side 0. 0. -1.
and write the data to a dump file
>dump dmp3 nve_group custom 1000 post/dump*.count id f_massflow_mas
It gives me the following output:
ITEM: TIMESTEP
12000
ITEM: NUMBER OF ATOMS
381
ITEM: BOX BOUNDS ff ff ff
-0.1 0.1
-0.1 0.1
0 0.2
ITEM: ATOMS id f_massflow_mas
287 1
224 1
140 1
144 1
183 1
..
According to the documentation of massflow/mesh, I would actually expect a vector. Can you give me a hint where might be the mistake in my code? From the documentation I also cannot see how I might access the velocity.

Best
kalei

Daniel Queteschiner | Thu, 05/19/2016 - 13:39

massflow/mesh comes with 2 types of output. The first type of data can be written to a file by using the command option file. For each particle crossing the mesh surface this will write the particle ID, time of crossing (using the writeTime option), diameter, position, velocity [orientation, color]. The second part of data (mass, # of particles, mass flow rate, particle rate) can be accessed via the f_ID mechanism (which you did not use correctly), example

# surface mesh for mass flow measurement
fix surface_mf all mesh/surface file meshes/massflow.stl type 1 scale 1.0 move 0.0 0.0 0.0

# mass flow measurement
# count particles only once, define outside by 3D point 'on the outside'
#fix mymassflow all massflow/mesh mesh surface_mf count once point_at_outlet 0.0 0.0 0.0 file massflow_particle_data.txt
# count particles multiple times (e.g. rebouncing, periodic bc, ...), define outside by direction vector pointing to the outside
fix mymassflow all massflow/mesh mesh surface_mf count multiple vec_side 0.0 0.0 -1.0 writeTime file massflow_particle_data.txt

# access data of mymassflow
variable time equal step*dt # current simulation time (step and dt are built-in variables)
variable m equal f_mymassflow[1] # total mass that has crossed the mesh since simulation start
variable np equal f_mymassflow[2] # total number of particles that have crossed the mesh since simulation start
variable mdot equal f_mymassflow[3] # current mass flow rate
variable npdot equal f_mymassflow[4] # current particle flow rate

# write data to file
fix pmassout all print 1000 "${time} ${m} ${np} ${mdot} ${npdot}" screen no title "t mass particles massflow particlerate" file massflow.txt