240 const PrecisionModel build_precision_in = PrecisionModel::SINGLE);
245 double probe_radius_in,
double well_depth_in, VdwCombiningRule mixing_protocol_in,
247 const std::vector<double> &probe_sigma = {},
248 const std::vector<double> &probe_epsilon = {},
249 double clash_distance_in = default_mesh_elec_damping_range,
250 double clash_ratio_in = default_mesh_vdw_damping_ratio,
251 PrecisionModel prec = PrecisionModel::SINGLE,
253 HybridTargetLevel availability = HybridTargetLevel::HOST);
256 const AtomGraph &ag_in,
const CoordinateFrame &cf_in,
257 double probe_radius_in,
double well_depth_in, VdwCombiningRule mixing_protocol_in,
258 const MeshParameters &measurements_in = MeshParameters(),
259 const std::vector<double> &probe_sigma = {},
260 const std::vector<double> &probe_epsilon = {},
261 double clash_distance_in = default_mesh_elec_damping_range,
262 double clash_ratio_in = default_mesh_vdw_damping_ratio,
263 PrecisionModel prec = PrecisionModel::SINGLE,
264 const MeshKlManager &launcher = MeshKlManager(),
265 HybridTargetLevel availability = HybridTargetLevel::HOST);
267 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
268 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph *ag_in,
269 const CoordinateFrame *cf_in,
double buffer,
double spacing,
270 int scale_bits_in = default_globalpos_scale_bits,
271 const std::vector<double> &probe_sigma = {},
272 const std::vector<double> &probe_epsilon = {},
273 double clash_distance_in = default_mesh_elec_damping_range,
274 double clash_ratio_in = default_mesh_vdw_damping_ratio,
275 PrecisionModel prec = PrecisionModel::SINGLE,
276 const MeshKlManager &launcher = MeshKlManager(),
277 HybridTargetLevel availability = HybridTargetLevel::HOST);
279 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
280 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph &ag_in,
281 const CoordinateFrame &cf_in,
double buffer,
double spacing,
282 int scale_bits_in = default_globalpos_scale_bits,
283 const std::vector<double> &probe_sigma = {},
284 const std::vector<double> &probe_epsilon = {},
285 double clash_distance_in = default_mesh_elec_damping_range,
286 double clash_ratio_in = default_mesh_vdw_damping_ratio,
287 PrecisionModel prec = PrecisionModel::SINGLE,
288 const MeshKlManager &launcher = MeshKlManager(),
289 HybridTargetLevel availability = HybridTargetLevel::HOST);
291 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
292 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph *ag_in,
293 const CoordinateFrame *cf_in,
double buffer,
const std::vector<double> &spacing,
294 int scale_bits_in = default_globalpos_scale_bits,
295 const std::vector<double> &probe_sigma = {},
296 const std::vector<double> &probe_epsilon = {},
297 double clash_distance_in = default_mesh_elec_damping_range,
298 double clash_ratio_in = default_mesh_vdw_damping_ratio,
299 PrecisionModel prec = PrecisionModel::SINGLE,
300 const MeshKlManager &launcher = MeshKlManager(),
301 HybridTargetLevel availability = HybridTargetLevel::HOST);
303 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
304 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph &ag_in,
305 const CoordinateFrame &cf_in,
double buffer,
const std::vector<double> &spacing,
306 int scale_bits_in = default_globalpos_scale_bits,
307 const std::vector<double> &probe_sigma = {},
308 const std::vector<double> &probe_epsilon = {},
309 double clash_distance_in = default_mesh_elec_damping_range,
310 double clash_ratio_in = default_mesh_vdw_damping_ratio,
311 PrecisionModel prec = PrecisionModel::SINGLE,
312 const MeshKlManager &launcher = MeshKlManager(),
313 HybridTargetLevel availability = HybridTargetLevel::HOST);
315 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
316 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph *ag_in,
317 const CoordinateFrame *cf_in,
const std::vector<double> &mesh_bounds,
318 double spacing,
int scale_bits_in = default_globalpos_scale_bits,
319 const std::vector<double> &probe_sigma = {},
320 const std::vector<double> &probe_epsilon = {},
321 double clash_distance_in = default_mesh_elec_damping_range,
322 double clash_ratio_in = default_mesh_vdw_damping_ratio,
323 PrecisionModel prec = PrecisionModel::SINGLE,
324 const MeshKlManager &launcher = MeshKlManager(),
325 HybridTargetLevel availability = HybridTargetLevel::HOST);
327 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
328 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph &ag_in,
329 const CoordinateFrame &cf_in,
const std::vector<double> &mesh_bounds,
330 double spacing,
int scale_bits_in = default_globalpos_scale_bits,
331 const std::vector<double> &probe_sigma = {},
332 const std::vector<double> &probe_epsilon = {},
333 double clash_distance_in = default_mesh_elec_damping_range,
334 double clash_ratio_in = default_mesh_vdw_damping_ratio,
335 PrecisionModel prec = PrecisionModel::SINGLE,
336 const MeshKlManager &launcher = MeshKlManager(),
337 HybridTargetLevel availability = HybridTargetLevel::HOST);
339 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
340 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph *ag_in,
341 const CoordinateFrame *cf_in,
const std::vector<double> &mesh_bounds,
342 const std::vector<double> &spacing,
343 int scale_bits_in = default_globalpos_scale_bits,
344 const std::vector<double> &probe_sigma = {},
345 const std::vector<double> &probe_epsilon = {},
346 double clash_distance_in = default_mesh_elec_damping_range,
347 double clash_ratio_in = default_mesh_vdw_damping_ratio,
348 PrecisionModel prec = PrecisionModel::SINGLE,
349 const MeshKlManager &launcher = MeshKlManager(),
350 HybridTargetLevel availability = HybridTargetLevel::HOST);
352 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
353 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph &ag_in,
354 const CoordinateFrame &cf_in,
const std::vector<double> &mesh_bounds,
355 const std::vector<double> &spacing,
356 int scale_bits_in = default_globalpos_scale_bits,
357 const std::vector<double> &probe_sigma = {},
358 const std::vector<double> &probe_epsilon = {},
359 double clash_distance_in = default_mesh_elec_damping_range,
360 double clash_ratio_in = default_mesh_vdw_damping_ratio,
361 PrecisionModel prec = PrecisionModel::SINGLE,
362 const MeshKlManager &launcher = MeshKlManager(),
363 HybridTargetLevel availability = HybridTargetLevel::HOST);
366 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph *ag_in,
367 const CoordinateFrame *cf_in,
double buffer,
double spacing,
368 int scale_bits_in = default_globalpos_scale_bits,
369 double clash_distance_in = default_mesh_elec_damping_range,
370 PrecisionModel prec = PrecisionModel::SINGLE,
371 const MeshKlManager &launcher = MeshKlManager(),
372 HybridTargetLevel availability = HybridTargetLevel::HOST);
374 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph &ag_in,
375 const CoordinateFrame &cf_in,
double buffer,
double spacing,
376 int scale_bits_in = default_globalpos_scale_bits,
377 double clash_distance_in = default_mesh_elec_damping_range,
378 PrecisionModel prec = PrecisionModel::SINGLE,
379 const MeshKlManager &launcher = MeshKlManager(),
380 HybridTargetLevel availability = HybridTargetLevel::HOST);
382 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph *ag_in,
383 const CoordinateFrame *cf_in,
double buffer,
384 const std::vector<double> &spacing,
385 int scale_bits_in = default_globalpos_scale_bits,
386 double clash_distance_in = default_mesh_elec_damping_range,
387 PrecisionModel prec = PrecisionModel::SINGLE,
388 const MeshKlManager &launcher = MeshKlManager(),
389 HybridTargetLevel availability = HybridTargetLevel::HOST);
391 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph &ag_in,
392 const CoordinateFrame &cf_in,
double buffer,
393 const std::vector<double> &spacing,
394 int scale_bits_in = default_globalpos_scale_bits,
395 double clash_distance_in = default_mesh_elec_damping_range,
396 PrecisionModel prec = PrecisionModel::SINGLE,
397 const MeshKlManager &launcher = MeshKlManager(),
398 HybridTargetLevel availability = HybridTargetLevel::HOST);
400 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph *ag_in,
401 const CoordinateFrame *cf_in,
const std::vector<double> &mesh_bounds,
402 double spacing,
int scale_bits_in = default_globalpos_scale_bits,
403 double clash_distance_in = default_mesh_elec_damping_range,
404 PrecisionModel prec = PrecisionModel::SINGLE,
405 const MeshKlManager &launcher = MeshKlManager(),
406 HybridTargetLevel availability = HybridTargetLevel::HOST);
408 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph &ag_in,
409 const CoordinateFrame &cf_in,
const std::vector<double> &mesh_bounds,
410 double spacing,
int scale_bits_in = default_globalpos_scale_bits,
411 double clash_distance_in = default_mesh_elec_damping_range,
412 PrecisionModel prec = PrecisionModel::SINGLE,
413 const MeshKlManager &launcher = MeshKlManager(),
414 HybridTargetLevel availability = HybridTargetLevel::HOST);
416 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph *ag_in,
417 const CoordinateFrame *cf_in,
const std::vector<double> &mesh_bounds,
418 const std::vector<double> &spacing,
419 int scale_bits_in = default_globalpos_scale_bits,
420 double clash_distance_in = default_mesh_elec_damping_range,
421 PrecisionModel prec = PrecisionModel::SINGLE,
422 const MeshKlManager &launcher = MeshKlManager(),
423 HybridTargetLevel availability = HybridTargetLevel::HOST);
425 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph &ag_in,
426 const CoordinateFrame &cf_in,
const std::vector<double> &mesh_bounds,
427 const std::vector<double> &spacing,
428 int scale_bits_in = default_globalpos_scale_bits,
429 double clash_distance_in = default_mesh_elec_damping_range,
430 PrecisionModel prec = PrecisionModel::SINGLE,
431 const MeshKlManager &launcher = MeshKlManager(),
432 HybridTargetLevel availability = HybridTargetLevel::HOST);
435 BackgroundMesh(GridDetail kind_in,
double probe_radius_in, VdwCombiningRule mixing_protocol_in,
436 const AtomGraph *ag_in,
const CoordinateFrame *cf_in,
double buffer,
437 double spacing,
int scale_bits_in = default_globalpos_scale_bits,
438 const std::vector<double> &probe_sigma = {},
439 PrecisionModel prec = PrecisionModel::SINGLE,
440 const MeshKlManager &launcher = MeshKlManager(),
441 HybridTargetLevel availability = HybridTargetLevel::HOST);
443 BackgroundMesh(GridDetail kind_in,
double probe_radius_in, VdwCombiningRule mixing_protocol_in,
444 const AtomGraph &ag_in,
const CoordinateFrame &cf_in,
double buffer,
445 double spacing,
int scale_bits_in = default_globalpos_scale_bits,
446 const std::vector<double> &probe_sigma = {},
447 PrecisionModel prec = PrecisionModel::SINGLE,
448 const MeshKlManager &launcher = MeshKlManager(),
449 HybridTargetLevel availability = HybridTargetLevel::HOST);
451 BackgroundMesh(GridDetail kind_in,
double probe_radius_in, VdwCombiningRule mixing_protocol_in,
452 const AtomGraph *ag_in,
const CoordinateFrame *cf_in,
double buffer,
453 const std::vector<double> &spacing,
454 int scale_bits_in = default_globalpos_scale_bits,
455 const std::vector<double> &probe_sigma = {},
456 PrecisionModel prec = PrecisionModel::SINGLE,
457 const MeshKlManager &launcher = MeshKlManager(),
458 HybridTargetLevel availability = HybridTargetLevel::HOST);
460 BackgroundMesh(GridDetail kind_in,
double probe_radius_in, VdwCombiningRule mixing_protocol_in,
461 const AtomGraph &ag_in,
const CoordinateFrame &cf_in,
double buffer,
462 const std::vector<double> &spacing,
463 int scale_bits_in = default_globalpos_scale_bits,
464 const std::vector<double> &probe_sigma = {},
465 PrecisionModel prec = PrecisionModel::SINGLE,
466 const MeshKlManager &launcher = MeshKlManager(),
467 HybridTargetLevel availability = HybridTargetLevel::HOST);
469 BackgroundMesh(GridDetail kind_in,
double probe_radius_in, VdwCombiningRule mixing_protocol_in,
470 const AtomGraph *ag_in,
const CoordinateFrame *cf_in,
471 const std::vector<double> &mesh_bounds,
double spacing,
472 int scale_bits_in = default_globalpos_scale_bits,
473 const std::vector<double> &probe_sigma = {},
474 PrecisionModel prec = PrecisionModel::SINGLE,
475 const MeshKlManager &launcher = MeshKlManager(),
476 HybridTargetLevel availability = HybridTargetLevel::HOST);
478 BackgroundMesh(GridDetail kind_in,
double probe_radius_in, VdwCombiningRule mixing_protocol_in,
479 const AtomGraph &ag_in,
const CoordinateFrame &cf_in,
480 const std::vector<double> &mesh_bounds,
double spacing,
481 int scale_bits_in = default_globalpos_scale_bits,
482 const std::vector<double> &probe_sigma = {},
483 PrecisionModel prec = PrecisionModel::SINGLE,
484 const MeshKlManager &launcher = MeshKlManager(),
485 HybridTargetLevel availability = HybridTargetLevel::HOST);
487 BackgroundMesh(GridDetail kind_in,
double probe_radius_in, VdwCombiningRule mixing_protocol_in,
488 const AtomGraph *ag_in,
const CoordinateFrame *cf_in,
489 const std::vector<double> &mesh_bounds,
const std::vector<double> &spacing,
490 int scale_bits_in = default_globalpos_scale_bits,
491 const std::vector<double> &probe_sigma = {},
492 PrecisionModel prec = PrecisionModel::SINGLE,
493 const MeshKlManager &launcher = MeshKlManager(),
494 HybridTargetLevel availability = HybridTargetLevel::HOST);
496 BackgroundMesh(GridDetail kind_in,
double probe_radius_in, VdwCombiningRule mixing_protocol_in,
497 const AtomGraph &ag_in,
const CoordinateFrame &cf_in,
498 const std::vector<double> &mesh_bounds,
const std::vector<double> &spacing,
499 int scale_bits_in = default_globalpos_scale_bits,
500 const std::vector<double> &probe_sigma = {},
501 PrecisionModel prec = PrecisionModel::SINGLE,
502 const MeshKlManager &launcher = MeshKlManager(),
503 HybridTargetLevel availability = HybridTargetLevel::HOST);
506 template <
typename Tcoord>
508 const AtomGraph &ag_in,
const CoordinateSeries<Tcoord> &cs_in,
509 double probe_radius_in,
double well_depth_in, VdwCombiningRule mixing_protocol_in,
510 const MeshParameters &measurements_in = MeshParameters(),
511 int averaging_order = default_mesh_density_averaging_order,
512 const std::vector<double> &probe_sigma = {},
513 const std::vector<double> &probe_epsilon = {},
514 double clash_distance_in = default_mesh_elec_damping_range,
515 double clash_ratio_in = default_mesh_vdw_damping_ratio,
516 PrecisionModel prec = PrecisionModel::SINGLE,
517 const MeshKlManager &launcher = MeshKlManager(),
518 HybridTargetLevel availability = HybridTargetLevel::HOST);
520 template <
typename Tcoord>
521 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
522 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph &ag_in,
523 const CoordinateSeries<Tcoord> &cs_in,
double buffer,
double spacing,
524 int scale_bits_in = default_globalpos_scale_bits,
525 int averaging_order = default_mesh_density_averaging_order,
526 const std::vector<double> &probe_sigma = {},
527 const std::vector<double> &probe_epsilon = {},
528 double clash_distance_in = default_mesh_elec_damping_range,
529 double clash_ratio_in = default_mesh_vdw_damping_ratio,
530 PrecisionModel prec = PrecisionModel::SINGLE,
531 const MeshKlManager &launcher = MeshKlManager(),
532 HybridTargetLevel availability = HybridTargetLevel::HOST);
534 template <
typename Tcoord>
535 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
536 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph &ag_in,
537 const CoordinateSeries<Tcoord> &cs_in,
double buffer,
538 const std::vector<double> &spacing,
539 int scale_bits_in = default_globalpos_scale_bits,
540 int averaging_order = default_mesh_density_averaging_order,
541 const std::vector<double> &probe_sigma = {},
542 const std::vector<double> &probe_epsilon = {},
543 double clash_distance_in = default_mesh_elec_damping_range,
544 double clash_ratio_in = default_mesh_vdw_damping_ratio,
545 PrecisionModel prec = PrecisionModel::SINGLE,
546 const MeshKlManager &launcher = MeshKlManager(),
547 HybridTargetLevel availability = HybridTargetLevel::HOST);
549 template <
typename Tcoord>
550 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
551 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph &ag_in,
552 const CoordinateSeries<Tcoord> &cs_in,
const std::vector<double> &mesh_bounds,
553 double spacing,
int scale_bits_in = default_globalpos_scale_bits,
554 int averaging_order = default_mesh_density_averaging_order,
555 const std::vector<double> &probe_sigma = {},
556 const std::vector<double> &probe_epsilon = {},
557 double clash_distance_in = default_mesh_elec_damping_range,
558 double clash_ratio_in = default_mesh_vdw_damping_ratio,
559 PrecisionModel prec = PrecisionModel::SINGLE,
560 const MeshKlManager &launcher = MeshKlManager(),
561 HybridTargetLevel availability = HybridTargetLevel::HOST);
563 template <
typename Tcoord>
564 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
double probe_radius_in,
565 double well_depth_in, VdwCombiningRule mixing_protocol_in,
const AtomGraph &ag_in,
566 const CoordinateSeries<Tcoord> &cs_in,
const std::vector<double> &mesh_bounds,
567 const std::vector<double> &spacing,
568 int scale_bits_in = default_globalpos_scale_bits,
569 int averaging_order = default_mesh_density_averaging_order,
570 const std::vector<double> &probe_sigma = {},
571 const std::vector<double> &probe_epsilon = {},
572 double clash_distance_in = default_mesh_elec_damping_range,
573 double clash_ratio_in = default_mesh_vdw_damping_ratio,
574 PrecisionModel prec = PrecisionModel::SINGLE,
575 const MeshKlManager &launcher = MeshKlManager(),
576 HybridTargetLevel availability = HybridTargetLevel::HOST);
579 template <
typename Tcoord>
580 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph &ag_in,
581 const CoordinateSeries<Tcoord> &cs_in,
double buffer,
double spacing,
582 int scale_bits_in = default_globalpos_scale_bits,
583 double clash_distance_in = default_mesh_elec_damping_range,
584 PrecisionModel prec = PrecisionModel::SINGLE,
585 const MeshKlManager &launcher = MeshKlManager(),
586 HybridTargetLevel availability = HybridTargetLevel::HOST);
588 template <
typename Tcoord>
589 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph &ag_in,
590 const CoordinateSeries<Tcoord> &cs_in,
double buffer,
591 const std::vector<double> &spacing,
592 int scale_bits_in = default_globalpos_scale_bits,
593 double clash_distance_in = default_mesh_elec_damping_range,
594 PrecisionModel prec = PrecisionModel::SINGLE,
595 const MeshKlManager &launcher = MeshKlManager(),
596 HybridTargetLevel availability = HybridTargetLevel::HOST);
598 template <
typename Tcoord>
599 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph &ag_in,
600 const CoordinateSeries<Tcoord> &cs_in,
const std::vector<double> &mesh_bounds,
601 double spacing,
int scale_bits_in = default_globalpos_scale_bits,
602 double clash_distance_in = default_mesh_elec_damping_range,
603 PrecisionModel prec = PrecisionModel::SINGLE,
604 const MeshKlManager &launcher = MeshKlManager(),
605 HybridTargetLevel availability = HybridTargetLevel::HOST);
607 template <
typename Tcoord>
608 BackgroundMesh(GridDetail kind_in, NonbondedPotential field_in,
const AtomGraph &ag_in,
609 const CoordinateSeries<Tcoord> &cs_in,
const std::vector<double> &mesh_bounds,
610 const std::vector<double> &spacing,
611 int scale_bits_in = default_globalpos_scale_bits,
612 double clash_distance_in = default_mesh_elec_damping_range,
613 PrecisionModel prec = PrecisionModel::SINGLE,
614 const MeshKlManager &launcher = MeshKlManager(),
615 HybridTargetLevel availability = HybridTargetLevel::HOST);
618 template <
typename Tcoord>
619 BackgroundMesh(GridDetail kind_in,
double probe_radius_in,
const AtomGraph &ag_in,
620 const CoordinateSeries<Tcoord> &cs_in,
double buffer,
double spacing,
621 int scale_bits_in = default_globalpos_scale_bits,
622 int averaging_order = default_mesh_density_averaging_order,
623 const std::vector<double> &probe_sigma = {},
624 PrecisionModel prec = PrecisionModel::SINGLE,
625 const MeshKlManager &launcher = MeshKlManager(),
626 HybridTargetLevel availability = HybridTargetLevel::HOST);
628 template <
typename Tcoord>
629 BackgroundMesh(GridDetail kind_in,
double probe_radius_in,
const AtomGraph &ag_in,
630 const CoordinateSeries<Tcoord> &cs_in,
double buffer,
631 const std::vector<double> &spacing,
632 int scale_bits_in = default_globalpos_scale_bits,
633 int averaging_order = default_mesh_density_averaging_order,
634 const std::vector<double> &probe_sigma = {},
635 PrecisionModel prec = PrecisionModel::SINGLE,
636 const MeshKlManager &launcher = MeshKlManager(),
637 HybridTargetLevel availability = HybridTargetLevel::HOST);
639 template <
typename Tcoord>
640 BackgroundMesh(GridDetail kind_in,
double probe_radius_in,
const AtomGraph &ag_in,
641 const CoordinateSeries<Tcoord> &cs_in,
const std::vector<double> &mesh_bounds,
642 double spacing,
int scale_bits_in = default_globalpos_scale_bits,
643 int averaging_order = default_mesh_density_averaging_order,
644 const std::vector<double> &probe_sigma = {},
645 PrecisionModel prec = PrecisionModel::SINGLE,
646 const MeshKlManager &launcher = MeshKlManager(),
647 HybridTargetLevel availability = HybridTargetLevel::HOST);
649 template <
typename Tcoord>
650 BackgroundMesh(GridDetail kind_in,
double probe_radius_in,
const AtomGraph &ag_in,
651 const CoordinateSeries<Tcoord> &cs_in,
const std::vector<double> &mesh_bounds,
652 const std::vector<double> &spacing,
653 int scale_bits_in = default_globalpos_scale_bits,
654 int averaging_order = default_mesh_density_averaging_order,
655 const std::vector<double> &probe_sigma = {},
656 PrecisionModel prec = PrecisionModel::SINGLE,
657 const MeshKlManager &launcher = MeshKlManager(),
658 HybridTargetLevel availability = HybridTargetLevel::HOST);
696 template <
typename Tcoord>
772# ifdef STORMM_USE_CUDA
806# ifdef STORMM_USE_CUDA
827 void downloadFrame();
830 void uploadForceField();
833 void downloadForceField();
867 double spacing,
int scale_bits_in = -100);
870 const std::vector<double> &spacing,
int scale_bits_in = -100);
872 void setMeshParameters(
double padding,
double spacing,
int scale_bits_in = -100);
875 int scale_bits_in = -100);
878 int scale_bits_in = -100);
881 const std::vector<double> &spacing,
int scale_bits_in = -100);
919 const std::vector<double> &probe_sigma,
920 const std::vector<double> &probe_epsilon);
935 PrecisionModel prec = PrecisionModel::SINGLE,
936 HybridTargetLevel availability = HybridTargetLevel::HOST,
937 const std::vector<double> &probe_sigma = {},
938 const std::vector<double> &probe_epsilon = {});
944 MeshParameters measurements;
961 NonbondedPotential field;
974 double occlusion_penalty;
979 PrecisionModel build_precision;
982 MeshRulers tick_marks;
986 MeshForceField<T> nonbonded_model;
999 Hybrid<T> coefficients;
1003 int coefficient_scale_bits;
1005 double coefficient_scale;
1007 double inverse_coefficient_scale;
1015 MeshFoundation basis;
1043 void setNonbondedModel(VdwCombiningRule mixing_protocol_in,
double clash_ratio_in,
1044 double clash_distance_in,
const std::vector<double> &probe_sigma,
1045 const std::vector<double> &probe_epsilon);
1049 void validateMeshKind()
const;
1054 void validateScalingBits()
const;
1067 PrecisionModel prec = PrecisionModel::SINGLE,
1068 HybridTargetLevel availability = HybridTargetLevel::HOST,
1069 const std::vector<double> &probe_sigma = {});
1076 PrecisionModel prec = PrecisionModel::SINGLE,
1077 HybridTargetLevel availability = HybridTargetLevel::HOST,
1078 const std::vector<double> &probe_sigma = {});
1105 void computeCoefficients(
const std::vector<double> &u_grid,
1106 const std::vector<double> &dudx_grid,
1107 const std::vector<double> &dudy_grid,
1108 const std::vector<double> &dudz_grid,
1109 const std::vector<double> &dudxx_grid,
1110 const std::vector<double> &dudxy_grid,
1111 const std::vector<double> &dudxz_grid,
1112 const std::vector<double> &dudyy_grid,
1113 const std::vector<double> &dudyz_grid,
1114 const std::vector<double> &dudxxx_grid,
1115 const std::vector<double> &dudxxy_grid,
1116 const std::vector<double> &dudxxz_grid,
1117 const std::vector<double> &dudxyy_grid,
1118 const std::vector<double> &dudxyz_grid,
1119 const TricubicStencil &tc_weights);
1121 void computeCoefficients(
const std::vector<double> &u_grid,
1122 const std::vector<double> &dudx_grid,
1123 const std::vector<double> &dudy_grid,
1124 const std::vector<double> &dudz_grid,
1125 const std::vector<double> &dudxy_grid,
1126 const std::vector<double> &dudxz_grid,
1127 const std::vector<double> &dudyz_grid,
1128 const std::vector<double> &dudxyz_grid,
1129 const TricubicStencil &tc_weights);
1140 template <
typename Tcalc,
typename Tcalc2,
typename Tcalc3,
typename Tcalc4>
1141 void colorNonbondedField(
const NonbondedKit<Tcalc> &nbk,
const TricubicStencil &tc_weights,
1142 const std::vector<double> &sigma_table = {},
1143 const std::vector<double> &eps_table = {});
1153 void mapPureNonbondedPotential(
const MeshKlManager &launcher,
1154 PrecisionModel prec = PrecisionModel::SINGLE,
1155 HybridTargetLevel availability = HybridTargetLevel::HOST,
1156 const std::vector<double> &sigma_table = {},
1157 const std::vector<double> &eps_table = {});