Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions deepmd/entrypoints/freeze.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,13 @@ def _make_node_names(model_type: str, modifier_type: Optional[str] = None) -> Li
nodes += [
"o_polar",
"model_attr/sel_type",
"model_attr/output_dim",
]
elif model_type == "global_polar":
nodes += [
"o_global_polar",
"model_attr/sel_type",
"model_attr/output_dim",
]
else:
raise RuntimeError(f"unknow model type {model_type}")
Expand Down
4 changes: 3 additions & 1 deletion deepmd/infer/data_modifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,10 @@ def eval(self,
tot_v
The virial modification
"""
atype = np.array(atype, dtype=int)
coord, atype, imap = self.sort_input(coord, atype)
natoms = coord.shape[1] // 3
# natoms = coord.shape[1] // 3
natoms = atype.size
nframes = coord.shape[0]
box = np.reshape(box, [nframes, 9])
atype = np.reshape(atype, [natoms])
Expand Down
10 changes: 5 additions & 5 deletions source/api_cc/include/DataModifier.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

#include "NNPInter.h"

class DataModifier
class DipoleChargeModifier
{
public:
DataModifier();
DataModifier(const std::string & model,
DipoleChargeModifier();
DipoleChargeModifier(const std::string & model,
const int & gpu_rank = 0,
const std::string & name_scope = "");
~DataModifier () {};
~DipoleChargeModifier () {};
void init (const std::string & model,
const int & gpu_rank = 0,
const std::string & name_scope = "");
Expand All @@ -23,7 +23,7 @@ class DataModifier
const std::vector<std::pair<int,int>> & pairs,
const std::vector<VALUETYPE> & delef_,
const int nghost,
const LammpsNeighborList & lmp_list);
const InputNlist & lmp_list);
VALUETYPE cutoff () const {assert(inited); return rcut;};
int numb_types () const {assert(inited); return ntypes;};
std::vector<int> sel_types () const {assert(inited); return sel_type;};
Expand Down
10 changes: 4 additions & 6 deletions source/api_cc/include/DeepTensor.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,13 @@ class DeepTensor
void compute (std::vector<VALUETYPE> & value,
const std::vector<VALUETYPE> & coord,
const std::vector<int> & atype,
const std::vector<VALUETYPE> & box,
const int nghost = 0);
const std::vector<VALUETYPE> & box);
void compute (std::vector<VALUETYPE> & value,
const std::vector<VALUETYPE> & coord,
const std::vector<int> & atype,
const std::vector<VALUETYPE> & box,
const int nghost,
const LammpsNeighborList & lmp_list);
const InputNlist & inlist);
VALUETYPE cutoff () const {assert(inited); return rcut;};
int numb_types () const {assert(inited); return ntypes;};
int output_dim () const {assert(inited); return odim;};
Expand All @@ -51,13 +50,12 @@ class DeepTensor
void compute_inner (std::vector<VALUETYPE> & value,
const std::vector<VALUETYPE> & coord,
const std::vector<int> & atype,
const std::vector<VALUETYPE> & box,
const int nghost = 0);
const std::vector<VALUETYPE> & box);
void compute_inner (std::vector<VALUETYPE> & value,
const std::vector<VALUETYPE> & coord,
const std::vector<int> & atype,
const std::vector<VALUETYPE> & box,
const int nghost,
const InternalNeighborList& lmp_list);
const InputNlist& inlist);
};

29 changes: 9 additions & 20 deletions source/api_cc/include/NNPInter.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once

#include "common.h"
#include "neighbor_list.h"
typedef double compute_t;

class NNPInter
Expand All @@ -18,7 +19,6 @@ class NNPInter
const std::vector<VALUETYPE> & coord,
const std::vector<int> & atype,
const std::vector<VALUETYPE> & box,
const int nghost = 0,
const std::vector<VALUETYPE>& fparam = std::vector<VALUETYPE>(),
const std::vector<VALUETYPE>& aparam = std::vector<VALUETYPE>());
void compute (ENERGYTYPE & ener,
Expand All @@ -28,7 +28,7 @@ class NNPInter
const std::vector<int> & atype,
const std::vector<VALUETYPE> & box,
const int nghost,
const LammpsNeighborList & lmp_list,
const InputNlist & inlist,
const int& ago,
const std::vector<VALUETYPE>& fparam = std::vector<VALUETYPE>(),
const std::vector<VALUETYPE>& aparam = std::vector<VALUETYPE>());
Expand All @@ -51,7 +51,7 @@ class NNPInter
const std::vector<int> & atype,
const std::vector<VALUETYPE> & box,
const int nghost,
const LammpsNeighborList & lmp_list,
const InputNlist & lmp_list,
const int& ago,
const std::vector<VALUETYPE>& fparam = std::vector<VALUETYPE>(),
const std::vector<VALUETYPE>& aparam = std::vector<VALUETYPE>());
Expand Down Expand Up @@ -91,10 +91,9 @@ class NNPInter
bool init_nbor;
std::vector<int> sec_a;
compute_t *array_double;
InternalNeighborList nlist;
NeighborListData nlist_data;
InputNlist nlist;
NNPAtomMap<VALUETYPE> nnpmap;
int *ilist, *jrange, *jlist;
int ilist_size, jrange_size, jlist_size;

// function used for neighbor list copy
std::vector<int> get_sel_a() const;
Expand All @@ -108,23 +107,14 @@ class NNPInterModelDevi
NNPInterModelDevi (const std::vector<std::string> & models, const int & gpu_rank = 0, const std::vector<std::string> & file_contents = std::vector<std::string>());
void init (const std::vector<std::string> & models, const int & gpu_rank = 0, const std::vector<std::string> & file_contents = std::vector<std::string>());
public:
void compute (ENERGYTYPE & ener,
std::vector<VALUETYPE> & force,
std::vector<VALUETYPE> & virial,
std::vector<VALUETYPE> & model_devi,
const std::vector<VALUETYPE> & coord,
const std::vector<int> & atype,
const std::vector<VALUETYPE> & box,
const std::vector<VALUETYPE> & fparam = std::vector<VALUETYPE>(),
const std::vector<VALUETYPE> & aparam = std::vector<VALUETYPE>());
void compute (std::vector<ENERGYTYPE> & all_ener,
std::vector<std::vector<VALUETYPE> > & all_force,
std::vector<std::vector<VALUETYPE> > & all_virial,
const std::vector<VALUETYPE> & coord,
const std::vector<int> & atype,
const std::vector<VALUETYPE> & box,
const int nghost,
const LammpsNeighborList & lmp_list,
const InputNlist & lmp_list,
const int & ago,
const std::vector<VALUETYPE> & fparam = std::vector<VALUETYPE>(),
const std::vector<VALUETYPE> & aparam = std::vector<VALUETYPE>());
Expand All @@ -137,7 +127,7 @@ class NNPInterModelDevi
const std::vector<int> & atype,
const std::vector<VALUETYPE> & box,
const int nghost,
const LammpsNeighborList & lmp_list,
const InputNlist & lmp_list,
const int & ago,
const std::vector<VALUETYPE> & fparam = std::vector<VALUETYPE>(),
const std::vector<VALUETYPE> & aparam = std::vector<VALUETYPE>());
Expand Down Expand Up @@ -184,10 +174,9 @@ class NNPInterModelDevi
bool init_nbor;
compute_t *array_double;
std::vector<std::vector<int> > sec;
InternalNeighborList nlist;
NNPAtomMap<VALUETYPE> nnpmap;
int *ilist, *jrange, *jlist;
int ilist_size, jrange_size, jlist_size;
NeighborListData nlist_data;
InputNlist nlist;

// function used for nborlist copy
std::vector<std::vector<int> > get_sel() const;
Expand Down
114 changes: 41 additions & 73 deletions source/api_cc/include/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <string>
#include <iostream>
#include "version.h"
#include "neighbor_list.h"
#include "NNPAtomMap.h"

#include "tensorflow/core/platform/env.h"
Expand All @@ -27,52 +28,20 @@ typedef float VALUETYPE;
typedef double ENERGYTYPE;
#endif

struct LammpsNeighborList
struct NeighborListData
{
int inum;
const int * ilist;
const int * numneigh;
const int *const* firstneigh;
LammpsNeighborList (int inum_,
const int * ilist_,
const int * numneigh_,
const int *const* firstneigh_)
: inum(inum_), ilist(ilist_), numneigh(numneigh_), firstneigh(firstneigh_)
{
}
};

struct InternalNeighborList
{
int * pilist;
int * pjrange;
int * pjlist;
std::vector<int > ilist;
std::vector<int > jrange;
std::vector<int > jlist;
void clear () {ilist.clear(); jrange.clear(); jlist.clear();}
void make_ptrs () {
pilist = &ilist[0]; pjrange = &jrange[0]; pjlist = &jlist[0];
}
std::vector<std::vector<int> > jlist;
std::vector<int > numneigh;
std::vector<int* > firstneigh;
public:
void copy_from_nlist(const InputNlist & inlist);
void shuffle(const std::vector<int> & fwd_map);
void shuffle(const NNPAtomMap<VALUETYPE> & map);
void shuffle_exclude_empty(const std::vector<int> & fwd_map);
void make_inlist(InputNlist & inlist);
};

void
convert_nlist_lmp_internal (InternalNeighborList & list,
const LammpsNeighborList & lmp_list);

void
shuffle_nlist (InternalNeighborList & list,
const std::vector<int> & fwd_map);

void
shuffle_nlist (InternalNeighborList & list,
const NNPAtomMap<VALUETYPE> & map);

void
shuffle_nlist_exclude_empty (InternalNeighborList & list,
const std::vector<int> & fwd_map);


void
select_by_type(std::vector<int> & fwd_map,
std::vector<int> & bkw_map,
Expand Down Expand Up @@ -125,49 +94,48 @@ session_input_tensors (std::vector<std::pair<std::string, Tensor>> & input_tenso
const std::vector<VALUETYPE> & fparam_,
const std::vector<VALUETYPE> & aparam_,
const NNPAtomMap<VALUETYPE>& nnpmap,
const int nghost = 0,
const std::string scope = "");
const std::string scope = "");

int
session_input_tensors (std::vector<std::pair<std::string, Tensor>> & input_tensors,
const std::vector<VALUETYPE> & dcoord_,
const int & ntypes,
const std::vector<int> & datype_,
const std::vector<VALUETYPE> & dbox,
InternalNeighborList & dlist,
InputNlist & dlist,
const std::vector<VALUETYPE> & fparam_,
const std::vector<VALUETYPE> & aparam_,
const NNPAtomMap<VALUETYPE>& nnpmap,
const int nghost,
const int ago,
const std::string scope = "");

int
session_input_tensors (std::vector<std::pair<std::string, Tensor>> & input_tensors,
const std::vector<VALUETYPE> & dcoord_,
const int & ntypes,
const std::vector<int> & datype_,
const std::vector<VALUETYPE> & dbox,
InternalNeighborList & dlist,
const std::vector<VALUETYPE> & fparam_,
const std::vector<VALUETYPE> & aparam_,
const NNPAtomMap<VALUETYPE>& nnpmap,
const int nghost,
const std::string scope = "");

int
session_input_tensors (std::vector<std::pair<std::string, Tensor>>& input_tensors,
const std::vector<VALUETYPE> & dcoord_,
const int & ntypes,
const std::vector<int> & atype_,
const std::vector<VALUETYPE> & dbox,
const int * ilist,
const int * jrange,
const int * jlist,
const std::vector<VALUETYPE> & fparam_,
const std::vector<VALUETYPE> & aparam_,
const NNPAtomMap<VALUETYPE> & nnpmap,
const int & nghost);
const std::string scope = "");

// int
// session_input_tensors (std::vector<std::pair<std::string, Tensor>> & input_tensors,
// const std::vector<VALUETYPE> & dcoord_,
// const int & ntypes,
// const std::vector<int> & datype_,
// const std::vector<VALUETYPE> & dbox,
// InputNlist & dlist,
// const std::vector<VALUETYPE> & fparam_,
// const std::vector<VALUETYPE> & aparam_,
// const NNPAtomMap<VALUETYPE>& nnpmap,
// const int nghost,
// const std::string scope = "");

// int
// session_input_tensors (std::vector<std::pair<std::string, Tensor>>& input_tensors,
// const std::vector<VALUETYPE> & dcoord_,
// const int & ntypes,
// const std::vector<int> & atype_,
// const std::vector<VALUETYPE> & dbox,
// const int * ilist,
// const int * jrange,
// const int * jlist,
// const std::vector<VALUETYPE> & fparam_,
// const std::vector<VALUETYPE> & aparam_,
// const NNPAtomMap<VALUETYPE> & nnpmap,
// const int & nghost);


template<typename VT>
Expand Down
Loading