| @@ -23,11 +23,8 @@ from ...common import dtype as mstype | |||||
| class BondForce(PrimitiveWithInfer): | class BondForce(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| BondForce: | |||||
| Calculate the force exerted by the simple harmonic bond on the | |||||
| corresponding atoms. Assume the number of harmonic bonds is M and | |||||
| the number of atoms is N. | |||||
| Calculate the force exerted by the simple harmonic bond on the corresponding atoms. | |||||
| Assume the number of harmonic bonds is M and the number of atoms is N. | |||||
| .. math:: | .. math:: | ||||
| @@ -90,8 +87,6 @@ class BondForce(PrimitiveWithInfer): | |||||
| class BondEnergy(PrimitiveWithInfer): | class BondEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| BondEnergy: | |||||
| Calculate the harmonic potential energy between each bonded atom pair. | Calculate the harmonic potential energy between each bonded atom pair. | ||||
| Assume our system has N atoms and M harmonic bonds. | Assume our system has N atoms and M harmonic bonds. | ||||
| @@ -101,15 +96,17 @@ class BondEnergy(PrimitiveWithInfer): | |||||
| E = k*(|dr| - r_0)^2 | E = k*(|dr| - r_0)^2 | ||||
| Args: | Args: | ||||
| Same as operator BondForce(). | |||||
| atom_numbers(int32): the number of atoms N. | |||||
| bond_numbers(int32): the number of harmonic bonds M. | |||||
| Inputs: | Inputs: | ||||
| Same as operator BondForce(). | |||||
| .. math:: | |||||
| dr = (x_1-x_2, y_1-y_2, z_1-z_2) | |||||
| E = k*(|dr| - r_0)^2 | |||||
| - **uint_crd_f** (Tensor, uint32 ) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **scaler_f** (Tensor, float32) - [3,], the 3-D scale factor (x, y, z), | |||||
| between the real space float coordinates and the unsigned int coordinates. | |||||
| - **atom_a** (Tensor, int32) - [M,], the first atom index of each bond. | |||||
| - **atom_b** (Tensor, int32) - [M,], the second atom index of each bond. | |||||
| - **bond_k** (Tensor, float32) - [M,], the force constant of each bond. | |||||
| - **bond_r0** (Tensor, float32) - [M,], the equlibrium length of each bond. | |||||
| Outputs: | Outputs: | ||||
| - **bond_ene** (Tensor, float32) - [M,], the harmonic potential energy for each bond. | - **bond_ene** (Tensor, float32) - [M,], the harmonic potential energy for each bond. | ||||
| @@ -155,18 +152,23 @@ class BondEnergy(PrimitiveWithInfer): | |||||
| class BondAtomEnergy(PrimitiveWithInfer): | class BondAtomEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| BondAtomEnergy: | |||||
| Add the potential energy caused by simple harmonic bonds to the total | Add the potential energy caused by simple harmonic bonds to the total | ||||
| potential energy of each atom. | potential energy of each atom. | ||||
| The calculation formula is the same as operator BondEnergy(). | The calculation formula is the same as operator BondEnergy(). | ||||
| Args: | Args: | ||||
| Same as operator BondForce(). | |||||
| atom_numbers(int32): the number of atoms N. | |||||
| bond_numbers(int32): the number of harmonic bonds M. | |||||
| Inputs: | Inputs: | ||||
| Same as operator BondForce(). | |||||
| - **uint_crd_f** (Tensor, uint32 ) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **scaler_f** (Tensor, float32) - [3,], the 3-D scale factor (x, y, z), | |||||
| between the real space float coordinates and the unsigned int coordinates. | |||||
| - **atom_a** (Tensor, int32) - [M,], the first atom index of each bond. | |||||
| - **atom_b** (Tensor, int32) - [M,], the second atom index of each bond. | |||||
| - **bond_k** (Tensor, float32) - [M,], the force constant of each bond. | |||||
| - **bond_r0** (Tensor, float32) - [M,], the equlibrium length of each bond. | |||||
| Outputs: | Outputs: | ||||
| - **atom_ene** (Tensor, float32) - [N,], the accumulated potential energy for each atom. | - **atom_ene** (Tensor, float32) - [N,], the accumulated potential energy for each atom. | ||||
| @@ -211,17 +213,22 @@ class BondAtomEnergy(PrimitiveWithInfer): | |||||
| class BondForceWithAtomEnergy(PrimitiveWithInfer): | class BondForceWithAtomEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| BondForceWithAtomEnergy: | |||||
| Calculate bond force and harmonic potential energy together. | Calculate bond force and harmonic potential energy together. | ||||
| The calculation formula is the same as operator BondForce() and BondEnergy(). | The calculation formula is the same as operator BondForce() and BondEnergy(). | ||||
| Args: | Args: | ||||
| Same as operator BondForce(). | |||||
| atom_numbers(int32): the number of atoms N. | |||||
| bond_numbers(int32): the number of harmonic bonds M. | |||||
| Inputs: | Inputs: | ||||
| Same as operator BondForce(). | |||||
| - **uint_crd_f** (Tensor, uint32 ) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **scaler_f** (Tensor, float32) - [3,], the 3-D scale factor (x, y, z), | |||||
| between the real space float coordinates and the unsigned int coordinates. | |||||
| - **atom_a** (Tensor, int32) - [M,], the first atom index of each bond. | |||||
| - **atom_b** (Tensor, int32) - [M,], the second atom index of each bond. | |||||
| - **bond_k** (Tensor, float32) - [M,], the force constant of each bond. | |||||
| - **bond_r0** (Tensor, float32) - [M,], the equlibrium length of each bond. | |||||
| Outputs: | Outputs: | ||||
| - **frc_f** (Tensor, float32) - [N, 3], same as operator BondForce(). | - **frc_f** (Tensor, float32) - [N, 3], same as operator BondForce(). | ||||
| @@ -270,8 +277,6 @@ class BondForceWithAtomEnergy(PrimitiveWithInfer): | |||||
| class BondForceWithAtomVirial(PrimitiveWithInfer): | class BondForceWithAtomVirial(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| BondForceWithAtomVirial: | |||||
| Calculate bond force and the virial coefficient caused by simple harmonic | Calculate bond force and the virial coefficient caused by simple harmonic | ||||
| bond for each atom together. | bond for each atom together. | ||||
| @@ -284,10 +289,17 @@ class BondForceWithAtomVirial(PrimitiveWithInfer): | |||||
| virial = |dr|*(|dr| - r_0)*k | virial = |dr|*(|dr| - r_0)*k | ||||
| Args: | Args: | ||||
| Same as operator BondForce(). | |||||
| atom_numbers(int32): the number of atoms N. | |||||
| bond_numbers(int32): the number of harmonic bonds M. | |||||
| Inputs: | Inputs: | ||||
| Same as operator BondForce() | |||||
| - **uint_crd_f** (Tensor, uint32 ) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **scaler_f** (Tensor, float32) - [3,], the 3-D scale factor (x, y, z), | |||||
| between the real space float coordinates and the unsigned int coordinates. | |||||
| - **atom_a** (Tensor, int32) - [M,], the first atom index of each bond. | |||||
| - **atom_b** (Tensor, int32) - [M,], the second atom index of each bond. | |||||
| - **bond_k** (Tensor, float32) - [M,], the force constant of each bond. | |||||
| - **bond_r0** (Tensor, float32) - [M,], the equlibrium length of each bond. | |||||
| Outputs: | Outputs: | ||||
| - **frc_f** (Tensor, float32) - [N, 3], same as operator BondForce(). | - **frc_f** (Tensor, float32) - [N, 3], same as operator BondForce(). | ||||
| @@ -336,8 +348,6 @@ class BondForceWithAtomVirial(PrimitiveWithInfer): | |||||
| class DihedralForce(PrimitiveWithInfer): | class DihedralForce(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| DihedralForce: | |||||
| Calculate the force exerted by the dihedral term which made of 4-atoms | Calculate the force exerted by the dihedral term which made of 4-atoms | ||||
| on the corresponding atoms. Assume the number of dihedral terms is M and | on the corresponding atoms. Assume the number of dihedral terms is M and | ||||
| the number of atoms is N. | the number of atoms is N. | ||||
| @@ -438,8 +448,6 @@ class DihedralForce(PrimitiveWithInfer): | |||||
| class DihedralEnergy(PrimitiveWithInfer): | class DihedralEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| DihedralEnergy: | |||||
| Calculate the potential energy caused by dihedral terms for each 4-atom pair. | Calculate the potential energy caused by dihedral terms for each 4-atom pair. | ||||
| Assume our system has N atoms and M dihedral terms. | Assume our system has N atoms and M dihedral terms. | ||||
| @@ -448,10 +456,24 @@ class DihedralEnergy(PrimitiveWithInfer): | |||||
| E = k(1 + cos(n*phi - phi_0)) | E = k(1 + cos(n*phi - phi_0)) | ||||
| Args: | Args: | ||||
| Same as operator DihedralForce(). | |||||
| dihedral_numbers(int32): the number of dihedral terms M. | |||||
| Inputs: | Inputs: | ||||
| Same as operator DihedralForce(). | |||||
| - **dihedral_numbers** (int32) - the number of dihedral terms M. | |||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinates | |||||
| value of each atom. | |||||
| - **scaler_f** (Tensor, float32) - [3,], the 3-D scale factor between | |||||
| the real space float coordinates and the unsigned int coordinates. | |||||
| - **atom_a** (Tensor, int32) - [M,], the 1st atom index of each dihedral. | |||||
| - **atom_b** (Tensor, int32) - [M,], the 2nd atom index of each dihedral. | |||||
| - **atom_c** (Tensor, int32) - [M,], the 3rd atom index of each dihedral. | |||||
| - **atom_d** (Tensor, int32) - [M,], the 4th atom index of each dihedral. | |||||
| 4 atoms are connected in the form a-b-c-d. | |||||
| - **ipn** (Tensor, int32) - [M,], the period of dihedral angle of each dihedral. | |||||
| - **pk** (Tensor, float32) - [M,], the force constant of each dihedral. | |||||
| - **gamc** (Tensor, float32) - [M,], k*cos(phi_0) of each dihedral. | |||||
| - **gams** (Tensor, float32) - [M,], k*sin(phi_0) of each dihedral. | |||||
| - **pn** (Tensor, float32) - [M,], the floating point form of ipn. | |||||
| Outputs: | Outputs: | ||||
| - **ene** (Tensor, float32) - [M,], the potential energy for each | - **ene** (Tensor, float32) - [M,], the potential energy for each | ||||
| @@ -506,18 +528,30 @@ class DihedralEnergy(PrimitiveWithInfer): | |||||
| class DihedralAtomEnergy(PrimitiveWithInfer): | class DihedralAtomEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| DihedralAtomEnergy: | |||||
| Add the potential energy caused by dihedral terms to the total potential | Add the potential energy caused by dihedral terms to the total potential | ||||
| energy of each atom. | energy of each atom. | ||||
| The calculation formula is the same as operator DihedralEnergy(). | The calculation formula is the same as operator DihedralEnergy(). | ||||
| Args: | Args: | ||||
| Same as operator DihedralEnergy(). | |||||
| dihedral_numbers(int32): the number of dihedral terms M. | |||||
| Inputs: | Inputs: | ||||
| Same as operator DihedralEnergy(). | |||||
| - **dihedral_numbers** (int32) - the number of dihedral terms M. | |||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinates | |||||
| value of each atom. | |||||
| - **scaler_f** (Tensor, float32) - [3,], the 3-D scale factor between | |||||
| the real space float coordinates and the unsigned int coordinates. | |||||
| - **atom_a** (Tensor, int32) - [M,], the 1st atom index of each dihedral. | |||||
| - **atom_b** (Tensor, int32) - [M,], the 2nd atom index of each dihedral. | |||||
| - **atom_c** (Tensor, int32) - [M,], the 3rd atom index of each dihedral. | |||||
| - **atom_d** (Tensor, int32) - [M,], the 4th atom index of each dihedral. | |||||
| 4 atoms are connected in the form a-b-c-d. | |||||
| - **ipn** (Tensor, int32) - [M,], the period of dihedral angle of each dihedral. | |||||
| - **pk** (Tensor, float32) - [M,], the force constant of each dihedral. | |||||
| - **gamc** (Tensor, float32) - [M,], k*cos(phi_0) of each dihedral. | |||||
| - **gams** (Tensor, float32) - [M,], k*sin(phi_0) of each dihedral. | |||||
| - **pn** (Tensor, float32) - [M,], the floating point form of ipn. | |||||
| Outputs: | Outputs: | ||||
| - **ene** (Tensor, float32) - [N,], the accumulated potential | - **ene** (Tensor, float32) - [N,], the accumulated potential | ||||
| @@ -573,17 +607,29 @@ class DihedralAtomEnergy(PrimitiveWithInfer): | |||||
| class DihedralForceWithAtomEnergy(PrimitiveWithInfer): | class DihedralForceWithAtomEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| DihedralForceWithAtomEnergy: | |||||
| Calculate dihedral force and potential energy together. | Calculate dihedral force and potential energy together. | ||||
| The calculation formula is the same as operator DihedralForce() and DihedralEnergy(). | The calculation formula is the same as operator DihedralForce() and DihedralEnergy(). | ||||
| Args: | Args: | ||||
| Same as operator DihedralForce(). | |||||
| dihedral_numbers(int32): the number of dihedral terms M. | |||||
| Inputs: | Inputs: | ||||
| Same as operator DihedralForce(). | |||||
| - **dihedral_numbers** (int32) - the number of dihedral terms M. | |||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinates | |||||
| value of each atom. | |||||
| - **scaler_f** (Tensor, float32) - [3,], the 3-D scale factor between | |||||
| the real space float coordinates and the unsigned int coordinates. | |||||
| - **atom_a** (Tensor, int32) - [M,], the 1st atom index of each dihedral. | |||||
| - **atom_b** (Tensor, int32) - [M,], the 2nd atom index of each dihedral. | |||||
| - **atom_c** (Tensor, int32) - [M,], the 3rd atom index of each dihedral. | |||||
| - **atom_d** (Tensor, int32) - [M,], the 4th atom index of each dihedral. | |||||
| 4 atoms are connected in the form a-b-c-d. | |||||
| - **ipn** (Tensor, int32) - [M,], the period of dihedral angle of each dihedral. | |||||
| - **pk** (Tensor, float32) - [M,], the force constant of each dihedral. | |||||
| - **gamc** (Tensor, float32) - [M,], k*cos(phi_0) of each dihedral. | |||||
| - **gams** (Tensor, float32) - [M,], k*sin(phi_0) of each dihedral. | |||||
| - **pn** (Tensor, float32) - [M,], the floating point form of ipn. | |||||
| Outputs: | Outputs: | ||||
| - **frc_f** (Tensor, float32) - [N, 3], same as operator DihedralForce(). | - **frc_f** (Tensor, float32) - [N, 3], same as operator DihedralForce(). | ||||
| @@ -639,8 +685,6 @@ class DihedralForceWithAtomEnergy(PrimitiveWithInfer): | |||||
| class AngleForce(PrimitiveWithInfer): | class AngleForce(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| AngleForce: | |||||
| Calculate the force exerted by angles made of 3 atoms on the | Calculate the force exerted by angles made of 3 atoms on the | ||||
| corresponding atoms. Assume the number of angles is M and the | corresponding atoms. Assume the number of angles is M and the | ||||
| number of atoms is N. | number of atoms is N. | ||||
| @@ -712,8 +756,6 @@ class AngleForce(PrimitiveWithInfer): | |||||
| class AngleEnergy(PrimitiveWithInfer): | class AngleEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| AngleEnergy: | |||||
| Calculate the energy caused by 3-atoms angle term. | Calculate the energy caused by 3-atoms angle term. | ||||
| .. math:: | .. math:: | ||||
| @@ -724,10 +766,17 @@ class AngleEnergy(PrimitiveWithInfer): | |||||
| E = k*(theta - theta_0)^2 | E = k*(theta - theta_0)^2 | ||||
| Args: | Args: | ||||
| Same as operator AngleForce(). | |||||
| angle_numbers(int32): the number of angles M. | |||||
| Inputs: | Inputs: | ||||
| Same as operator AngleForce(). | |||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **scaler_f** (Tensor, float32) - [3,], the 3-D scale factor between | |||||
| the real space float coordinates and the unsigned int coordinates. | |||||
| - **atom_a** (Tensor, int32) - [M,], the 1st atom index of each angle. | |||||
| - **atom_b** (Tensor, int32) - [M,], the 2nd and the central atom index of each angle. | |||||
| - **atom_c** (Tensor, int32) - [M,], the 3rd atom index of each angle. | |||||
| - **angle_k** (Tensor, float32) - [M,], the force constant for each angle. | |||||
| - **angle_theta0** (Tensor, float32) - [M,], the equilibrium position value for each angle. | |||||
| Outputs: | Outputs: | ||||
| - **ene** (Tensor, float32) - [M,], the potential energy for each angle term. | - **ene** (Tensor, float32) - [M,], the potential energy for each angle term. | ||||
| @@ -772,18 +821,23 @@ class AngleEnergy(PrimitiveWithInfer): | |||||
| class AngleAtomEnergy(PrimitiveWithInfer): | class AngleAtomEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| AngleAtomEnergy: | |||||
| Add the potential energy caused by angle terms to the total potential | Add the potential energy caused by angle terms to the total potential | ||||
| energy of each atom. | energy of each atom. | ||||
| The calculation formula is the same as operator AngleEnergy(). | The calculation formula is the same as operator AngleEnergy(). | ||||
| Args: | Args: | ||||
| Same as operator AngleForce(). | |||||
| angle_numbers(int32): the number of angles M. | |||||
| Inputs: | Inputs: | ||||
| Same as operator AngleForce(). | |||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **scaler_f** (Tensor, float32) - [3,], the 3-D scale factor between | |||||
| the real space float coordinates and the unsigned int coordinates. | |||||
| - **atom_a** (Tensor, int32) - [M,], the 1st atom index of each angle. | |||||
| - **atom_b** (Tensor, int32) - [M,], the 2nd and the central atom index of each angle. | |||||
| - **atom_c** (Tensor, int32) - [M,], the 3rd atom index of each angle. | |||||
| - **angle_k** (Tensor, float32) - [M,], the force constant for each angle. | |||||
| - **angle_theta0** (Tensor, float32) - [M,], the equilibrium position value for each angle. | |||||
| Outputs: | Outputs: | ||||
| - **ene** (Tensor, float32) - [N,], the accumulated potential energy for each atom. | - **ene** (Tensor, float32) - [N,], the accumulated potential energy for each atom. | ||||
| @@ -829,17 +883,22 @@ class AngleAtomEnergy(PrimitiveWithInfer): | |||||
| class AngleForceWithAtomEnergy(PrimitiveWithInfer): | class AngleForceWithAtomEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| AngleForceWithAtomEnergy: | |||||
| Calculate angle force and potential energy together. | Calculate angle force and potential energy together. | ||||
| The calculation formula is the same as operator AngleForce() and AngleEnergy(). | The calculation formula is the same as operator AngleForce() and AngleEnergy(). | ||||
| Args: | Args: | ||||
| Same as operator AngleForce(). | |||||
| angle_numbers(int32): the number of angles M. | |||||
| Inputs: | Inputs: | ||||
| Same as operator AngleForce(). | |||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **scaler_f** (Tensor, float32) - [3,], the 3-D scale factor between | |||||
| the real space float coordinates and the unsigned int coordinates. | |||||
| - **atom_a** (Tensor, int32) - [M,], the 1st atom index of each angle. | |||||
| - **atom_b** (Tensor, int32) - [M,], the 2nd and the central atom index of each angle. | |||||
| - **atom_c** (Tensor, int32) - [M,], the 3rd atom index of each angle. | |||||
| - **angle_k** (Tensor, float32) - [M,], the force constant for each angle. | |||||
| - **angle_theta0** (Tensor, float32) - [M,], the equilibrium position value for each angle. | |||||
| Outputs: | Outputs: | ||||
| - **frc_f** (Tensor, float32) - [N, 3], same as operator AngleForce(). | - **frc_f** (Tensor, float32) - [N, 3], same as operator AngleForce(). | ||||
| @@ -886,11 +945,10 @@ class AngleForceWithAtomEnergy(PrimitiveWithInfer): | |||||
| class Dihedral14LJForce(PrimitiveWithInfer): | class Dihedral14LJForce(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| Dihedral14LJForce: | |||||
| Calculate the Lennard-Jones part of 1,4 dihedral force correction | |||||
| for each necessary dihedral terms on the corresponding atoms. | |||||
| Calculate the Lennard-Jones part of 1,4 dihedral force correction for | |||||
| each necessary dihedral terms on the corresponding atoms. Assume the | |||||
| number of necessary dihedral 1,4 terms is M, the number of atoms is N, | |||||
| Assume the number of necessary dihedral 1,4 terms is M, the number of atoms is N, | |||||
| and the number of Lennard-Jones types for all atoms is P, which means | and the number of Lennard-Jones types for all atoms is P, which means | ||||
| there will be Q = P*(P+1)/2 types of possible Lennard-Jones interactions | there will be Q = P*(P+1)/2 types of possible Lennard-Jones interactions | ||||
| for all kinds of atom pairs. | for all kinds of atom pairs. | ||||
| @@ -901,7 +959,7 @@ class Dihedral14LJForce(PrimitiveWithInfer): | |||||
| F = k*(-12*A/|dr|^{14} + 6*B/|dr|^{8})*dr | F = k*(-12*A/|dr|^{14} + 6*B/|dr|^{8})*dr | ||||
| Args: | Args: | ||||
| dihedral_14_numbers (int32): the number of necessary dihedral 1,4 terms M. | |||||
| nb14_numbers (int32): the number of necessary dihedral 1,4 terms M. | |||||
| atom_numbers (int32): the number of atoms N. | atom_numbers (int32): the number of atoms N. | ||||
| Inputs: | Inputs: | ||||
| @@ -958,8 +1016,6 @@ class Dihedral14LJForce(PrimitiveWithInfer): | |||||
| class Dihedral14LJEnergy(PrimitiveWithInfer): | class Dihedral14LJEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| Dihedral14LJEnergy: | |||||
| Calculate the Lennard-Jones part of 1,4 dihedral energy correction for | Calculate the Lennard-Jones part of 1,4 dihedral energy correction for | ||||
| each necessary dihedral terms on the corresponding atoms. | each necessary dihedral terms on the corresponding atoms. | ||||
| @@ -969,10 +1025,20 @@ class Dihedral14LJEnergy(PrimitiveWithInfer): | |||||
| E = k*(A/|dr|^{12} - B/|dr|^{6}) | E = k*(A/|dr|^{12} - B/|dr|^{6}) | ||||
| Args: | Args: | ||||
| Same as operator Dihedral14LJForce(). | |||||
| nb14_numbers (int32): the number of necessary dihedral 1,4 terms M. | |||||
| atom_numbers (int32): the number of atoms N. | |||||
| Inputs: | Inputs: | ||||
| Same as operator Dihedral14LJForce(). | |||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **LJ_type** (Tensor, int32) - [N,], the Lennard-Jones type of each atom. | |||||
| - **charge** (Tensor, float32) - [N,], the charge of each atom. | |||||
| - **boxlength_f** (Tensor, float32) - [3,], the length of molecular simulation box in 3 dimensions. | |||||
| - **a_14** (Tensor, int32) - [M,], the first atom index of each dihedral 1,4 term. | |||||
| - **b_14** (Tensor, int32) - [M,], the second atom index of each dihedral 1,4 term. | |||||
| - **lj_scale_factor** (Tensor, float32) - [M,], the scale factor for the | |||||
| Lennard-Jones part of force correction of each dihedral 1,4 term. | |||||
| - **LJ_type_A** (Tensor, float32) - [Q,], the A parameter in Lennard-Jones scheme of each atom pair type. | |||||
| - **LJ_type_B** (Tensor, float32) - [Q,], the B parameter in Lennard-Jones shceme of each atom pair type. | |||||
| Outputs: | Outputs: | ||||
| - **ene** (Tensor, float32) - [M,], the Lennard-Jones potential | - **ene** (Tensor, float32) - [M,], the Lennard-Jones potential | ||||
| @@ -1017,8 +1083,6 @@ class Dihedral14LJEnergy(PrimitiveWithInfer): | |||||
| class Dihedral14LJForceWithDirectCF(PrimitiveWithInfer): | class Dihedral14LJForceWithDirectCF(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| Dihedral14LJForceWithDirectCF: | |||||
| Calculate the Lennard-Jones part and the Coulomb part of force correction | Calculate the Lennard-Jones part and the Coulomb part of force correction | ||||
| for each necessary dihedral 1,4 terms. | for each necessary dihedral 1,4 terms. | ||||
| @@ -1031,13 +1095,22 @@ class Dihedral14LJForceWithDirectCF(PrimitiveWithInfer): | |||||
| F = -k*q_a*q_b/|r|^3*dr | F = -k*q_a*q_b/|r|^3*dr | ||||
| Args: | Args: | ||||
| Same as operator Dihedral14LJForce(). | |||||
| nb14_numbers (int32): the number of necessary dihedral 1,4 terms M. | |||||
| atom_numbers (int32): the number of atoms N. | |||||
| Inputs: | Inputs: | ||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **LJ_type** (Tensor, int32) - [N,], the Lennard-Jones type of each atom. | |||||
| - **charge** (Tensor, float32) - [N,], the charge of each atom. | |||||
| - **boxlength_f** (Tensor, float32) - [3,], the length of molecular simulation box in 3 dimensions. | |||||
| - **a_14** (Tensor, int32) - [M,], the first atom index of each dihedral 1,4 term. | |||||
| - **b_14** (Tensor, int32) - [M,], the second atom index of each dihedral 1,4 term. | |||||
| - **lj_scale_factor** (Tensor, float32) - [M,], the scale factor for the | |||||
| Lennard-Jones part of force correction of each dihedral 1,4 term. | |||||
| - **cf_scale_factor** (Tensor, float) - [M,], the scale factor for the | - **cf_scale_factor** (Tensor, float) - [M,], the scale factor for the | ||||
| Coulomb part of force correction for each dihedral 1,4 terms. | Coulomb part of force correction for each dihedral 1,4 terms. | ||||
| The rest of the inputs is the same as operator Dihedral14LJForce(). | |||||
| - **LJ_type_A** (Tensor, float32) - [Q,], the A parameter in Lennard-Jones scheme of each atom pair type. | |||||
| - **LJ_type_B** (Tensor, float32) - [Q,], the B parameter in Lennard-Jones shceme of each atom pair type. | |||||
| Outputs: | Outputs: | ||||
| - **frc_f** (Tensor, float) - [N, 3], the force felt by each atom. | - **frc_f** (Tensor, float) - [N, 3], the force felt by each atom. | ||||
| @@ -1083,8 +1156,6 @@ class Dihedral14LJForceWithDirectCF(PrimitiveWithInfer): | |||||
| class Dihedral14LJCFForceWithAtomEnergy(PrimitiveWithInfer): | class Dihedral14LJCFForceWithAtomEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| Dihedral14LJCFForceWithAtomEnergy: | |||||
| Calculate the Lennard-Jones and Coulumb energy correction and force correction | Calculate the Lennard-Jones and Coulumb energy correction and force correction | ||||
| for each necessary dihedral 1,4 terms together and add them to the total force | for each necessary dihedral 1,4 terms together and add them to the total force | ||||
| and potential energy for each atom. | and potential energy for each atom. | ||||
| @@ -1094,10 +1165,22 @@ class Dihedral14LJCFForceWithAtomEnergy(PrimitiveWithInfer): | |||||
| as operator Dihedral14LJEnergy() and Dihedral14CFEnergy(). | as operator Dihedral14LJEnergy() and Dihedral14CFEnergy(). | ||||
| Args: | Args: | ||||
| Same as operator Dihedral14LJForce(). | |||||
| nb14_numbers (int32): the number of necessary dihedral 1,4 terms M. | |||||
| atom_numbers (int32): the number of atoms N. | |||||
| Inputs: | Inputs: | ||||
| Same as operator Dihedral14LJForceWithdirectCF(). | |||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **LJ_type** (Tensor, int32) - [N,], the Lennard-Jones type of each atom. | |||||
| - **charge** (Tensor, float32) - [N,], the charge of each atom. | |||||
| - **boxlength_f** (Tensor, float32) - [3,], the length of molecular simulation box in 3 dimensions. | |||||
| - **a_14** (Tensor, int32) - [M,], the first atom index of each dihedral 1,4 term. | |||||
| - **b_14** (Tensor, int32) - [M,], the second atom index of each dihedral 1,4 term. | |||||
| - **lj_scale_factor** (Tensor, float32) - [M,], the scale factor for the | |||||
| Lennard-Jones part of force correction of each dihedral 1,4 term. | |||||
| - **cf_scale_factor** (Tensor, float) - [M,], the scale factor for the | |||||
| Coulomb part of force correction for each dihedral 1,4 terms. | |||||
| - **LJ_type_A** (Tensor, float32) - [Q,], the A parameter in Lennard-Jones scheme of each atom pair type. | |||||
| - **LJ_type_B** (Tensor, float32) - [Q,], the B parameter in Lennard-Jones shceme of each atom pair type. | |||||
| Outputs: | Outputs: | ||||
| - **frc_f** (Tensor, float32) - [N, 3], the force felt by each atom. | - **frc_f** (Tensor, float32) - [N, 3], the force felt by each atom. | ||||
| @@ -1144,18 +1227,26 @@ class Dihedral14LJCFForceWithAtomEnergy(PrimitiveWithInfer): | |||||
| class Dihedral14LJAtomEnergy(PrimitiveWithInfer): | class Dihedral14LJAtomEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| Dihedral14LJAtomEnergy: | |||||
| Add the potenrial energy caused by Lennard-Jones energy correction for each | Add the potenrial energy caused by Lennard-Jones energy correction for each | ||||
| necessary dihedral 1,4 terms to the total potential energy of each atom. | necessary dihedral 1,4 terms to the total potential energy of each atom. | ||||
| The calculation formula is the same as operator Dihedral14LJEnergy(). | The calculation formula is the same as operator Dihedral14LJEnergy(). | ||||
| Args: | Args: | ||||
| Same as operator Dihedral14LJForce(). | |||||
| nb14_numbers (int32): the number of necessary dihedral 1,4 terms M. | |||||
| atom_numbers (int32): the number of atoms N. | |||||
| Inputs: | Inputs: | ||||
| Same as operator Dihedral14LJForce(). | |||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **LJ_type** (Tensor, int32) - [N,], the Lennard-Jones type of each atom. | |||||
| - **charge** (Tensor, float32) - [N,], the charge of each atom. | |||||
| - **boxlength_f** (Tensor, float32) - [3,], the length of molecular simulation box in 3 dimensions. | |||||
| - **a_14** (Tensor, int32) - [M,], the first atom index of each dihedral 1,4 term. | |||||
| - **b_14** (Tensor, int32) - [M,], the second atom index of each dihedral 1,4 term. | |||||
| - **lj_scale_factor** (Tensor, float32) - [M,], the scale factor for the | |||||
| Lennard-Jones part of force correction of each dihedral 1,4 term. | |||||
| - **LJ_type_A** (Tensor, float32) - [Q,], the A parameter in Lennard-Jones scheme of each atom pair type. | |||||
| - **LJ_type_B** (Tensor, float32) - [Q,], the B parameter in Lennard-Jones shceme of each atom pair type. | |||||
| Outputs: | Outputs: | ||||
| - **ene** (Tensor, float32) - [N,], the accumulated potential energy of each atom. | - **ene** (Tensor, float32) - [N,], the accumulated potential energy of each atom. | ||||
| @@ -1200,8 +1291,6 @@ class Dihedral14LJAtomEnergy(PrimitiveWithInfer): | |||||
| class Dihedral14CFEnergy(PrimitiveWithInfer): | class Dihedral14CFEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| Dihedral14CFEnergy: | |||||
| Calculate the Coulumb part of 1,4 dihedral energy correction for | Calculate the Coulumb part of 1,4 dihedral energy correction for | ||||
| each necessary dihedral terms on the corresponding atoms. | each necessary dihedral terms on the corresponding atoms. | ||||
| @@ -1211,10 +1300,18 @@ class Dihedral14CFEnergy(PrimitiveWithInfer): | |||||
| E = k*q_a*q_b/|dr| | E = k*q_a*q_b/|dr| | ||||
| Args: | Args: | ||||
| Same as operator Dihedral14LJForce(). | |||||
| nb14_numbers (int32): the number of necessary dihedral 1,4 terms M. | |||||
| atom_numbers (int32): the number of atoms N. | |||||
| Inputs: | Inputs: | ||||
| The meaning and type of each input is the same as that of operator Dihedral14LJForceWithDirectCF(). | |||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **LJ_type** (Tensor, int32) - [N,], the Lennard-Jones type of each atom. | |||||
| - **charge** (Tensor, float32) - [N,], the charge of each atom. | |||||
| - **boxlength_f** (Tensor, float32) - [3,], the length of molecular simulation box in 3 dimensions. | |||||
| - **a_14** (Tensor, int32) - [M,], the first atom index of each dihedral 1,4 term. | |||||
| - **b_14** (Tensor, int32) - [M,], the second atom index of each dihedral 1,4 term. | |||||
| - **cf_scale_factor** (Tensor, float) - [M,], the scale factor for the | |||||
| Coulomb part of force correction for each dihedral 1,4 terms. | |||||
| Outputs: | Outputs: | ||||
| - **ene** (Tensor, float32) - [M,], the accumulated potential energy of each atom. | - **ene** (Tensor, float32) - [M,], the accumulated potential energy of each atom. | ||||
| @@ -1256,18 +1353,24 @@ class Dihedral14CFEnergy(PrimitiveWithInfer): | |||||
| class Dihedral14CFAtomEnergy(PrimitiveWithInfer): | class Dihedral14CFAtomEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| Dihedral14CFAtomEnergy: | |||||
| Add the potential energy caused by Coulumb energy correction for each | Add the potential energy caused by Coulumb energy correction for each | ||||
| necessary dihedral 1,4 terms to the total potential energy of each atom. | necessary dihedral 1,4 terms to the total potential energy of each atom. | ||||
| The calculation formula is the same as operator Dihedral14CFEnergy(). | The calculation formula is the same as operator Dihedral14CFEnergy(). | ||||
| Args: | Args: | ||||
| Same as operator Dihedral14LJForce(). | |||||
| nb14_numbers (int32): the number of necessary dihedral 1,4 terms M. | |||||
| atom_numbers (int32): the number of atoms N. | |||||
| Inputs: | Inputs: | ||||
| The meaning and type of each input is the same as that of operator Dihedral14LJForceWithDirectCF(). | |||||
| - **uint_crd_f** (Tensor, uint32) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **LJ_type** (Tensor, int32) - [N,], the Lennard-Jones type of each atom. | |||||
| - **charge** (Tensor, float32) - [N,], the charge of each atom. | |||||
| - **boxlength_f** (Tensor, float32) - [3,], the length of molecular simulation box in 3 dimensions. | |||||
| - **a_14** (Tensor, int32) - [M,], the first atom index of each dihedral 1,4 term. | |||||
| - **b_14** (Tensor, int32) - [M,], the second atom index of each dihedral 1,4 term. | |||||
| - **cf_scale_factor** (Tensor, float) - [M,], the scale factor for the | |||||
| Coulomb part of force correction for each dihedral 1,4 terms. | |||||
| Outputs: | Outputs: | ||||
| - **ene** (Tensor, float32) - [N,], the accumulated potential energy of each atom. | - **ene** (Tensor, float32) - [N,], the accumulated potential energy of each atom. | ||||
| @@ -1310,8 +1413,6 @@ class Dihedral14CFAtomEnergy(PrimitiveWithInfer): | |||||
| class MDIterationLeapFrog(PrimitiveWithInfer): | class MDIterationLeapFrog(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| MDIterationLeapFrog: | |||||
| One step of classical leap frog algorithm to solve the finite difference | One step of classical leap frog algorithm to solve the finite difference | ||||
| Hamiltonian equations of motion for certain system, using Langevin dynamics | Hamiltonian equations of motion for certain system, using Langevin dynamics | ||||
| with Liu's thermostat scheme. Assume the number of atoms is N and the target | with Liu's thermostat scheme. Assume the number of atoms is N and the target | ||||
| @@ -1387,8 +1488,6 @@ class MDIterationLeapFrog(PrimitiveWithInfer): | |||||
| class PMEReciprocalForce(PrimitiveWithInfer): | class PMEReciprocalForce(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| PMEReciprocalForce: | |||||
| Calculate the reciprocal part of long-range Coulumb force using | Calculate the reciprocal part of long-range Coulumb force using | ||||
| PME(Particle Meshed Ewald) method. Assume the number of atoms is N. | PME(Particle Meshed Ewald) method. Assume the number of atoms is N. | ||||
| @@ -1413,7 +1512,7 @@ class PMEReciprocalForce(PrimitiveWithInfer): | |||||
| - **force** (Tensor, float32) - [N, 3], the force felt by each atom. | - **force** (Tensor, float32) - [N, 3], the force felt by each atom. | ||||
| Supported Platforms: | Supported Platforms: | ||||
| ```GPU``` | |||||
| ``GPU`` | |||||
| """ | """ | ||||
| @prim_attr_register | @prim_attr_register | ||||
| @@ -1448,8 +1547,6 @@ class PMEReciprocalForce(PrimitiveWithInfer): | |||||
| class PMEExcludedForce(PrimitiveWithInfer): | class PMEExcludedForce(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| PMEExcludedForce: | |||||
| Calculate the excluded part of long-range Coulumb force using | Calculate the excluded part of long-range Coulumb force using | ||||
| PME(Particle Meshed Ewald) method. Assume the number of atoms is | PME(Particle Meshed Ewald) method. Assume the number of atoms is | ||||
| N, and the length of excluded list is E. | N, and the length of excluded list is E. | ||||
| @@ -1460,22 +1557,22 @@ class PMEExcludedForce(PrimitiveWithInfer): | |||||
| non-bond cutoff value and simulation precision tolerance. | non-bond cutoff value and simulation precision tolerance. | ||||
| Inputs: | Inputs: | ||||
| - **uint_crd** (Tensor, uint32) - [N, 3], the unsigned int coordinates value of each atom. | |||||
| - **scaler** (Tensor, float32) - [3,], the scale factor between real space | - **scaler** (Tensor, float32) - [3,], the scale factor between real space | ||||
| coordinates and its unsigned int value. | coordinates and its unsigned int value. | ||||
| - **charge** (Tensor, float32) - [N,], the charge carried by each atom. | |||||
| - **excluded_list_start** (Tensor, int32) - [N,], the start excluded index | - **excluded_list_start** (Tensor, int32) - [N,], the start excluded index | ||||
| in excluded list for each atom. | in excluded list for each atom. | ||||
| - **excluded_numbers** (Tensor, int32) - [N,], the number of atom excluded | |||||
| in excluded list for each atom. | |||||
| - **excluded_list** (Tensor, int32) - [E,], the contiguous join of excluded | - **excluded_list** (Tensor, int32) - [E,], the contiguous join of excluded | ||||
| list of each atom. | list of each atom. | ||||
| The rest of the input is the same as that of operator PMEReciprocalForce(). | |||||
| - **excluded_atom_numbers** (Tensor, int32) - [N,], the number of atom excluded | |||||
| in excluded list for each atom. | |||||
| Outputs: | Outputs: | ||||
| - **force** (Tensor, float32) - [N, 3], the force felt by each atom. | - **force** (Tensor, float32) - [N, 3], the force felt by each atom. | ||||
| Supported Platforms: | Supported Platforms: | ||||
| ```GPU``` | |||||
| ``GPU`` | |||||
| """ | """ | ||||
| @prim_attr_register | @prim_attr_register | ||||
| @@ -1510,8 +1607,6 @@ class PMEExcludedForce(PrimitiveWithInfer): | |||||
| class PMEEnergy(PrimitiveWithInfer): | class PMEEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| PMEEnergy: | |||||
| Calculate the Coulumb energy of the system using PME method. | Calculate the Coulumb energy of the system using PME method. | ||||
| .. math:: | .. math:: | ||||
| @@ -1519,11 +1614,27 @@ class PMEEnergy(PrimitiveWithInfer): | |||||
| E = sum_{ij} q_iq_j/r_{ij} | E = sum_{ij} q_iq_j/r_{ij} | ||||
| Args: | Args: | ||||
| same as operator PMEReciprocalForce(). | |||||
| atom_numbers(int32): the number of atoms, N. | |||||
| beta(float32): the PME beta parameter, determined by the | |||||
| non-bond cutoff value and simulation precision tolerance. | |||||
| fftx(int32): the number of points for Fourier transform in dimension X. | |||||
| ffty(int32): the number of points for Fourier transform in dimension Y. | |||||
| fftz(int32): the number of points for Fourier transform in dimension Z. | |||||
| Inputs: | Inputs: | ||||
| Same as operator PMEReciprocalForce(), PMEExcludedForce() | |||||
| and PMEDirectAtomEnergy(). | |||||
| - **boxlength** (Tensor, float32) - [3,], the length of simulation box in 3 dimensions. | |||||
| - **uint_crd** (Tensor, uint32) - [N, 3], the unsigned int coordinates value of each atom. | |||||
| - **charge** (Tensor, float32) - [N,], the charge carried by each atom. | |||||
| - **nl_numbers** - (Tensor, int32) - [N,], the each atom. | |||||
| - **nl_serial** - (Tensor, int32) - [N, 800], the neighbor list of each atom, the max number is 800. | |||||
| - **scaler** (Tensor, float32) - [3,], the scale factor between real space | |||||
| coordinates and its unsigned int value. | |||||
| - **excluded_list_start** (Tensor, int32) - [N,], the start excluded index | |||||
| in excluded list for each atom. | |||||
| - **excluded_list** (Tensor, int32) - [E,], the contiguous join of excluded | |||||
| list of each atom. | |||||
| - **excluded_atom_numbers** (Tensor, int32) - [N,], the number of atom excluded | |||||
| in excluded list for each atom. | |||||
| Outputs: | Outputs: | ||||
| - **reciprocal_ene** (float32) - the reciprocal term of PME energy. | - **reciprocal_ene** (float32) - the reciprocal term of PME energy. | ||||
| @@ -1532,7 +1643,7 @@ class PMEEnergy(PrimitiveWithInfer): | |||||
| - **correction_ene** (float32) - the correction term of PME energy. | - **correction_ene** (float32) - the correction term of PME energy. | ||||
| Supported Platforms: | Supported Platforms: | ||||
| ```GPU`` | |||||
| ``GPU`` | |||||
| """ | """ | ||||
| @prim_attr_register | @prim_attr_register | ||||
| @@ -1580,8 +1691,6 @@ class PMEEnergy(PrimitiveWithInfer): | |||||
| class LJEnergy(PrimitiveWithInfer): | class LJEnergy(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| LJEnergy: | |||||
| Calculate the Van der Waals interaction energy described by Lennard-Jones | Calculate the Van der Waals interaction energy described by Lennard-Jones | ||||
| potential for each atom. Assume the number of atoms is N, and the number | potential for each atom. Assume the number of atoms is N, and the number | ||||
| of Lennard-Jones types for all atoms is P, which means there will be | of Lennard-Jones types for all atoms is P, which means there will be | ||||
| @@ -1614,7 +1723,7 @@ class LJEnergy(PrimitiveWithInfer): | |||||
| - **d_LJ_energy_sum** (float32), the sum of Lennard-Jones potential energy of each atom. | - **d_LJ_energy_sum** (float32), the sum of Lennard-Jones potential energy of each atom. | ||||
| Supported Platforms: | Supported Platforms: | ||||
| ```GPU``` | |||||
| ``GPU`` | |||||
| """ | """ | ||||
| @prim_attr_register | @prim_attr_register | ||||
| @@ -1646,8 +1755,6 @@ class LJEnergy(PrimitiveWithInfer): | |||||
| class LJForce(PrimitiveWithInfer): | class LJForce(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| LJForce: | |||||
| Calculate the Van der Waals interaction force described by Lennard-Jones | Calculate the Van der Waals interaction force described by Lennard-Jones | ||||
| potential energy for each atom. | potential energy for each atom. | ||||
| @@ -1656,17 +1763,26 @@ class LJForce(PrimitiveWithInfer): | |||||
| dr = (x_a-x_b, y_a-y_b, z_a-z_b) | dr = (x_a-x_b, y_a-y_b, z_a-z_b) | ||||
| F = (-12*A/|dr|^{14} + 6*B/|dr|^{8}) * dr | F = (-12*A/|dr|^{14} + 6*B/|dr|^{8}) * dr | ||||
| Args: | |||||
| Same as operator LJEnergy(). | |||||
| Agrs: | |||||
| atom_numbers(int32): the number of atoms, N. | |||||
| cutoff_square(float32): the square value of cutoff. | |||||
| Inputs: | Inputs: | ||||
| Same as operator LJEnergy(). | |||||
| - **uint_crd** (Tensor, uint32) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **LJtype** (Tensor, int32) - [N,], the Lennard-Jones type of each atom. | |||||
| - **charge** (Tensor, float32) - [N,], the charge carried by each atom. | |||||
| - **scaler** (Tensor, float32) - [3,], the scale factor between real | |||||
| space coordinate and its unsigned int value. | |||||
| - **nl_numbers** - (Tensor, int32) - [N,], the each atom. | |||||
| - **nl_serial** - (Tensor, int32) - [N, 800], the neighbor list of each atom, the max number is 800. | |||||
| - **d_LJ_A** (Tensor, float32) - [Q,], the Lennard-Jones A coefficient of each kind of atom pair. | |||||
| - **d_LJ_B** (Tensor, float32) - [Q,], the Lennard-Jones B coefficient of each kind of atom pair. | |||||
| outputs: | outputs: | ||||
| - **frc** (Tensor, float32) - [N, 3], the force felt by each atom. | - **frc** (Tensor, float32) - [N, 3], the force felt by each atom. | ||||
| Supported Platforms: | Supported Platforms: | ||||
| ```GPU``` | |||||
| ``GPU`` | |||||
| """ | """ | ||||
| @prim_attr_register | @prim_attr_register | ||||
| @@ -1698,25 +1814,32 @@ class LJForce(PrimitiveWithInfer): | |||||
| class LJForceWithPMEDirectForce(PrimitiveWithInfer): | class LJForceWithPMEDirectForce(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| LJForceWithPMEDirectForce: | |||||
| Calculate the Lennard-Jones force and PME direct force together. | Calculate the Lennard-Jones force and PME direct force together. | ||||
| The calculation formula of Lennard-Jones part is the same as operator | The calculation formula of Lennard-Jones part is the same as operator | ||||
| LJForce(), and the PME direct part is within PME method. | LJForce(), and the PME direct part is within PME method. | ||||
| Args: | |||||
| Agrs: | |||||
| atom_numbers(int32): the number of atoms, N. | |||||
| cutoff_square(float32): the square value of cutoff. | |||||
| pme_beta(float32): PME beta parameter, same as operator PMEReciprocalForce(). | pme_beta(float32): PME beta parameter, same as operator PMEReciprocalForce(). | ||||
| The rest is same as operator LJEnergy(). | |||||
| Inputs: | Inputs: | ||||
| same as operator LJForce(). | |||||
| - **uint_crd** (Tensor, uint32) - [N, 3], the unsigned int coordinate value of each atom. | |||||
| - **LJtype** (Tensor, int32) - [N,], the Lennard-Jones type of each atom. | |||||
| - **charge** (Tensor, float32) - [N,], the charge carried by each atom. | |||||
| - **scaler** (Tensor, float32) - [3,], the scale factor between real | |||||
| space coordinate and its unsigned int value. | |||||
| - **nl_numbers** - (Tensor, int32) - [N,], the each atom. | |||||
| - **nl_serial** - (Tensor, int32) - [N, 800], the neighbor list of each atom, the max number is 800. | |||||
| - **d_LJ_A** (Tensor, float32) - [Q,], the Lennard-Jones A coefficient of each kind of atom pair. | |||||
| - **d_LJ_B** (Tensor, float32) - [Q,], the Lennard-Jones B coefficient of each kind of atom pair. | |||||
| Outputs: | Outputs: | ||||
| - **frc** (Tensor, float32), [N, 3], the force felt by each atom. | - **frc** (Tensor, float32), [N, 3], the force felt by each atom. | ||||
| Supported Platforms: | Supported Platforms: | ||||
| ```GPU``` | |||||
| ``GPU`` | |||||
| """ | """ | ||||
| @prim_attr_register | @prim_attr_register | ||||
| @@ -1751,7 +1874,7 @@ class LJForceWithPMEDirectForce(PrimitiveWithInfer): | |||||
| class GetCenterOfGeometry(PrimitiveWithInfer): | class GetCenterOfGeometry(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| GetCenterOfGeometry: | |||||
| Get Center Of Geometry. | |||||
| Supported Platforms: | Supported Platforms: | ||||
| ``GPU`` | ``GPU`` | ||||
| @@ -1784,7 +1907,7 @@ class GetCenterOfGeometry(PrimitiveWithInfer): | |||||
| class MDTemperature(PrimitiveWithInfer): | class MDTemperature(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| MDTemperature: | |||||
| Calculate the MD Temperature. | |||||
| Calculate the temperature. | Calculate the temperature. | ||||
| @@ -1828,8 +1951,6 @@ class MDTemperature(PrimitiveWithInfer): | |||||
| class NeighborListUpdate(PrimitiveWithInfer): | class NeighborListUpdate(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| NeighborListUpdate | |||||
| Update (or construct if first time) the Verlet neighbor list for the | Update (or construct if first time) the Verlet neighbor list for the | ||||
| calculation of short-ranged force. Assume the number of atoms is N, | calculation of short-ranged force. Assume the number of atoms is N, | ||||
| the number of grids divided is G, the maximum number of atoms in one | the number of grids divided is G, the maximum number of atoms in one | ||||
| @@ -1882,7 +2003,7 @@ class NeighborListUpdate(PrimitiveWithInfer): | |||||
| - **res** (float32) | - **res** (float32) | ||||
| Supported Platforms: | Supported Platforms: | ||||
| ```GPU``` | |||||
| ``GPU`` | |||||
| """ | """ | ||||
| @prim_attr_register | @prim_attr_register | ||||
| @@ -2019,8 +2140,6 @@ class NeighborListUpdate(PrimitiveWithInfer): | |||||
| class MDIterationLeapFrogWithRF(PrimitiveWithInfer): | class MDIterationLeapFrogWithRF(PrimitiveWithInfer): | ||||
| """ | """ | ||||
| MDIterationLeapFrog: | |||||
| One step of classical leap frog algorithm to solve the finite difference | One step of classical leap frog algorithm to solve the finite difference | ||||
| Hamiltonian equations of motion for certain system, using Langevin dynamics | Hamiltonian equations of motion for certain system, using Langevin dynamics | ||||
| with Liu's thermostat scheme. Assume the number of atoms is N and the target | with Liu's thermostat scheme. Assume the number of atoms is N and the target | ||||