n2p2 - A neural network potential package
nnp::SymGrpBaseCompAng Class Referenceabstract

#include <SymGrpBaseCompAng.h>

Inheritance diagram for nnp::SymGrpBaseCompAng:
Collaboration diagram for nnp::SymGrpBaseCompAng:

Public Member Functions

virtual void setScalingFactors ()
 Fill scalingFactors with values from member symmetry functions. More...
 
virtual std::vector< std::string > parameterLines () const
 Give symmetry function group parameters on multiple lines. More...
 
- Public Member Functions inherited from nnp::SymGrpBaseComp
double getRmin () const
 Getter for rmin. More...
 
double getRmax () const
 Getter for rmax. More...
 
- Public Member Functions inherited from nnp::SymGrp
virtual ~SymGrp ()
 Virtual destructor. More...
 
virtual bool operator== (SymGrp const &rhs) const =0
 Overload == operator. More...
 
virtual bool operator< (SymGrp const &rhs) const =0
 Overload < operator. More...
 
bool operator!= (SymGrp const &rhs) const
 Overload != operator. More...
 
bool operator> (SymGrp const &rhs) const
 Overload > operator. More...
 
bool operator<= (SymGrp const &rhs) const
 Overload <= operator. More...
 
bool operator>= (SymGrp const &rhs) const
 Overload >= operator. More...
 
virtual bool addMember (SymFnc const *const symmetryFunction)=0
 Potentially add a member to group. More...
 
virtual void sortMembers ()=0
 Sort member symmetry functions. More...
 
virtual void setScalingFactors ()=0
 Fill scalingFactors with values from member symmetry functions. More...
 
virtual void calculate (Atom &atom, bool const derivatives) const =0
 Calculate all symmetry functions of this group for one atom. More...
 
virtual std::vector< std::string > parameterLines () const =0
 Give symmetry function group parameters on multiple lines. More...
 
void setIndex (std::size_t index)
 Set private index member variable. More...
 
std::size_t getIndex () const
 Get private index member variable. More...
 
std::size_t getType () const
 Get private type member variable. More...
 
std::size_t getEc () const
 Get private ec member variable. More...
 

Protected Member Functions

 SymGrpBaseCompAng (std::size_t type, ElementMap const &elementMap)
 Constructor, sets type. More...
 
virtual std::vector< SymFncBaseCompAng const * > getMembers () const =0
 Get symmetry function members. More...
 
- Protected Member Functions inherited from nnp::SymGrpBaseComp
 SymGrpBaseComp (std::size_t type, ElementMap const &elementMap)
 Constructor, sets type. More...
 
- Protected Member Functions inherited from nnp::SymGrp
 SymGrp (std::size_t type, ElementMap const &elementMap)
 Constructor, sets type. More...
 
std::string getPrintFormatCommon () const
 Get common parameter line format string. More...
 
std::string getPrintFormatMember () const
 Get member parameter line format string. More...
 

Protected Attributes

std::size_t e1
 Element index of neighbor atom 1 (common feature). More...
 
std::size_t e2
 Element index of neighbor atom 2 (common feature). More...
 
std::vector< bool > calculateComp
 Vector indicating whether compact function needs to be recalculated. More...
 
std::vector< double > mrl
 Member rl. More...
 
std::vector< double > mrc
 Member rc. More...
 
std::vector< double > mal
 Member angleLeft. More...
 
std::vector< double > mar
 Member angleRight. More...
 
std::vector< std::vector< std::vector< std::size_t > > > mci
 Member cache indices for actual neighbor element. More...
 
- Protected Attributes inherited from nnp::SymGrpBaseComp
double rmin
 Minimum radius within group. More...
 
double rmax
 Maximum radius within group. More...
 
- Protected Attributes inherited from nnp::SymGrp
std::size_t type
 Symmetry function type. More...
 
ElementMap elementMap
 Copy of element map. More...
 
std::size_t index
 Symmetry function group index. More...
 
std::size_t ec
 Element index of center atom (common feature). More...
 
double convLength
 Data set normalization length conversion factor. More...
 
std::vector< size_t > memberIndex
 Vector containing indices of all member symmetry functions. More...
 
std::vector< double > scalingFactors
 Scaling factors of all member symmetry functions. More...
 
std::set< std::string > parametersCommon
 Set of common parameters IDs. More...
 
std::set< std::string > parametersMember
 Set of common parameters IDs. More...
 
std::vector< std::vector< std::size_t > > memberIndexPerElement
 Vector containing per-element indices of all member symmetry functions. More...
 

Additional Inherited Members

- Protected Types inherited from nnp::SymGrp
typedef std::map< std::string, std::pair< std::string, std::string > > PrintFormat
 
typedef std::vector< std::string > PrintOrder
 
- Static Protected Member Functions inherited from nnp::SymGrp
static PrintFormat const initializePrintFormat ()
 Initialize static print format map for all possible parameters. More...
 
static PrintOrder const initializePrintOrder ()
 Initialize static print order vector for all possible parameters. More...
 
- Static Protected Attributes inherited from nnp::SymGrp
static PrintFormat const printFormat = initializePrintFormat()
 Map of parameter format strings and empty strings. More...
 
static PrintOrder const printOrder = initializePrintOrder()
 Vector of parameters in order of printing. More...
 

Detailed Description

Definition at line 32 of file SymGrpBaseCompAng.h.

Constructor & Destructor Documentation

◆ SymGrpBaseCompAng()

SymGrpBaseCompAng::SymGrpBaseCompAng ( std::size_t  type,
ElementMap const &  elementMap 
)
protected

Constructor, sets type.

Parameters
[in]typeType of symmetry functions grouped.
[in]elementMapElement Map used.

Definition at line 30 of file SymGrpBaseCompAng.cpp.

31 :
33 e1(0),
34 e2(0)
35{
36 parametersCommon.insert("e1");
37 parametersCommon.insert("e2");
38
39 parametersMember.insert("angleLeft");
40 parametersMember.insert("angleRight");
41 parametersMember.insert("calcexp");
42}
std::size_t e1
Element index of neighbor atom 1 (common feature).
std::size_t e2
Element index of neighbor atom 2 (common feature).
SymGrpBaseComp(std::size_t type, ElementMap const &elementMap)
Constructor, sets type.
std::size_t type
Symmetry function type.
Definition: SymGrp.h:106
std::set< std::string > parametersCommon
Set of common parameters IDs.
Definition: SymGrp.h:120
ElementMap elementMap
Copy of element map.
Definition: SymGrp.h:108
std::set< std::string > parametersMember
Set of common parameters IDs.
Definition: SymGrp.h:122

References nnp::SymGrp::parametersCommon, and nnp::SymGrp::parametersMember.

Member Function Documentation

◆ setScalingFactors()

void SymGrpBaseCompAng::setScalingFactors ( )
virtual

Fill scalingFactors with values from member symmetry functions.

Implements nnp::SymGrp.

Definition at line 44 of file SymGrpBaseCompAng.cpp.

45{
46 vector<SymFncBaseCompAng const*> members = getMembers();
47 scalingFactors.resize(members.size(), 0.0);
48 for (size_t i = 0; i < members.size(); i++)
49 {
50 scalingFactors.at(i) = members[i]->getScalingFactor();
51 }
52
53 return;
54}
virtual std::vector< SymFncBaseCompAng const * > getMembers() const =0
Get symmetry function members.
std::vector< double > scalingFactors
Scaling factors of all member symmetry functions.
Definition: SymGrp.h:118

References getMembers(), and nnp::SymGrp::scalingFactors.

Here is the call graph for this function:

◆ parameterLines()

vector< string > SymGrpBaseCompAng::parameterLines ( ) const
virtual

Give symmetry function group parameters on multiple lines.

Returns
Vector of string containing symmetry function parameters lines.

Implements nnp::SymGrp.

Definition at line 56 of file SymGrpBaseCompAng.cpp.

57{
58 vector<string> v;
59 vector<SymFncBaseCompAng const*> members = getMembers();
60
61 v.push_back(strpr(getPrintFormatCommon().c_str(),
62 index + 1,
63 elementMap[ec].c_str(),
64 type,
65 elementMap[e1].c_str(),
66 elementMap[e2].c_str(),
68 rmax / convLength));
69
70 for (size_t i = 0; i < members.size(); ++i)
71 {
72 v.push_back(strpr(getPrintFormatMember().c_str(),
73 members[i]->getSubtype().c_str(),
74 members[i]->getRl() / convLength,
75 members[i]->getRc() / convLength,
76 members[i]->getAngleLeft(),
77 members[i]->getAngleRight(),
78 members[i]->getLineNumber() + 1,
79 i + 1,
80 members[i]->getIndex() + 1,
81 calculateComp[i]));
82 }
83
84 return v;
85}
std::vector< bool > calculateComp
Vector indicating whether compact function needs to be recalculated.
double rmin
Minimum radius within group.
double rmax
Maximum radius within group.
std::size_t index
Symmetry function group index.
Definition: SymGrp.h:110
std::string getPrintFormatCommon() const
Get common parameter line format string.
Definition: SymGrp.cpp:97
std::size_t ec
Element index of center atom (common feature).
Definition: SymGrp.h:112
double convLength
Data set normalization length conversion factor.
Definition: SymGrp.h:114
std::size_t getIndex() const
Get private index member variable.
Definition: SymGrp.h:184
std::string getPrintFormatMember() const
Get member parameter line format string.
Definition: SymGrp.cpp:130
string strpr(const char *format,...)
String version of printf function.
Definition: utility.cpp:90

References calculateComp, nnp::SymGrp::convLength, e1, e2, nnp::SymGrp::ec, nnp::SymGrp::elementMap, nnp::SymGrp::getIndex(), getMembers(), nnp::SymGrp::getPrintFormatCommon(), nnp::SymGrp::getPrintFormatMember(), nnp::SymGrp::index, nnp::SymGrpBaseComp::rmax, nnp::SymGrpBaseComp::rmin, nnp::strpr(), and nnp::SymGrp::type.

Here is the call graph for this function:

◆ getMembers()

virtual std::vector< SymFncBaseCompAng const * > nnp::SymGrpBaseCompAng::getMembers ( ) const
protectedpure virtual

Get symmetry function members.

Returns
Vector of pointers casted to base class.

Implemented in nnp::SymGrpCompAngn, and nnp::SymGrpCompAngw.

Referenced by parameterLines(), and setScalingFactors().

Here is the caller graph for this function:

Member Data Documentation

◆ e1

◆ e2

◆ calculateComp

std::vector<bool> nnp::SymGrpBaseCompAng::calculateComp
protected

Vector indicating whether compact function needs to be recalculated.

Definition at line 62 of file SymGrpBaseCompAng.h.

Referenced by nnp::SymGrpCompAngn::calculate(), parameterLines(), nnp::SymGrpCompAngn::sortMembers(), and nnp::SymGrpCompAngw::sortMembers().

◆ mrl

std::vector<double> nnp::SymGrpBaseCompAng::mrl
protected

◆ mrc

std::vector<double> nnp::SymGrpBaseCompAng::mrc
protected

◆ mal

std::vector<double> nnp::SymGrpBaseCompAng::mal
protected

◆ mar

std::vector<double> nnp::SymGrpBaseCompAng::mar
protected

◆ mci

std::vector<std::vector< std::vector<std::size_t> > > nnp::SymGrpBaseCompAng::mci
protected

Member cache indices for actual neighbor element.

Definition at line 74 of file SymGrpBaseCompAng.h.

Referenced by nnp::SymGrpCompAngn::calculate(), nnp::SymGrpCompAngw::calculate(), nnp::SymGrpCompAngn::sortMembers(), and nnp::SymGrpCompAngw::sortMembers().


The documentation for this class was generated from the following files: