| 366 |
|
return; |
| 367 |
|
|
| 368 |
|
} |
| 369 |
+ |
|
| 370 |
+ |
RealType GB::getSuggestedCutoffRadius(AtomType* at1, AtomType* at2) { |
| 371 |
+ |
if (!initialized_) initialize(); |
| 372 |
+ |
|
| 373 |
+ |
RealType cut = 0.0; |
| 374 |
+ |
|
| 375 |
+ |
if (at1->isGayBerne()) { |
| 376 |
+ |
GayBerneParam gb1 = getGayBerneParam(at1); |
| 377 |
+ |
RealType d1 = gb1.GB_d; |
| 378 |
+ |
RealType l1 = gb1.GB_l; |
| 379 |
+ |
// sigma is actually sqrt(2)*l for prolate ellipsoids |
| 380 |
+ |
cut = max(cut, 2.5 * sqrt(2.0) * max(d1, l1)); |
| 381 |
+ |
} else if (at1->isLennardJones()) { |
| 382 |
+ |
cut = max(cut, 2.5 * getLJSigma(at1)); |
| 383 |
+ |
} |
| 384 |
+ |
|
| 385 |
+ |
if (at2->isGayBerne()) { |
| 386 |
+ |
GayBerneParam gb2 = getGayBerneParam(at2); |
| 387 |
+ |
RealType d2 = gb2.GB_d; |
| 388 |
+ |
RealType l2 = gb2.GB_l; |
| 389 |
+ |
cut = max(cut, 2.5 * sqrt(2.0) * max(d2, l2)); |
| 390 |
+ |
} else if (at1->isLennardJones()) { |
| 391 |
+ |
cut = max(cut, 2.5 * getLJSigma(at2)); |
| 392 |
+ |
} |
| 393 |
+ |
|
| 394 |
+ |
return cut; |
| 395 |
+ |
} |
| 396 |
|
} |
| 397 |
|
|