deepmd.pt.model.atomic_model.dp_atomic_model#

Attributes#

Classes#

DPAtomicModel

Model give atomic prediction of some physical property.

Module Contents#

deepmd.pt.model.atomic_model.dp_atomic_model.log[source]#
class deepmd.pt.model.atomic_model.dp_atomic_model.DPAtomicModel(descriptor, fitting, type_map: list[str], **kwargs)[source]#

Bases: deepmd.pt.model.atomic_model.base_atomic_model.BaseAtomicModel

Model give atomic prediction of some physical property.

Parameters:
descriptor

Descriptor

fitting_net

Fitting net

type_map

Mapping atom type to the name (str) of the type. For example type_map[1] gives the name of the type 1.

type_map[source]#
ntypes[source]#
descriptor[source]#
rcut[source]#
sel[source]#
fitting_net[source]#
enable_eval_descriptor_hook = False[source]#
eval_descriptor_list = [][source]#
set_eval_descriptor_hook(enable: bool) None[source]#

Set the hook for evaluating descriptor and clear the cache for descriptor list.

eval_descriptor() torch.Tensor[source]#

Evaluate the descriptor.

fitting_output_def() deepmd.dpmodel.FittingOutputDef[source]#

Get the output def of the fitting net.

get_rcut() float[source]#

Get the cut-off radius.

get_sel() list[int][source]#

Get the neighbor selection.

mixed_types() bool[source]#

If true, the model 1. assumes total number of atoms aligned across frames; 2. uses a neighbor list that does not distinguish different atomic types.

If false, the model 1. assumes total number of atoms of each atom type aligned across frames; 2. uses a neighbor list that distinguishes different atomic types.

change_type_map(type_map: list[str], model_with_new_type_stat=None) None[source]#

Change the type related params to new ones, according to type_map and the original one in the model. If there are new types in type_map, statistics will be updated accordingly to model_with_new_type_stat for these new types.

has_message_passing() bool[source]#

Returns whether the atomic model has message passing.

need_sorted_nlist_for_lower() bool[source]#

Returns whether the atomic model needs sorted nlist when using forward_lower.

serialize() dict[source]#
classmethod deserialize(data) DPAtomicModel[source]#
enable_compression(min_nbor_dist: float, table_extrapolate: float = 5, table_stride_1: float = 0.01, table_stride_2: float = 0.1, check_frequency: int = -1) None[source]#

Call descriptor enable_compression().

Parameters:
min_nbor_dist

The nearest distance between atoms

table_extrapolate

The scale of model extrapolation

table_stride_1

The uniform stride of the first table

table_stride_2

The uniform stride of the second table

check_frequency

The overflow check frequency

forward_atomic(extended_coord, extended_atype, nlist, mapping: torch.Tensor | None = None, fparam: torch.Tensor | None = None, aparam: torch.Tensor | None = None, comm_dict: dict[str, torch.Tensor] | None = None) dict[str, torch.Tensor][source]#

Return atomic prediction.

Parameters:
extended_coord

coordinates in extended region

extended_atype

atomic type in extended region

nlist

neighbor list. nf x nloc x nsel

mapping

mapps the extended indices to local indices

fparam

frame parameter. nf x ndf

aparam

atomic parameter. nf x nloc x nda

Returns:
result_dict

the result dict, defined by the FittingOutputDef.

get_out_bias() torch.Tensor[source]#
compute_or_load_stat(sampled_func, stat_file_path: deepmd.utils.path.DPPath | None = None) None[source]#

Compute or load the statistics parameters of the model, such as mean and standard deviation of descriptors or the energy bias of the fitting net. When sampled is provided, all the statistics parameters will be calculated (or re-calculated for update), and saved in the stat_file_path`(s). When `sampled is not provided, it will check the existence of `stat_file_path`(s) and load the calculated statistics parameters.

Parameters:
sampled_func

The lazy sampled function to get data frames from different data systems.

stat_file_path

The dictionary of paths to the statistics files.

get_dim_fparam() int[source]#

Get the number (dimension) of frame parameters of this atomic model.

get_dim_aparam() int[source]#

Get the number (dimension) of atomic parameters of this atomic model.

get_sel_type() list[int][source]#

Get the selected atom types of this model.

Only atoms with selected atom types have atomic contribution to the result of the model. If returning an empty list, all atom types are selected.

is_aparam_nall() bool[source]#

Check whether the shape of atomic parameters is (nframes, nall, ndim).

If False, the shape is (nframes, nloc, ndim).