Source code for deepmd.dpmodel.model.dp_model
# SPDX-License-Identifier: LGPL-3.0-or-later
from typing import (
Optional,
)
from deepmd.dpmodel.descriptor.base_descriptor import (
BaseDescriptor,
)
from deepmd.utils.data_system import (
DeepmdDataSystem,
)
# use "class" to resolve "Variable not allowed in type expression"
[docs]
class DPModelCommon:
@classmethod
[docs]
def update_sel(
cls,
train_data: DeepmdDataSystem,
type_map: Optional[list[str]],
local_jdata: dict,
) -> tuple[dict, Optional[float]]:
"""Update the selection and perform neighbor statistics.
Parameters
----------
train_data : DeepmdDataSystem
data used to do neighbor statistics
type_map : list[str], optional
The name of each type of atoms
local_jdata : dict
The local data refer to the current class
Returns
-------
dict
The updated local data
float
The minimum distance between two atoms
"""
local_jdata_cpy = local_jdata.copy()
local_jdata_cpy["descriptor"], min_nbor_dist = BaseDescriptor.update_sel(
train_data, type_map, local_jdata["descriptor"]
)
return local_jdata_cpy, min_nbor_dist