deepmd.dpmodel.fitting.dipole_fitting#
Classes#
Fitting rotationally equivariant diploe of the system. |
Module Contents#
- class deepmd.dpmodel.fitting.dipole_fitting.DipoleFitting(ntypes: int, dim_descrpt: int, embedding_width: int, neuron: list[int] = [120, 120, 120], resnet_dt: bool = True, numb_fparam: int = 0, numb_aparam: int = 0, rcond: float | None = None, tot_ener_zero: bool = False, trainable: list[bool] | None = None, activation_function: str = 'tanh', precision: str = DEFAULT_PRECISION, layer_name: list[str | None] | None = None, use_aparam_as_mask: bool = False, spin: Any = None, mixed_types: bool = False, exclude_types: list[int] = [], r_differentiable: bool = True, c_differentiable: bool = True, type_map: list[str] | None = None, seed: int | list[int] | None = None)[source]#
Bases:
deepmd.dpmodel.fitting.general_fitting.GeneralFitting
Fitting rotationally equivariant diploe of the system.
- Parameters:
- ntypes
The number of atom types.
- dim_descrpt
The dimension of the input descriptor.
- embedding_width
int
The dimension of rotation matrix, m1.
- neuron
Number of neurons \(N\) in each hidden layer of the fitting net
- resnet_dt
Time-step dt in the resnet construction: \(y = x + dt * \phi (Wx + b)\)
- numb_fparam
Number of frame parameter
- numb_aparam
Number of atomic parameter
- rcond
The condition number for the regression of atomic energy.
- tot_ener_zero
Force the total energy to zero. Useful for the charge fitting.
- trainable
If the weights of fitting net are trainable. Suppose that we have \(N_l\) hidden layers in the fitting net, this list is of length \(N_l + 1\), specifying if the hidden layers and the output layer are trainable.
- activation_function
The activation function \(\boldsymbol{\phi}\) in the embedding net. Supported options are “none”, “gelu_tf”, “linear”, “relu6”, “sigmoid”, “tanh”, “gelu”, “relu”, “softplus”.
- precision
The precision of the embedding net parameters. Supported options are “float16”, “float64”, “default”, “float32”.
- layer_name
list
[Optional
[str
]],optional
The name of the each layer. If two layers, either in the same fitting or different fittings, have the same name, they will share the same neural network parameters.
- use_aparam_as_mask: bool, optional
If True, the atomic parameters will be used as a mask that determines the atom is real/virtual. And the aparam will not be used as the atomic parameters for embedding.
- mixed_types
If true, use a uniform fitting net for all atom types, otherwise use different fitting nets for different atom types.
- exclude_types
Atomic contributions of the excluded atom types are set zero.
- r_differentiable
If the variable is differentiated with respect to coordinates of atoms. Only reducible variable are differentiable.
- c_differentiable
If the variable is differentiated with respect to the cell tensor (pbc case). Only reducible variable are differentiable.
- type_map: list[str], Optional
A list of strings. Give the name to each type of atoms.
- classmethod deserialize(data: dict) deepmd.dpmodel.fitting.general_fitting.GeneralFitting [source]#
Deserialize the fitting.
- Parameters:
- data
dict
The serialized data
- data
- Returns:
BF
The deserialized fitting
- call(descriptor: numpy.ndarray, atype: numpy.ndarray, gr: numpy.ndarray | None = None, g2: numpy.ndarray | None = None, h2: numpy.ndarray | None = None, fparam: numpy.ndarray | None = None, aparam: numpy.ndarray | None = None) dict[str, numpy.ndarray] [source]#
Calculate the fitting.
- Parameters:
- descriptor
input descriptor. shape: nf x nloc x nd
- atype
the atom type. shape: nf x nloc
- gr
The rotationally equivariant and permutationally invariant single particle representation. shape: nf x nloc x ng x 3
- g2
The rotationally invariant pair-partical representation. shape: nf x nloc x nnei x ng
- h2
The rotationally equivariant pair-partical representation. shape: nf x nloc x nnei x 3
- fparam
The frame parameter. shape: nf x nfp. nfp being numb_fparam
- aparam
The atomic parameter. shape: nf x nloc x nap. nap being numb_aparam