Tinker9 70bd052 (Thu Nov 9 12:11:35 2023 -0800)
Loading...
Searching...
No Matches
box.h
1#pragma once
2#include "math/realn.h"
3#include "tool/rcman.h"
4
5namespace tinker {
8
10enum class BoxShape
11{
12 UNBOUND,
13 ORTHO,
14 MONO,
15 TRI,
16 OCT
17};
18
59struct Box
60{
64};
65
68void boxExtent(double newExtent);
70void boxSetCurrent(const Box& p);
74void boxSetTinker(const Box& p);
75
79void boxCopyin();
80
82void boxLattice(Box& p, BoxShape sh, //
83 double a, double b, double c, //
84 double alphaDeg, double betaDeg, double gammaDeg);
85
91
92//====================================================================//
93// //
94// Global Variables //
95// //
96//====================================================================//
97
105
106#define TINKER_IMAGE_LVEC_PARAMS real3 lvec1, real3 lvec2, real3 lvec3
107#define TINKER_IMAGE_LVEC_ARGS lvec1, lvec2, lvec3
108#define TINKER_IMAGE_RECIP_PARAMS real3 recipa, real3 recipb, real3 recipc
109#define TINKER_IMAGE_RECIP_ARGS recipa, recipb, recipc
110#define TINKER_IMAGE_PARAMS BoxShape box_shape, TINKER_IMAGE_LVEC_PARAMS, TINKER_IMAGE_RECIP_PARAMS
111#define TINKER_IMAGE_ARGS box_shape, TINKER_IMAGE_LVEC_ARGS, TINKER_IMAGE_RECIP_ARGS
112
114
116}
Definition: acc/realndef.h:48
real3 lvec2
Definition: box.h:62
BoxShape box_shape
Definition: box.h:61
real3 recipb
Definition: box.h:63
real3 recipc
Definition: box.h:63
real3 recipa
Definition: box.h:63
real3 lvec1
Definition: box.h:62
real3 lvec3
Definition: box.h:62
real boxVolume()
void boxGetCurrent(Box &p)
Copies the current PBC box to the output variable.
void boxCopyin()
real3 recipc
void boxDataP1(RcOp)
Internal function used in the setup.
void boxSetCurrentRecip()
real3 recipa
Box * trajbox
Host pointer to the PBC boxes of a trajectory.
real3 recipb
real3 lvec1
real3 lvec3
void boxData(RcOp)
Sets up box data on device.
void boxExtent(double newExtent)
real3 lvec2
void boxSetCurrent(const Box &p)
Sets the box by the input and updates the box on device.
BoxShape
Shapes of the periodic box.
Definition: box.h:11
void boxSetTinker(const Box &p)
Updates the related PBC modules of Tinker by p.
BoxShape box_shape
void boxLattice(Box &p, BoxShape sh, double a, double b, double c, double alphaDeg, double betaDeg, double gammaDeg)
Sets up the internal PBC data. Similar to Tinker lattice subroutine.
@ TRI
triclinic
@ OCT
truncated octahedron
@ ORTHO
orthorgonal
@ MONO
monoclinic
Definition: box.h:60
#define TINKER_EXTERN
Definition: macro.h:108
float real
Definition: precision.h:80
ResourceOperation
Definition: rcman.h:46
Definition: testrt.h:9