forked from idaholab/LIGGGHTS-INL
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgran_cohesion_bond.html
More file actions
584 lines (461 loc) · 37.7 KB
/
gran_cohesion_bond.html
File metadata and controls
584 lines (461 loc) · 37.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>gran cohesion bond model — LIGGGHTS v4.X documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="Manual.html" class="icon icon-home"> LIGGGHTS
</a>
<div class="version">
v4.X
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="Section_intro.html">1. Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Section_intro.html#what-is-liggghts-r-inl">1.1. What is LIGGGHTS(R)-INL</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_intro.html#liggghts-public-vs-liggghts-premium">1.2. LIGGGHTS-PUBLIC VS. LIGGGHTS-PREMIUM</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_intro.html#history">1.3. History</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_intro.html#liggghts-r-inl-features">1.4. LIGGGHTS(R)-INL features</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_intro.html#liggghts-r-inl-general-features">1.5. LIGGGHTS(R)-INL General features</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_intro.html#liggghts-r-inl-model-features-liggghts-public-features">1.6. LIGGGHTS(R)-INL Model features: LIGGGHTS-PUBLIC features</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_intro.html#liggghts-r-inl-model-features-additional-features-for-liggghts-r-inl">1.7. LIGGGHTS(R)-INL Model features: Additional features for LIGGGHTS(R)-INL</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_intro.html#open-source-distribution">1.8. Open source distribution</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_intro.html#acknowledgments-and-citations">1.9. Acknowledgments and citations</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Section_start.html">2. Getting Started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Section_start.html#how-to-obtain-liggghts-r-inl">2.1. How to obtain LIGGGHTS(R)-INL</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_start.html#making-liggghts-r-inl">2.2. Making LIGGGHTS(R)-INL</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Section_start.html#read-this-first">2.2.1. <strong>Read this first:</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_start.html#steps-to-build-a-liggghts-r-inl-executable">2.2.2. <strong>Steps to build a LIGGGHTS(R)-INL executable:</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_start.html#advanced-building-using-custom-makefiles">2.2.3. <strong>Advanced building using custom makefiles</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_start.html#errors-that-can-occur-when-making-liggghts-r-inl">2.2.4. <strong>Errors that can occur when making LIGGGHTS(R)-INL:</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_start.html#additional-build-tips">2.2.5. <strong>Additional build tips:</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_start.html#building-for-a-mac">2.2.6. <strong>Building for a Mac:</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_start.html#building-for-windows">2.2.7. <strong>Building for Windows:</strong></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Section_start.html#making-liggghts-r-inl-with-optional-packages">2.3. Making LIGGGHTS(R)-INL with optional packages</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_start.html#building-liggghts-r-inl-via-the-make-py-script">2.4. Building LIGGGHTS(R)-INL via the Make.py script</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_start.html#building-liggghts-r-inl-as-a-library">2.5. Building LIGGGHTS(R)-INL as a library</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Section_start.html#static-library">2.5.1. <strong>Static library:</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_start.html#shared-library">2.5.2. <strong>Shared library:</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_start.html#additional-requirement-for-using-a-shared-library">2.5.3. <strong>Additional requirement for using a shared library:</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_start.html#calling-the-liggghts-r-inl-library">2.5.4. <strong>Calling the LIGGGHTS(R)-INL library:</strong></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Section_start.html#running-liggghts-r-inl">2.6. Running LIGGGHTS(R)-INL</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_start.html#command-line-options">2.7. Command-line options</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_start.html#liggghts-r-inl-screen-output">2.8. LIGGGHTS(R)-INL screen output</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Section_input_script.html">3. Input Script</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Section_input_script.html#liggghts-r-inl-input-script">3.1. LIGGGHTS(R)-INL input script</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_input_script.html#parsing-rules">3.2. Parsing rules</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_input_script.html#input-script-structure">3.3. Input script structure</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_input_script.html#an-example-input-script">3.4. An example input script</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Section_commands.html">4. Commands</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Section_commands.html#list-of-all-commands">4.1. List of all commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_commands.html#bond-style-potentials">4.2. bond_style potentials</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_commands.html#compute-styles">4.3. compute styles</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_commands.html#dump-styles">4.4. dump styles</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_commands.html#fix-styles">4.5. fix styles</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_commands.html#pair-style-potentials">4.6. pair_style potentials</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Section_gran_models.html">5. Contact models</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Section_gran_models.html#cohesion-commands">5.1. cohesion commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_gran_models.html#model-commands">5.2. model commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_gran_models.html#rolling-friction-commands">5.3. rolling_friction commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_gran_models.html#surface-commands">5.4. surface commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_gran_models.html#tangential-commands">5.5. tangential commands</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Section_mesh_modules.html">6. Mesh modules</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Section_mesh_modules.html#module-commands">6.1. module commands</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Section_packages.html">7. Packages</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_howto.html">8. How-to discussions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Section_howto.html#restarting-a-simulation">8.1. Restarting a simulation</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_howto.html#d-simulations">8.2. 2d simulations</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_howto.html#running-multiple-simulations-from-one-input-script">8.3. Running multiple simulations from one input script</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_howto.html#granular-models">8.4. Granular models</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_howto.html#coupling-liggghts-r-inl-to-other-codes">8.5. Coupling LIGGGHTS(R)-INL to other codes</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_howto.html#visualizing-liggghts-r-inl-snapshots">8.6. Visualizing LIGGGHTS(R)-INL snapshots</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_howto.html#triclinic-non-orthogonal-simulation-boxes">8.7. Triclinic (non-orthogonal) simulation boxes</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_howto.html#output-from-liggghts-r-inl-thermo-dumps-computes-fixes-variables">8.8. Output from LIGGGHTS(R)-INL (thermo, dumps, computes, fixes, variables)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Section_howto.html#global-per-atom-local-data">8.8.1. Global/per-atom/local data</a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_howto.html#scalar-vector-array-data">8.8.2. Scalar/vector/array data</a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_howto.html#thermodynamic-output">8.8.3. Thermodynamic output</a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_howto.html#dump-file-output">8.8.4. Dump file output</a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_howto.html#fixes-that-write-output-files">8.8.5. Fixes that write output files</a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_howto.html#computes-that-process-output-quantities">8.8.6. Computes that process output quantities</a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_howto.html#fixes-that-process-output-quantities">8.8.7. Fixes that process output quantities</a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_howto.html#computes-that-generate-values-to-output">8.8.8. Computes that generate values to output</a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_howto.html#fixes-that-generate-values-to-output">8.8.9. Fixes that generate values to output</a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_howto.html#variables-that-generate-values-to-output">8.8.10. Variables that generate values to output</a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_howto.html#summary-table-of-output-options-and-data-flow-between-commands">8.8.11. Summary table of output options and data flow between commands</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Section_howto.html#walls">8.9. Walls</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_howto.html#library-interface-to-liggghts-r-inl">8.10. Library interface to LIGGGHTS(R)-INL</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Section_modify.html">9. Modifying & extending LIGGGHTS(R)-INL</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Section_modify.html#atom-styles">9.1. Atom styles</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_modify.html#compute-styles">9.2. Compute styles</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_modify.html#dump-styles">9.3. Dump styles</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_modify.html#dump-custom-output-options">9.4. Dump custom output options</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_modify.html#fix-styles">9.5. Fix styles</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_modify.html#input-script-commands">9.6. Input script commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_modify.html#pairwise-potentials">9.7. Pairwise potentials</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_modify.html#region-styles">9.8. Region styles</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_modify.html#thermodynamic-output-options">9.9. Thermodynamic output options</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_modify.html#variable-options">9.10. Variable options</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_modify.html#submitting-new-features-for-inclusion-in-liggghts-r-inl">9.11. Submitting new features for inclusion in LIGGGHTS(R)-INL</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Section_python.html">10. Python interface to LIGGGHTS(R)-INL</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Section_python.html#building-liggghts-r-inl-as-a-shared-library">10.1. Building LIGGGHTS(R)-INL as a shared library</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_python.html#installing-the-python-wrapper-into-python">10.2. Installing the Python wrapper into Python</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_python.html#extending-python-with-mpi-to-run-in-parallel">10.3. Extending Python with MPI to run in parallel</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_python.html#testing-the-python-liggghts-r-inl-interface">10.4. Testing the Python-LIGGGHTS(R)-INL interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Section_python.html#test-liggghts-r-inl-and-python-in-serial">10.4.1. <strong>Test LIGGGHTS(R)-INL and Python in serial:</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_python.html#test-liggghts-r-inl-and-python-in-parallel">10.4.2. <strong>Test LIGGGHTS(R)-INL and Python in parallel:</strong></a></li>
<li class="toctree-l3"><a class="reference internal" href="Section_python.html#running-python-scripts">10.4.3. <strong>Running Python scripts:</strong></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Section_python.html#using-liggghts-r-inl-from-python">10.5. Using LIGGGHTS(R)-INL from Python</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_python.html#example-python-scripts-that-use-liggghts-r-inl">10.6. Example Python scripts that use LIGGGHTS(R)-INL</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Section_errors.html">11. Errors</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Section_errors.html#common-problems">11.1. Common problems</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_errors.html#reporting-bugs">11.2. Reporting bugs</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_errors.html#error-warning-messages">11.3. Error & warning messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_errors.html#error">11.4. Errors:</a></li>
<li class="toctree-l2"><a class="reference internal" href="Section_errors.html#warnings">11.5. Warnings:</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="Manual.html">LIGGGHTS</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="Manual.html">Docs</a> »</li>
<li>gran cohesion bond model</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/gran_cohesion_bond.txt" rel="nofollow"> View page source</a>
<a href="http://www.cfdem.com"> Website</a>
<a href="Section_commands.html#comm" rel="nofollow"> Commands</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="gran-cohesion-bond-model">
<span id="index-0"></span><h1>gran cohesion bond model<a class="headerlink" href="#gran-cohesion-bond-model" title="Permalink to this headline">¶</a></h1>
<div class="section" id="syntax">
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
<pre class="literal-block">
cohesion bond [other model_type/model_name pairs as described <a class="reference internal" href="pair_gran.html"><em>here</em></a> ] keyword values
</pre>
<ul class="simple">
<li>zero or more keyword/value pairs may be appended to the end (after all models are specified)</li>
</ul>
<pre class="literal-block">
<em>stressBreak</em> values = 'on' or 'off'
on = bond will break by exceeding maximum stresses
off = no effect due to stress
<em>temperatureBreak</em> values = 'on' or 'off'
on = not implemented at the moment
off = no effect due to heat
<em>tensionStress</em> values = 'on' or 'off'
on = normal, tension force contributes to bond stress
off = disabled normal, tension forces
<em>compressionStress</em> values = 'on' or 'off'
on = normal, compression force contributes to bond stress
off = disabled normal, compression forces
<em>shearStress</em> values = 'on' or 'off'
on = tangential (shear) force contributes to bond stress
off = disabled tangential forces
<em>normalTorqueStress</em> values = 'on' or 'off'
on = normal torque contributes to bond stress
off = disabled normal torque
<em>shearTorqueStress</em> values = 'on' or 'off'
on = tangential (shear) torque contributes to bond stress
off = disabled shear torque
<em>createBondAlways</em> values = 'on' or 'off'
on = bonds are created always for all particles if they are within a user-defined range
off = bonds are created at a user-defined timestep for all particles if they are within a user-defined range
<em>dampingBond</em> values = 'on' or 'off'
on = damping is enabled for bonds
off = disabled damping
<em>dampingBondSmooth</em> values = 'on' or 'off'
on = smooth damping is enabled for bonds
off = disabled smooth damping
<em>dissipationBond</em> values = 'on' or 'off'
on = dissipation is enabled for bonds
off = disable dissipation
<em>computeDissipatedEnergy</em> values = 'on' or 'off'
on = the cohesion model saves the dissipated energy for each contact for the
use in <code class="xref doc docutils literal"><span class="pre">fix</span> <span class="pre">calculate/dissipated_energy</span></code>
of = no values are saved
<em>computeElasticPotential</em> values = 'on' or 'off'
on = the bond model saves the current elastic potential for each contact for
the use in <code class="xref doc docutils literal"><span class="pre">fix</span> <span class="pre">calculate/cohesion_elastic_energy</span></code>
of = no values are saved
<em>druckerPrager</em> values = 'on' or 'off'
on = a Drucker-Prager type model is used for the tangential limiting stress
off = the constant value is used
<em>ratioTensionCompression</em> values = 'on' or 'off'
on = a different limiting value for the normal tension and compression case is used
of = the same value is used
</pre>
</div>
<div class="section" id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
<p>This model can be used as part of <a class="reference internal" href="pair_gran.html"><em>pair gran</em></a> and
<a class="reference internal" href="fix_wall_gran.html"><em>fix wall/gran</em></a></p>
<p>This bond model implements the parallel bond model from <a class="reference internal" href="#potyondycundall2004"><span>Potyondy and Cundall</span></a> ,
while facilitating some user customization.</p>
<p>The current implementation creates the bond with zero forces and torques between
the bonded particles. Due to relative motion forces and torques will act on the particles, where the
normal force (Fn) is calculated explicit and all the other (tangential force (Ft), normal and tangential
torque (Tn, Tt)) are calculated incrementally:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">Fn</span> <span class="o">=</span> <span class="n">kn</span> <span class="o">*</span> <span class="n">A</span> <span class="o">*</span> <span class="p">(</span><span class="n">initial_distance</span> <span class="o">-</span> <span class="n">distance</span><span class="p">)</span>
<span class="n">Ft</span> <span class="o">+=</span> <span class="n">kt</span> <span class="o">*</span> <span class="n">A</span> <span class="o">*</span> <span class="n">v_t</span> <span class="o">*</span> <span class="n">dt</span>
<span class="n">Tn</span> <span class="o">+=</span> <span class="n">kt</span> <span class="o">*</span> <span class="n">J</span> <span class="o">*</span> <span class="n">omega_n</span> <span class="o">*</span> <span class="n">dt</span>
<span class="n">Tt</span> <span class="o">+=</span> <span class="n">kn</span> <span class="o">*</span> <span class="n">I</span> <span class="o">*</span> <span class="n">omega_t</span> <span class="o">*</span> <span class="n">dt</span>
</pre></div>
</div>
<p>with the crossectional area <em>A</em>, the polar moment of inertia <em>J</em> and the moment of inertia <em>I</em> defined by</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">A</span> <span class="o">=</span> <span class="n">rb</span><span class="o">^</span><span class="mi">2</span> <span class="o">*</span> <span class="n">pi</span><span class="p">,</span>
<span class="n">J</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="n">pi</span> <span class="o">*</span> <span class="n">rb</span><span class="o">^</span><span class="mi">4</span><span class="p">,</span>
<span class="n">I</span> <span class="o">=</span> <span class="mf">0.25</span> <span class="o">*</span> <span class="n">pi</span> <span class="o">*</span> <span class="n">rb</span><span class="o">^</span><span class="mi">4</span>
</pre></div>
</div>
<p>The beam radius (rb) is defined by the product of the minimum radius of the
bonded particles and the user-defined <em>radiusMultiplierBond</em>. With the default
<em>radiusMultiplierBond</em> = 1 the beam that is located between two particles is a
cylinder with radius equal to the minimum radius of the two particles. The
<em>radiusMultiplierBond</em> allows to shrink (or grow) the beam that represents the
bond between these two particles. Clearly, a thicker beam will make the system
more stiff, while a thinner beam will decrease the stiffness (for constant kn
and kt). The <em>normalBondStiffnessPerUnitArea</em> <em>kn</em> and
<em>tangentialBondStiffnessPerUnitArea</em> <em>kt</em> are also user-defined properties.</p>
<p>The stress flags (<em>tensionStress</em>, <em>compressionStress</em>, <em>shearStress</em>, <em>normalTorqueStress</em>, and
<em>shearTorqueStress</em>) allow to disable the calculation of the corresponding force/torque componant
at all. Consequently the disabled component does not contribute to the normal (sigma) or tangential
stress (tau), which are used for the stress-based breakage model (see below).</p>
<p>Unless other breakage models are enabled, the default one depends on an user-defined maximum bond
distance. If the bond is overstreched (distance > <em>maxDistanceBond</em>), it will break.</p>
<p><em>stressBreak</em> = on means a stress-based breakage model, where a bond breaks if a maximum stress is
reached. Therefore, two additional properties have to be defined, <em>maxSigmaBond</em> and <em>maxTauBond</em>.
Those maximum stresses are compared to the calculated bond stresses that are defined by:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">sigma</span> <span class="o">=</span> <span class="nb">abs</span><span class="p">(</span><span class="n">Fn</span><span class="p">)</span><span class="o">/</span><span class="n">A</span> <span class="o">+</span> <span class="nb">abs</span><span class="p">(</span><span class="n">Tt</span><span class="p">)</span> <span class="o">*</span> <span class="n">rb</span><span class="o">/</span><span class="n">I</span>
<span class="n">tau</span> <span class="o">=</span> <span class="nb">abs</span><span class="p">(</span><span class="n">Ft</span><span class="p">)</span><span class="o">/</span><span class="n">A</span> <span class="o">+</span> <span class="nb">abs</span><span class="p">(</span><span class="n">Tn</span><span class="p">)</span> <span class="o">*</span> <span class="n">rb</span><span class="o">/</span><span class="n">J</span>
</pre></div>
</div>
<p>Note that “normal” and “tangential” always refer to the coordinate system
local to the bond. Thus, these forces and torques need to be rotated along
with the bonded pair of particles to compute the forces and torques in the
global frame of reference.</p>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">LIGGGHTS(R)-INL will calculate a maximum bond length / contact distance
from values for maxDistanceBond or the max. sigma/tau values which is used for defining
the cut-off for the neighbor list build. For unrealistically high values, this might lead
to a neighbor list overflow.</p>
</div>
<p>In order to stabalize the system a kind of energy dissipation is required. By default the model uses the approach as
suggested by <a class="reference internal" href="#potyondycundall2004"><span>Potyondy and Cundall</span></a>. Thus for each degree of freedom a damping
force/torque is added that is defined by (normal force example)</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">Fd</span> <span class="o">=</span> <span class="o">-</span> <span class="n">alpha</span> <span class="o">*</span> <span class="nb">abs</span><span class="p">(</span><span class="n">Fn</span><span class="p">)</span> <span class="o">*</span> <span class="n">sign</span><span class="p">(</span><span class="n">v_n</span><span class="p">)</span>
</pre></div>
</div>
<p>where sign(v) provides the direction of motion (normal or tangential relative (angular) velocity).
The damping coefficient alpha can be set separatly for each degree of freedom by the user-defined
properties <em>dampingNormalForceBond</em>, <em>dampingTangentialForceBond</em>, <em>dampingNormalTorqueBond</em>, and
<em>dampingTangentialTorqueBond</em>. The model can be disabled by the <em>dampingBond</em>.</p>
<p>As the damping model above is sensitive to the sign of the normal velocity this model can
cause instabilities when a system under loading is considered. In this case the
<em>dampingBondSmooth</em> option can be enabled. This will modify the above equation to read</p>
<div class="highlight-python"><div class="highlight"><pre>Fd = - alpha * abs(Fn) * multiplier
multiplier = min(1, max(-1, v_n/max(minvel, dv)))
dv = |force_n * dt|
minvel = radius/dt * 0.001
</pre></div>
</div>
<p>which corresponds to a linear switching for velocities below a velocity threshold that
depends on the force intensity.</p>
<p>Additionally, a temporal dissipation model for forces and torques can be enabled by <em>dissipationBond</em>.
This increases numerical stabilty of the method. The dissipation is controlled by a
user-defined property for each force/torque (<em>dissipationNormalForceBond</em>, <em>dissipationTangentialForceBond</em>,
<em>dissipationNormalTorqueBond</em>, <em>dissipationTangentialTorqueBond</em>). These values have the unit of time (e.g.
seconds for si) and they define the relaxation time (63% of a response answer). In order to disable an
indiviual dissipation term set the corresponding coefficient <em>dissipation*Bond</em> to a high value (e.g. 1e20).
As an example the shear force is relaxed by</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">Ft</span> <span class="o">=</span> <span class="n">Ft</span> <span class="o">*</span> <span class="p">(</span> <span class="mi">1</span> <span class="o">-</span> <span class="nb">min</span><span class="p">(</span><span class="n">dt</span><span class="o">/</span><span class="n">dissipationTangentialForceBond</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="p">)</span>
</pre></div>
</div>
<p>By default bonds are created if two particles touch each other. The option <em>createBond</em> allows to change this
behaviour, thus bonds are created at a user-defined timestep (<em>tsCreateBond</em>, scalar property) for particles
within a user-defined range (<em>createDistanceBond</em>, perAtomTypePair property).</p>
<p>To define those material properties, it is mandatory to use multiple <a class="reference internal" href="fix_property.html"><em>fix property/global</em></a> commands:</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global radiusMultiplierBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
fix id all property/global normalBondStiffnessPerUnitArea peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
fix id all property/global tangentialBondStiffnessPerUnitArea peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
(value_ij=value for the coefficient of restitution between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
</pre></div>
</div>
<p>According to the choosen damping/dissipation model you need to add:</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global dampingNormalForceBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
fix id all property/global dampingTangentialForceBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
fix id all property/global dampingNormalTorqueBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
fix id all property/global dampingTangentialTorqueBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
</pre></div>
</div>
<p>or</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global dissipationNormalForceBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
fix id all property/global dissipationTangentialForceBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
fix id all property/global dissipationNormalTorqueBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
fix id all property/global dissipationTangentialTorqueBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
</pre></div>
</div>
<p>Dependent on selected flags (<em>stressBreak</em>, <em>temperatureBreak</em>) you need to add:</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global maxDistanceBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
</pre></div>
</div>
<p>or</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global maxSigmaBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
fix id all property/global maxTauBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
</pre></div>
</div>
<p>For <em>createBondAlways</em> = ‘on’ you need to add:</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global createDistanceBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
</pre></div>
</div>
<p>In this case bonds between two particles can be created each time step as long
as two particles are closer together than the defined <em>createDistanceBond</em>. If
bonds should be created only at one specific time step then <em>createBondAlways</em>
should be set to “off” and the specific time step needs to be defined as shown
below. Bonds will then be created if the two particles are within
<em>createDistanceBond</em> and if the time step is equal to <em>tsCreateBond</em>.</p>
<p>For <em>createBondAlways</em> = ‘off’ you need to add:</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global tsCreateBond scalar value .
fix id all property/global createDistanceBond peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
</pre></div>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">You have to use atom styles beginning from 1, e.g. 1,2,3,...</p>
</div>
<p>If <em>druckerPrager</em> = ‘on’ a Drucker-Prager model is used to determine the limiting
tangential stress. Its value is computed by</p>
<pre class="literal-block">
tau_max = <em>maxTauBond</em> + sigma tan(<em>frictionAngle</em>)
</pre>
<p>where sigma is the normal stress, <em>maxTauBond</em> takes the role of the cohesion strength and
<em>frictionAngle</em> is a peratomtypepair property which needs to be set as</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global frictionAngle peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
</pre></div>
</div>
<p>If <em>ratioTensionCompression</em> = ‘on’ the following property needs to be set:</p>
<div class="highlight-python"><div class="highlight"><pre>fix id all property/global ratioTensionCompression peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
</pre></div>
</div>
<p>This value, abbreviated with <em>rTC</em>, is then used to determine the maximum stress in normal
direction under tension as <em>rTC</em> * <em>maxSigmaBond</em>. This can be used to simulate materials
which exhibit different compressive and tensile strengths.</p>
</div>
<div class="section" id="restrictions">
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
<p>None.</p>
<p><strong>Coarse-graining information:</strong></p>
<p>Using <a class="reference internal" href="coarsegraining.html"><em>coarsegraining</em></a> in
combination with this command might lead to
different dynamics or system state and thus to
inconsistancies.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last"><a class="reference internal" href="coarsegraining.html"><em>Coarsegraining</em></a> may or
may not be available in LIGGGHTS(R)-INL.</p>
</div>
</div>
<div class="section" id="default">
<h2>Default<a class="headerlink" href="#default" title="Permalink to this headline">¶</a></h2>
<p><em>stressBreak</em> = off, <em>temperatureBreak</em> = off, <em>tensionStress</em> = on, <em>compressionStress</em> = on, <em>shearStress</em> = on,
<em>normalTorqueStress</em> = on, <em>shearTorqueStress</em> = on, <em>createBondAlways</em> = off, <em>dampingBond</em> = on, <em>dissipationBond</em> = off</p>
<hr class="docutils" />
<p id="potyondycundall2004"><strong>(Potyondy and Cundall, 2004)</strong> “A bonded-particle model for rock”, D. O. Potyondy and P. A. Cundall (2004),
International Journal of Rock Mechanics and Mining Sciences, 41(8), 1329ff.</p>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
© Copyright 2016, DCS Computing GmbH, JKU Linz and Sandia Corporation.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'v4.X',
LANGUAGE:'None',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: ''
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enableSticky();
});
</script>
</body>
</html>