n2p2 - A neural network potential package
nnp::SymFncCompRad Class Reference

Radial symmetry function with compact support (type 20) More...

#include <SymFncCompRad.h>

Inheritance diagram for nnp::SymFncCompRad:
Collaboration diagram for nnp::SymFncCompRad:

Public Member Functions

 SymFncCompRad (ElementMap const &elementMap)
 Constructor, sets type = 20. More...
 
virtual bool operator== (SymFnc const &rhs) const
 Overload == operator. More...
 
virtual bool operator< (SymFnc const &rhs) const
 Overload < operator. More...
 
virtual void setParameters (std::string const &parameterString)
 Set symmetry function parameters. More...
 
virtual void changeLengthUnit (double convLength)
 Change length unit. More...
 
virtual std::string getSettingsLine () const
 Get settings file line from currently set parameters. More...
 
virtual void calculate (Atom &atom, bool const derivatives) const
 Calculate symmetry function for one atom. More...
 
void getCompactOnly (double const x, double &fx, double &dfx) const
 
virtual std::string parameterLine () const
 Give symmetry function parameters in one line. More...
 
virtual std::vector< std::string > parameterInfo () const
 Get description with parameter names and values. More...
 
std::size_t getE1 () const
 Get private e1 member variable. More...
 
virtual double calculateRadialPart (double distance) const
 Calculate (partial) symmetry function value for one given distance. More...
 
virtual double calculateAngularPart (double angle) const
 Calculate (partial) symmetry function value for one given angle. More...
 
virtual bool checkRelevantElement (std::size_t index) const
 Check whether symmetry function is relevant for given element. More...
 
virtual std::vector< std::string > getCacheIdentifiers () const
 Get unique cache identifiers. More...
 
- Public Member Functions inherited from nnp::SymFncBaseComp
virtual std::vector< std::string > parameterInfo () const
 Get description with parameter names and values. More...
 
void setCompactFunction (std::string subtype)
 Set radial compact function. More...
 
std::string getSubtype () const
 Get private subtype member variable. More...
 
double getRl () const
 Get private rl member variable. More...
 
- Public Member Functions inherited from nnp::SymFnc
virtual ~SymFnc ()
 Virtual destructor. More...
 
virtual bool operator== (SymFnc const &rhs) const =0
 Overload == operator. More...
 
virtual bool operator< (SymFnc const &rhs) const =0
 Overload < operator. More...
 
bool operator!= (SymFnc const &rhs) const
 Overload != operator. More...
 
bool operator> (SymFnc const &rhs) const
 Overload > operator. More...
 
bool operator<= (SymFnc const &rhs) const
 Overload <= operator. More...
 
bool operator>= (SymFnc const &rhs) const
 Overload >= operator. More...
 
virtual void setParameters (std::string const &parameterString)=0
 Set parameters. More...
 
virtual void changeLengthUnit (double convLength)=0
 Change length unit. More...
 
virtual std::string getSettingsLine () const =0
 Get settings file line from currently set parameters. More...
 
virtual void calculate (Atom &atom, bool const derivatives) const =0
 Calculate symmetry function for one atom. More...
 
virtual std::string parameterLine () const =0
 Give symmetry function parameters in one line. More...
 
virtual std::vector< std::string > parameterInfo () const
 Get description with parameter names and values. More...
 
void setScalingType (ScalingType scalingType, std::string statisticsLine, double Smin, double Smax)
 Set symmetry function scaling type. More...
 
double scale (double value) const
 Apply symmetry function scaling and/or centering. More...
 
double unscale (double value) const
 Undo symmetry function scaling and/or centering. More...
 
std::size_t getType () const
 Get private type member variable. More...
 
std::size_t getIndex () const
 Get private index member variable. More...
 
std::size_t getLineNumber () const
 Get private lineNumber member variable. More...
 
std::size_t getEc () const
 Get private ec member variable. More...
 
std::size_t getMinNeighbors () const
 Get private minNeighbors member variable. More...
 
double getRc () const
 Get private rc member variable. More...
 
double getGmin () const
 Get private Gmin member variable. More...
 
double getGmax () const
 Get private Gmax member variable. More...
 
double getScalingFactor () const
 Get private scalingFactor member variable. More...
 
double getConvLength () const
 Get private convLength member variable. More...
 
std::set< std::string > getParameters () const
 Get private parameters member variable. More...
 
std::vector< std::size_t > getIndexPerElement () const
 Get private indexPerElement member variable. More...
 
void setIndex (std::size_t index)
 Set private index member variable. More...
 
void setIndexPerElement (std::size_t elementIndex, std::size_t index)
 Set private indexPerElement member variable. More...
 
void setLineNumber (std::size_t lineNumber)
 Set line number. More...
 
std::string scalingLine () const
 Get string with scaling information. More...
 
virtual double calculateRadialPart (double distance) const =0
 Calculate (partial) symmetry function value for one given distance. More...
 
virtual double calculateAngularPart (double angle) const =0
 Calculate (partial) symmetry function value for one given angle. More...
 
virtual bool checkRelevantElement (std::size_t index) const =0
 Check whether symmetry function is relevant for given element. More...
 
virtual std::vector< std::string > getCacheIdentifiers () const
 Get unique cache identifiers. More...
 
void addCacheIndex (std::size_t element, std::size_t cacheIndex, std::string cacheIdentifier)
 Add one cache index for given neighbor element and check identifier. More...
 
std::vector< std::vector< std::size_t > > getCacheIndices () const
 Getter for cacheIndices. More...
 

Private Attributes

std::size_t e1
 Element index of neighbor atom. More...
 

Additional Inherited Members

- Public Types inherited from nnp::SymFnc
enum  ScalingType {
  ST_NONE , ST_SCALE , ST_CENTER , ST_SCALECENTER ,
  ST_SCALESIGMA
}
 List of available scaling types. More...
 
- Protected Types inherited from nnp::SymFnc
typedef std::map< std::string, std::pair< std::string, std::string > > PrintFormat
 
typedef std::vector< std::string > PrintOrder
 
- Protected Member Functions inherited from nnp::SymFncBaseComp
 SymFncBaseComp (std::size_t type, ElementMap const &)
 Constructor, initializes type. More...
 
- Protected Member Functions inherited from nnp::SymFnc
 SymFnc (std::size_t type, ElementMap const &)
 Constructor, initializes type. More...
 
std::string getPrintFormat () const
 Generate format string for symmetry function parameter printing. More...
 
- Static Protected Member Functions inherited from nnp::SymFnc
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...
 
- Protected Attributes inherited from nnp::SymFncBaseComp
bool asymmetric
 If asymmetric version of polynomials should be used. More...
 
double rl
 Lower bound of compact function, \(r_{l}\). More...
 
std::string subtype
 Subtype string (specifies e.g. polynom type). More...
 
CompactFunction cr
 Compact function for radial part. More...
 
- Protected Attributes inherited from nnp::SymFnc
std::size_t type
 Symmetry function type. More...
 
ElementMap elementMap
 Copy of element map. More...
 
std::size_t index
 Symmetry function index (per element). More...
 
std::size_t lineNumber
 Line number. More...
 
std::size_t ec
 Element index of center atom. More...
 
std::size_t minNeighbors
 Minimum number of neighbors required. More...
 
double Smin
 Minimum for scaling range. More...
 
double Smax
 Maximum for scaling range. More...
 
double Gmin
 Minimum unscaled symmetry function value. More...
 
double Gmax
 Maximum unscaled symmetry function value. More...
 
double Gmean
 Mean unscaled symmetry function value. More...
 
double Gsigma
 Sigma of unscaled symmetry function values. More...
 
double rc
 Cutoff radius \(r_c\). More...
 
double scalingFactor
 Scaling factor. More...
 
double convLength
 Data set normalization length conversion factor. More...
 
ScalingType scalingType
 Symmetry function scaling type used by this symmetry function. More...
 
std::set< std::string > parameters
 Set with symmetry function parameter IDs (lookup for printing). More...
 
std::vector< std::size_t > indexPerElement
 Per-element index for derivative memory in Atom::Neighbor::dGdr arrays. More...
 
std::vector< std::vector< std::size_t > > cacheIndices
 Cache indices for each element. More...
 
- Static Protected Attributes inherited from nnp::SymFnc
static std::size_t const sfinfoWidth = 12
 Width of the SFINFO parameter description field (see parameterInfo()). More...
 
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

Radial symmetry function with compact support (type 20)

\[ G^{20}_i = \sum_{\substack{j \neq i}} C(r_{ij}, r_l, r_c), \]

where \(C(x, x_\text{low}, x_\text{high})\) is a function with compact support \(\left[x_\text{low}, x_\text{high}\right]\).

Parameter string:

<element-central> 20 <element-neighbor> <rlow> <rcutoff> <subtype>
std::string subtype
Subtype string (specifies e.g. polynom type).

where

  • <element-central> .... element symbol of central atom
  • <element-neighbor> ... element symbol of neighbor atom
  • <rlow> ............... low radius boundary \(r_{l}\)
  • <rcutoff> ............ high radius boundary \(r_{c}\)
  • <subtype> ............ compact function specifier

See the description of SymFncBaseComp::setCompactFunction() for possible values of the <subtype> argument.

Definition at line 55 of file SymFncCompRad.h.

Constructor & Destructor Documentation

◆ SymFncCompRad()

SymFncCompRad::SymFncCompRad ( ElementMap const &  elementMap)

Constructor, sets type = 20.

Definition at line 31 of file SymFncCompRad.cpp.

31 :
33 e1(0)
34{
35 minNeighbors = 1;
36 parameters.insert("e1");
37}
SymFncBaseComp(std::size_t type, ElementMap const &)
Constructor, initializes type.
std::size_t e1
Element index of neighbor atom.
std::set< std::string > parameters
Set with symmetry function parameter IDs (lookup for printing).
Definition: SymFnc.h:300
ElementMap elementMap
Copy of element map.
Definition: SymFnc.h:270
std::size_t minNeighbors
Minimum number of neighbors required.
Definition: SymFnc.h:278

References nnp::SymFnc::minNeighbors, and nnp::SymFnc::parameters.

Member Function Documentation

◆ operator==()

bool SymFncCompRad::operator== ( SymFnc const &  rhs) const
virtual

Overload == operator.

Implements nnp::SymFnc.

Definition at line 39 of file SymFncCompRad.cpp.

40{
41 if (ec != rhs.getEc() ) return false;
42 if (type != rhs.getType()) return false;
43 SymFncCompRad const& c = dynamic_cast<SymFncCompRad const&>(rhs);
44 if (subtype != c.getSubtype()) return false;
45 if (e1 != c.e1 ) return false;
46 if (rc != c.rc ) return false;
47 if (rl != c.rl ) return false;
48 return true;
49}
std::string getSubtype() const
Get private subtype member variable.
double rl
Lower bound of compact function, .
Radial symmetry function with compact support (type 20)
Definition: SymFncCompRad.h:56
std::size_t type
Symmetry function type.
Definition: SymFnc.h:268
double rc
Cutoff radius .
Definition: SymFnc.h:292
std::size_t ec
Element index of center atom.
Definition: SymFnc.h:276

References e1, nnp::SymFnc::ec, nnp::SymFnc::getEc(), nnp::SymFncBaseComp::getSubtype(), nnp::SymFnc::getType(), nnp::SymFnc::rc, nnp::SymFncBaseComp::rl, nnp::SymFncBaseComp::subtype, and nnp::SymFnc::type.

Here is the call graph for this function:

◆ operator<()

bool SymFncCompRad::operator< ( SymFnc const &  rhs) const
virtual

Overload < operator.

Implements nnp::SymFnc.

Definition at line 51 of file SymFncCompRad.cpp.

52{
53 if (ec < rhs.getEc() ) return true;
54 else if (ec > rhs.getEc() ) return false;
55 if (type < rhs.getType()) return true;
56 else if (type > rhs.getType()) return false;
57 SymFncCompRad const& c = dynamic_cast<SymFncCompRad const&>(rhs);
58 if (subtype < c.getSubtype()) return true;
59 else if (subtype > c.getSubtype()) return false;
60 if (e1 < c.e1 ) return true;
61 else if (e1 > c.e1 ) return false;
62 if (rc < c.rc ) return true;
63 else if (rc > c.rc ) return false;
64 if (rl < c.rl ) return true;
65 else if (rl > c.rl ) return false;
66 return false;
67}

References e1, nnp::SymFnc::ec, nnp::SymFnc::getEc(), nnp::SymFncBaseComp::getSubtype(), nnp::SymFnc::getType(), nnp::SymFnc::rc, nnp::SymFncBaseComp::rl, nnp::SymFncBaseComp::subtype, and nnp::SymFnc::type.

Here is the call graph for this function:

◆ setParameters()

void SymFncCompRad::setParameters ( std::string const &  parameterString)
virtual

Set symmetry function parameters.

Parameters
[in]parameterStringString containing radial symmetry function parameters.

Implements nnp::SymFnc.

Definition at line 69 of file SymFncCompRad.cpp.

70{
71 vector<string> splitLine = split(reduce(parameterString));
72
73 if (type != (size_t)atoi(splitLine.at(1).c_str()))
74 {
75 throw runtime_error("ERROR: Incorrect symmetry function type.\n");
76 }
77
78 ec = elementMap[splitLine.at(0)];
79 e1 = elementMap[splitLine.at(2)];
80 rl = atof(splitLine.at(3).c_str());
81 rc = atof(splitLine.at(4).c_str());
82 subtype = splitLine.at(5);
83
84 if (rl > rc)
85 {
86 throw runtime_error("ERROR: Lower radial boundary >= upper "
87 "radial boundary.\n");
88 }
89 //if (rl < 0.0 && abs(rl + rc) > numeric_limits<double>::epsilon())
90 //{
91 // throw runtime_error("ERROR: Radial function not symmetric "
92 // "w.r.t. origin.\n");
93 //}
94
97
98 return;
99}
void setLeftRight(double left, double right)
Set left and right boundary.
CompactFunction cr
Compact function for radial part.
void setCompactFunction(std::string subtype)
Set radial compact function.
vector< string > split(string const &input, char delimiter)
Split string at each delimiter.
Definition: utility.cpp:33
string reduce(string const &line, string const &whitespace, string const &fill)
Replace multiple whitespaces with fill.
Definition: utility.cpp:60

References nnp::SymFncBaseComp::cr, e1, nnp::SymFnc::ec, nnp::SymFnc::elementMap, nnp::SymFnc::rc, nnp::reduce(), nnp::SymFncBaseComp::rl, nnp::SymFncBaseComp::setCompactFunction(), nnp::CompactFunction::setLeftRight(), nnp::split(), nnp::SymFncBaseComp::subtype, and nnp::SymFnc::type.

Here is the call graph for this function:

◆ changeLengthUnit()

void SymFncCompRad::changeLengthUnit ( double  convLength)
virtual

Change length unit.

Parameters
[in]convLengthMultiplicative length unit conversion factor.

Implements nnp::SymFnc.

Definition at line 101 of file SymFncCompRad.cpp.

102{
103 this->convLength = convLength;
104 rl *= convLength;
105 rc *= convLength;
106
108
109 return;
110}
double convLength
Data set normalization length conversion factor.
Definition: SymFnc.h:296

References nnp::SymFnc::convLength, nnp::SymFncBaseComp::cr, nnp::SymFnc::rc, nnp::SymFncBaseComp::rl, and nnp::CompactFunction::setLeftRight().

Here is the call graph for this function:

◆ getSettingsLine()

string SymFncCompRad::getSettingsLine ( ) const
virtual

Get settings file line from currently set parameters.

Returns
Settings file string ("symfunction_short ...").

Implements nnp::SymFnc.

Definition at line 112 of file SymFncCompRad.cpp.

113{
114 string s = strpr("symfunction_short %2s %2zu %2s %16.8E %16.8E %s\n",
115 elementMap[ec].c_str(),
116 type,
117 elementMap[e1].c_str(),
118 rl / convLength,
119 rc / convLength,
120 subtype.c_str());
121
122 return s;
123}
string strpr(const char *format,...)
String version of printf function.
Definition: utility.cpp:90

References nnp::SymFnc::convLength, e1, nnp::SymFnc::ec, nnp::SymFnc::elementMap, nnp::SymFnc::rc, nnp::SymFncBaseComp::rl, nnp::strpr(), nnp::SymFncBaseComp::subtype, and nnp::SymFnc::type.

Here is the call graph for this function:

◆ calculate()

void SymFncCompRad::calculate ( Atom atom,
bool const  derivatives 
) const
virtual

Calculate symmetry function for one atom.

Parameters
[in,out]atomAtom for which the symmetry function is caluclated.
[in]derivativesIf also symmetry function derivatives will be calculated and saved.

Implements nnp::SymFnc.

Definition at line 125 of file SymFncCompRad.cpp.

126{
127 double result = 0.0;
128#ifndef N2P2_NO_SF_CACHE
129 bool unique = true;
130 size_t c0 = 0;
131 size_t c1 = 0;
132 if (cacheIndices.at(e1).size() > 0)
133 {
134 unique = false;
135 c0 = cacheIndices.at(e1).at(0);
136 c1 = cacheIndices.at(e1).at(1);
137 }
138#endif
139
140 for (size_t j = 0; j < atom.numNeighbors; ++j)
141 {
142 Atom::Neighbor& n = atom.neighbors[j];
143 if (e1 == n.element && n.d > rl && n.d < rc)
144 {
145 // Energy calculation.
146 double const rij = n.d;
147
148 double rad;
149 double drad;
150 double r = rij;
151#ifndef N2P2_NO_SF_CACHE
152 if (unique) cr.fdf(r, rad, drad);
153 else
154 {
155 double& crad = n.cache[c0];
156 double& cdrad = n.cache[c1];
157 if (crad < 0) cr.fdf(r, crad, cdrad);
158 rad = crad;
159 drad = cdrad;
160 }
161#else
162 cr.fdf(r, rad, drad);
163#endif
164 result += rad;
165
166 // Force calculation.
167 if (!derivatives) continue;
168 double const p1 = scalingFactor * drad / rij;
169 Vec3D dij = p1 * n.dr;
170 // Save force contributions in Atom storage.
171 atom.dGdr[index] += dij;
172#ifndef N2P2_FULL_SFD_MEMORY
173 n.dGdr[indexPerElement[e1]] -= dij;
174#else
175 n.dGdr[index] -= dij;
176#endif
177 }
178 }
179
180 atom.G[index] = scale(result);
181
182 return;
183}
void fdf(double a, double &fa, double &dfa) const
Calculate compact function and derivative at once.
std::size_t index
Symmetry function index (per element).
Definition: SymFnc.h:272
double scalingFactor
Scaling factor.
Definition: SymFnc.h:294
std::vector< std::vector< std::size_t > > cacheIndices
Cache indices for each element.
Definition: SymFnc.h:306
double scale(double value) const
Apply symmetry function scaling and/or centering.
Definition: SymFnc.cpp:169
std::vector< std::size_t > indexPerElement
Per-element index for derivative memory in Atom::Neighbor::dGdr arrays.
Definition: SymFnc.h:302
Struct to store information on neighbor atoms.
Definition: Atom.h:36
std::vector< double > cache
Symmetry function cache (e.g. for cutoffs, compact functions).
Definition: Atom.h:49
std::size_t element
Element index of neighbor atom.
Definition: Atom.h:42
double d
Distance to neighbor atom.
Definition: Atom.h:44
Vec3D dr
Distance vector to neighbor atom.
Definition: Atom.h:46
std::vector< Vec3D > dGdr
Derivatives of symmetry functions with respect to neighbor coordinates.
Definition: Atom.h:60
std::vector< Neighbor > neighbors
Neighbor array (maximum number defined in macros.h.
Definition: Atom.h:170
std::vector< Vec3D > dGdr
Derivative of symmetry functions with respect to this atom's coordinates.
Definition: Atom.h:161
std::vector< double > G
Symmetry function values.
Definition: Atom.h:146
std::size_t numNeighbors
Total number of neighbors.
Definition: Atom.h:109
Vector in 3 dimensional real space.
Definition: Vec3D.h:30

References nnp::Atom::Neighbor::cache, nnp::SymFnc::cacheIndices, nnp::SymFncBaseComp::cr, nnp::Atom::Neighbor::d, nnp::Atom::Neighbor::dGdr, nnp::Atom::dGdr, nnp::Atom::Neighbor::dr, e1, nnp::Atom::Neighbor::element, nnp::CompactFunction::fdf(), nnp::Atom::G, nnp::SymFnc::index, nnp::SymFnc::indexPerElement, nnp::Atom::neighbors, nnp::Atom::numNeighbors, nnp::SymFnc::rc, nnp::SymFncBaseComp::rl, nnp::SymFnc::scale(), and nnp::SymFnc::scalingFactor.

Here is the call graph for this function:

◆ getCompactOnly()

void nnp::SymFncCompRad::getCompactOnly ( double const  x,
double &  fx,
double &  dfx 
) const
inline

Definition at line 148 of file SymFncCompRad.h.

151{
152 cr.fdf(x, fx, dfx);
153 return;
154}

References nnp::SymFncBaseComp::cr, and nnp::CompactFunction::fdf().

Referenced by nnp::SymGrpCompRad::calculate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parameterLine()

string SymFncCompRad::parameterLine ( ) const
virtual

Give symmetry function parameters in one line.

Returns
String containing symmetry function parameter values.

Implements nnp::SymFnc.

Definition at line 185 of file SymFncCompRad.cpp.

186{
187 return strpr(getPrintFormat().c_str(),
188 index + 1,
189 elementMap[ec].c_str(),
190 type,
191 subtype.c_str(),
192 elementMap[e1].c_str(),
193 rl / convLength,
194 rc / convLength,
195 lineNumber + 1);
196}
std::size_t lineNumber
Line number.
Definition: SymFnc.h:274
std::string getPrintFormat() const
Generate format string for symmetry function parameter printing.
Definition: SymFnc.cpp:285

References nnp::SymFnc::convLength, e1, nnp::SymFnc::ec, nnp::SymFnc::elementMap, nnp::SymFnc::getPrintFormat(), nnp::SymFnc::index, nnp::SymFnc::lineNumber, nnp::SymFnc::rc, nnp::SymFncBaseComp::rl, nnp::strpr(), nnp::SymFncBaseComp::subtype, and nnp::SymFnc::type.

Here is the call graph for this function:

◆ parameterInfo()

vector< string > SymFncCompRad::parameterInfo ( ) const
virtual

Get description with parameter names and values.

Returns
Vector of parameter description strings.

Reimplemented from nnp::SymFncBaseComp.

Definition at line 198 of file SymFncCompRad.cpp.

199{
200 vector<string> v = SymFncBaseComp::parameterInfo();
201 string s;
202 size_t w = sfinfoWidth;
203
204 s = "e1";
205 v.push_back(strpr((pad(s, w) + "%s").c_str(), elementMap[e1].c_str()));
206
207 return v;
208}
virtual std::vector< std::string > parameterInfo() const
Get description with parameter names and values.
static std::size_t const sfinfoWidth
Width of the SFINFO parameter description field (see parameterInfo()).
Definition: SymFnc.h:309
string pad(string const &input, size_t num, char fill, bool right)
Definition: utility.cpp:79

References e1, nnp::SymFnc::elementMap, nnp::pad(), nnp::SymFncBaseComp::parameterInfo(), nnp::SymFnc::sfinfoWidth, and nnp::strpr().

Here is the call graph for this function:

◆ getE1()

std::size_t nnp::SymFncCompRad::getE1 ( ) const
inline

Get private e1 member variable.

Definition at line 146 of file SymFncCompRad.h.

146{ return e1; }

References e1.

Referenced by nnp::SymGrpCompRad::addMember().

Here is the caller graph for this function:

◆ calculateRadialPart()

double SymFncCompRad::calculateRadialPart ( double  distance) const
virtual

Calculate (partial) symmetry function value for one given distance.

Parameters
[in]distanceDistance between two atoms.
Returns
\( e^{-\eta (r - r_s)^2} f_c(r)\)

Implements nnp::SymFnc.

Definition at line 210 of file SymFncCompRad.cpp.

211{
212 double const& r = distance * convLength;
213
214 return cr.f(r);
215}
double f(double a) const
Compact function .

References nnp::SymFnc::convLength, nnp::SymFncBaseComp::cr, and nnp::CompactFunction::f().

Here is the call graph for this function:

◆ calculateAngularPart()

double SymFncCompRad::calculateAngularPart ( double  angle) const
virtual

Calculate (partial) symmetry function value for one given angle.

Parameters
[in]angleAngle between triplet of atoms (in radians).
Returns
\(1\)

Implements nnp::SymFnc.

Definition at line 217 of file SymFncCompRad.cpp.

218{
219 return 1.0;
220}

◆ checkRelevantElement()

bool SymFncCompRad::checkRelevantElement ( std::size_t  index) const
virtual

Check whether symmetry function is relevant for given element.

Parameters
[in]indexIndex of given element.
Returns
True if symmetry function is sensitive to given element, false otherwise.

Implements nnp::SymFnc.

Definition at line 222 of file SymFncCompRad.cpp.

223{
224 if (index == e1) return true;
225 else return false;
226}

References e1, and nnp::SymFnc::index.

◆ getCacheIdentifiers()

vector< string > SymFncCompRad::getCacheIdentifiers ( ) const
virtual

Get unique cache identifiers.

Returns
Vector of string identifying the type of cache this symmetry function requires.

Reimplemented from nnp::SymFnc.

Definition at line 229 of file SymFncCompRad.cpp.

230{
231 vector<string> v;
232 string s("");
233
234 s += subtype;
235 s += " ";
236 s += strpr("rl = %16.8E", rl / convLength);
237 s += " ";
238 s += strpr("rc = %16.8E", rc / convLength);
239
240 v.push_back(strpr("%zu f ", e1) + s);
241 v.push_back(strpr("%zu df ", e1) + s);
242
243 return v;
244}

References nnp::SymFnc::convLength, e1, nnp::SymFnc::rc, nnp::SymFncBaseComp::rl, nnp::strpr(), and nnp::SymFncBaseComp::subtype.

Here is the call graph for this function:

Member Data Documentation

◆ e1

std::size_t nnp::SymFncCompRad::e1
private

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