multiscale simulations of complex fluid rheology

16
Multiscale simulations of complex fluid rheology Michael P. Howard , Athanassios Z. Panagiotopoulos Department of Chemical and Biological Engineering, Princeton University Arash Nikoubashman Institute of Physics, Johannes Gutenberg University Mainz 18 May 2017 [email protected]

Upload: others

Post on 01-Nov-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Multiscale simulations of complex fluid rheology

Multiscale simulations of complex fluid rheology

Michael P. Howard, Athanassios Z. Panagiotopoulos Department of Chemical and Biological Engineering, Princeton University

Arash Nikoubashman Institute of Physics, Johannes Gutenberg University Mainz

18 May 2017

[email protected]

Page 2: Multiscale simulations of complex fluid rheology

Complex fluids are everywhere

2

Page 3: Multiscale simulations of complex fluid rheology

An industrial example: enhanced oil recovery

3

Primary recovery: pressure drives the oil from the well (10%) Secondary recovery: water or gas displaces oil (~30%) Tertiary (enhanced) oil recovery by gas, water, chemical injection

Surfactants, polymers, nanoparticles, etc.

What is the “best” formulation? What fundamental physics control transport of these fluids?

Computer simulations can allow for rapid exploration of the design space for complex fluids

Page 4: Multiscale simulations of complex fluid rheology

Multiscale simulation model

4

length scale

tim

e sc

ale

fs

ns

µs

ms

s

nm

ps

µm mm

Atomistic models

Coarse-grained & mesoscale models

Constitutive models resolution

speed

Page 5: Multiscale simulations of complex fluid rheology

Multiscale simulation model

5

bond stretch

angle bend

dihedral twist

dispersion forces, excluded volume, electrostatics

solvent effects

Page 6: Multiscale simulations of complex fluid rheology

Multiparticle collision dynamics

6

Alternate solvent particle streaming with collisions.

Collisions are momentum- and energy-conserving. An H-theorem exists, and the correct Maxwell-Boltzmann distribution of velocities is obtained. The Navier-Stokes momentum balance is satisfied.

Mesoscale simulation method that coarse-grains the solvent while preserving hydrodynamics.1

1 A. Malevanets and R. Kapral. J. Chem. Phys. 110, 8605-8613 (1999).

Page 7: Multiscale simulations of complex fluid rheology

Multiparticle collision dynamics

7

ΔtMD …

Δt Δt collide collide

stream stream MPCD

MD

Polymers are coupled to the solvent during the collision step.2

F

T

Rigid objects are coupled during the streaming step.3

2 A. Malevanets and J.M. Yeomans. Europhys. Lett. 52, 231-237 (2000). 3 G. Gompper, T. Ihle, D.M. Kroll, and R.G. Winkler. Advanced Computer Simulation Approaches for Soft

Matter Sciences III, Advances in Polymer Science Vol. 221 (Springer, 2009), p. 1-87.

Page 8: Multiscale simulations of complex fluid rheology

Multiparticle collision dynamics

8 4 A. Nikoubashman, N.A. Mahynski, A.H. Pirayandeh, and A.Z. Panagiotopoulos. J. Chem. Phys. 140,

094903 (2014). 5 M.P. Howard, A.Z. Panagiotopoulos, and A. Nikoubashman, J. Chem. Phys. 142, 224908 (2015).

Page 9: Multiscale simulations of complex fluid rheology

Why Blue Waters?

9

Typical MPCD simulations require many particles with simple interactions.

MPCD readily lends itself to parallelization because of its particle- and cell-based nature:

1.  Accelerators (e.g., GPU) within a node. 2.  Domain decomposition to many nodes.

Blue Waters is the only NSF-funded system currently giving access to GPU resources at massive scale!

( 10 particles per cell ) x ( 1003 - 4003 cells ) = 10–640 million particles

For molecular dynamics, GPU acceleration can significantly increase the scientific throughput by as much as an order of magnitude.

Page 10: Multiscale simulations of complex fluid rheology

Implementation

10

HOOMD-blue simulation package6,7 for design philosophy and flexible user interface.

run_script.py Page 1

import hoomdhoomd.context.initialize()from hoomd import mpcd

# initialize an empty hoomd system firstbox = hoomd.data.boxdim(L=200.)hoomd.init.read_snapshot(hoomd.data.make_snapshot(N=0, box=box))

# then initialize the MPCD system randomlys = mpcd.init.make_random(N=int(10*box.get_volume()), kT=1.0, seed=7)s.sorter.set_period(period=100)

# use the SRD collision ruleig = mpcd.integrator(dt=0.1, period=1)mpcd.collide.srd(seed=1, period=1, angle=130.)

# run for 5000 stepshoomd.run(5000)

HOOMD-blue is available open-source for use on Blue Waters:

http://glotzerlab.engin.umich.edu/hoomd-blue

6 J.A. Anderson, C.D. Lorenz, and A. Travesset. J. Comput. Phys. 227, 5342-5359 (2008). 7 J. Glaser et al. Comput. Phys. Commun. 192, 97-107 (2015).

Page 11: Multiscale simulations of complex fluid rheology

Implementation: cell list

11

1

4

2

7 3

96

0

5

8

0 1 2 3 4

5 6 7 8 9

1 4 2 7 3

9 6 0 5 8

renumber

compact

1 4

2 7 3 9 6

0 5

8

2

5

2

0

1

Nc

cell

inde

x

particles

atomic write

Improve performance by periodically sorting particles.

Page 12: Multiscale simulations of complex fluid rheology

Implementation: domain decomposition

12

HOOMD-blue supports non-uniform domain boundaries. To simplify integration with molecular dynamics code, we adopt the same decomposition.

domain boundary

sim

ulat

ion

box

cells

covered domain

Any cells overlapping between domains require communication for computing cell-level averages, like the velocity or kinetic energy.

All MPI buffers are packed and unpacked on the GPU. Some performance can be gained from using CUDA-aware MPI when GPUDirect RDMA is available.

Page 13: Multiscale simulations of complex fluid rheology

Implementation: CUDA optimizations

13

Wide parallelism

7 3 2 9 6 4

7 3 2 9 6 4

2 2 1 1

Runtime autotuning

3 3

6

warp reduction

Significant performance variation from size of the thread-block that is architecture and system-size dependent.

Solution: use periodic runtime tuning with CUDA event timings to scan through and select optimal parameters.

block size w

K20x 448 4

P100 224 16

w threads per cell

autotuner.cc Page 1

m_tuner−>begin();gpu::cell_thermo(..., m_tuner−>getParam());m_tuner−>end();

Only a small fraction of time is spent running at non-optimal parameters for most kernels.

strided evaluation

Page 14: Multiscale simulations of complex fluid rheology

Implementation: random number generation

14

One PRNG state is created per-thread and per-kernel using a cryptographic hash.8 Micro-streams of random numbers are then drawn.

Additional benefit: significantly reduced cell-level MPI communication since no synchronization of random numbers is required.

Saru hash(45 instr.)

global cell index

timestep

seed

draw(13 instr.)

draw

The additional instructions needed to prepare the PRNG state can be more efficient than loading a state from memory on the GPU.

8 C.L. Phillips, J.A. Anderson, and S.C. Glotzer. J. Comput. Phys. 230, 7191-7201 (2011).

Need efficient random number generation for the collision step.

Page 15: Multiscale simulations of complex fluid rheology

Performance on Blue Waters

15

1

10

100

1 2 4 8 16 32 64 128 256 512 1024

GPU

tim

e st

eps

per

sec

ond

number of nodes

L/a = 200L/a = 400

CPUL/a = 200L/a = 400

Strong scaling tested for L = 200 and L = 400 cubic boxes with 10 particles / cell (80 million and 640 million particles).

CPU benchmarks (16 processes per XE node) show excellent scaling.

GPU benchmarks (1 process per XK node) show good scaling, with some loss of performance at high node counts.

10

100

32 64 128 256 512 1024

L/a = 400

tim

e [m

s /

step

]

number of nodes

totalcoreparticle comm.cell comm.

GPU profile shows that performance is bottlenecked by cell communication.

Page 16: Multiscale simulations of complex fluid rheology

Future plans

16

Performance enhancements 1.  Overlap outer cell communication

with inner cell computations. 2.  Test a mixed-precision model for

floating-point particle and cell data.

Feature enhancements 1.  Implement additional MPCD collision

rules for a multiphase fluid. 2.  Couple particles to solid bounding

walls.

Scientific application: Compare MPCD multiphase fluid to MD simulations, and study droplet physics in confined complex fluid.

All code is available online! https://bitbucket.org/glotzer/hoomd-blue