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