Visualisation of superquadric particles

Submitted by t9000 on Wed, 05/16/2018 - 11:03

Dear all,

i want to simulate superquadric particles but can't find a feasible way to visualize my simulation data with paraview. Is there any simple solution that works right now?

Best regards

Tobi

richti83's picture

richti83 | Wed, 05/16/2018 - 13:40

You need
- right dump file format (dump local)
- rigid reader (from github)
- python programmable filter (add via tools->manage custom filters->[import])
- a source "superquadric" in PV
see this post for all needed files and a screenshot of sq configuration on PV:
https://www.cfdem.com/forums/tutorial-4-superquadric-angle-repose-repres...

best,
Christian

I'm not an associate of DCS GmbH and not a core developer of LIGGGHTS®
ResearchGate | Contact

t9000 | Fri, 05/18/2018 - 12:41

It needed just a simple filter modification that I'd seen in one of your older posts. :)

I had to change

CLUMP_ID=P.GetArray("c_id").GetValue(body);

back to

CLUMP_ID=P.GetArray("id").GetValue(body);

Tobi

arnom's picture

arnom | Tue, 05/22/2018 - 09:56

Hi Tobi,

we will release a ParaView plugin with the next LIGGGHTS release at the end of June that should satisfy all your needs.

Kind Regards,
Arno

DCS team member & LIGGGHTS(R) core developer

Rachel | Wed, 05/23/2018 - 00:49

Hi Arno,

That's a good new. One more question: is there any plan to incorporate this superquadric function in the public version of CFDEM coupling? Thank you very much.

Best,
Rachel

arnom's picture

arnom | Thu, 05/24/2018 - 08:57

Hi Rachel,

this work is unpublished and not ready for production so I'm afraid it won't happen soon.

Kind regards,
Arno

DCS team member & LIGGGHTS(R) core developer

mhallee | Sun, 07/29/2018 - 02:51

Hi Arno,

Has this plugin been released? What should I look for?

~Mitchell

PRATBHARAT94 | Sat, 06/20/2020 - 04:53

Hello all experts,
I have to fill a cylinder container with cylindrical particles . To start my simulation, I first checked whether superquadric package was working or not. So. in.particle_particle was working well. But when I modifying this script using fix command it is showing following error : ERROR: Fix particletemplate/superquadric (id pts1): fix particletemplate/superquadric currently supports only constant blockiness params (fix_template_superquadric.cpp:366)
I have tried using both in.particle_particle script as well as in.chute_wear also. In both case I am getting same error.
Here, I am attaching in.chute_wear script:
#Simple chute wear test

echo both

atom_style superquadric
atom_modify map array
boundary f f f
newton off

communicate single vel yes

units si

region domain block -0.5 0.1 -0.2 0.2 -0.4 0.15 units box
create_box 1 domain

neighbor 0.002 bin
neigh_modify delay 0

#Material properties required for new pair styles

fix m1 all property/global youngsModulus peratomtype 5.e6
fix m2 all property/global poissonsRatio peratomtype 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
fix m5 all property/global coefficientRollingFriction peratomtypepair 2 0.5 0.5 0.5 0.5
fix m6 all property/global characteristicVelocity scalar 1.0
fix m7 all property/global coefficientRollingViscousDamping peratomtypepair 2 0.0 0.0 0.0 0.0
fix m8 all property/global k_finnie peratomtypepair 1 1.0

#New pair style
pair_style gran model hertz tangential history #Hertzian without cohesion
#pair_style gran model hertz tangential history rolling_friction off surface superquadric #Hertzian without cohesion
pair_coeff * *

timestep 0.00001

fix gravi all gravity 9.81 vector 0.0 0.0 -1.0

#the chute
fix cad all mesh/surface/stress file meshes/simple_chute.stl type 1 wear finnie
fix inface all mesh/surface file meshes/insertion_face.stl type 1
fix granwalls all wall/gran model hertz tangential history surface superquadric mesh n_meshes 1 meshes cad

#distributions for insertion

fix pts1 all particletemplate/superquadric 123457 atom_type 1 density constant 2500 shape constant 0.0015 0.0025 0.0035 blockiness 4.0 4.0 quat 1 0 0 0 #omegaz 10

#fix pts2 all particletemplate/superquadric 123457 atom_type 1 density constant 2500 shape constant 0.0015 0.0025 0.0035 blockiness 2.0 3.0
#fix pts2 all particletemplate/sphere 15485867 atom_type 1 density constant 2500 radius constant 0.0025
fix pdd1 all particledistribution/discrete 32452843 2 pts1 0.3 pts2 0.7

#region and insertion
group nve_group region domain
region bc cylinder z 0.0 0.0 0.015 0.05 0.12 units box

#particle insertion
fix ins nve_group insert/stream seed 32452867 distributiontemplate pdd1 & nparticles 6000 massrate 0.1 insert_every 1000 overlapcheck yes all_in no vel constant 0.0 0.0 -1.0 & insertion_face inface

#apply nve integration to all particles that are inserted as single particles
fix integr nve_group nve/superquadric

#output settings, include total thermal energy
compute 1 all erotate/superquadric
thermo_style custom step atoms ke c_1 vol
thermo 1000
thermo_modify lost ignore norm no

#insert the first particles so that dump is not empty
run
dump dmp all custom/vtk 200 post/chute_*.vtk id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius shapex shapey shapez quat1 quat2 quat3 quat4 blockiness1 blockiness2 tqx tqy tqz angmomx angmomy angmomz
dump dumpstress all mesh/gran/VTK 200 post/mesh_*.vtk stress wear cad

#insert particles
run 100000 upto
unfix ins

Thanks a lot

Dheeraj420 | Mon, 08/10/2020 - 08:39

Hello christian,
I am looking to predict the flow behavior of cylinderical particles in screw feeder. I am getting an error of invalid atom style but when i ran example for cubical particles inside a cylinder it is working fine. can you please provide your assistance in this??

ERROR: Invalid atom style (../atom.cpp:459)

I have attached the code.

units si
atom_style superquadrics
atom_modify map array
boundary f f f
newton off
processors 1 1 7
communicate single vel yes

#read restart_forced_liggghts_851017.data

# Declare domain
region reg block -0.040 0.090 -0.020 0.020 -0.010 0.230 units box
create_box 2 reg

# Neighbor listing
neighbor 0.001 bin
neigh_modify delay 0

### Setup
# Material and interaction properties required
fix m1 all property/global youngsModulus peratomtype 5e6 2.6e6
fix m2 all property/global poissonsRatio peratomtype 0.29 0.4
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.4 0.4 0.4 0.4
fix m4 all property/global coefficientFriction peratomtypepair 2 0.35 0.3 0.3 0.6
fix m5 all property/global coefficientRollingFriction peratomtypepair 2 0.4 0.4 0.4 0.4

# Gravity
fix 2 all gravity 9.81 vector -1.0 0.0 0.0

# Particle insertion
#region factory block 0.070 0.110 0.015 0.075 -0.030 0.030 units box
region factory block 0.075 0.085 -0.014 0.014 0.005 0.055 units box
#region factory cylinder y 0.0 0.0175 0.014 0.0196 0.0294 units box

#fix pts1 all particletemplate/sphere 86028121 atom_type 1 density constant 550 &
#radius constant 0.002
fix pts1 all particletemplate/superquadric 15485863 atom_type 1 density constant 550 shape constant 0.0005 0.0005 0.0001 blockiness constant 2.0 10.0

fix pdd all particledistribution/discrete/massbased 141650963 1 pts1 1

fix ins all insert/rate/region seed 49979693 distributiontemplate pdd &
nparticles 100000 massrate 0.00138888889 insert_every 1000 &
overlapcheck yes vel constant 0. 0. 0. region factory ntry_mc 10000

# Import mesh from cad:
fix cad1 all mesh/surface file mesh/trough.stl type 1 scale 0.001 curvature 1e-5
#heal & auto_remove_duplicates
fix cad2 all mesh/surface file mesh/screw.stl type 1 scale 0.001 curvature 1e-5

# Use the imported mesh as granular wall
#fix mixer all wall/gran model hertz tangential history rolling_friction cdt mesh n_meshes 2 meshes cad1 cad2
fix mixer all wall/gran model hertz tangential history rolling_friction cdt surface superquadric mesh n_meshes 2 meshes cad1 cad2

#fix mixer all wall/gran model hertz tangential history mesh n_meshes 2 meshes cad1 cad2

# Define the physics
#pair_style gran model hertz tangential history rolling_friction cdt

pair_style gran model hertz tangential history rolling_friction cdt surface superquadric

#pair_style gran model hertz tangential history

pair_coeff * *

### Detailed settings
# Integrator
#fix integrate all nve/sphere

fix integr all nve/superquadric integration_scheme 1

# Timestep (keep < 20% T_Rayleigh)
timestep 0.000018

# Thermodynamic output settings
thermo_style custom step atoms ke cpu
thermo 1000
thermo_modify lost ignore norm no

# Rotate the shafts
fix movecad1 all move/mesh mesh cad2 rotate origin 0. 0. 0. &
axis 0. 0. 1. period -0.6 # 100 RPM

# Check time step and initialize dump file
fix ctg all check/timestep/gran 1000 0.01 0.01
run 1
unfix ctg

# Create imaging information
dump dumpstl all stl 5000 post/dump*.stl
dump dmp all custom/vtk 5000 post/dump_*.vtk id type type x y z ix iy iz vx vy vz &
fx fy fz omegax omegay omegaz radius
#dump dmp all custom 1000 dump.screw id type type x y z quat1 quat2 quat3 quat4 vx vy vz fx fy fz blockiness

### Execution and further settings

# Run to 40 sec to equilibrate system
run 2500000 upto