|
n2p2 - A neural network potential package
|
Angular symmetry function (type 3) More...
#include <SymFncExpAngn.h>


Public Member Functions | |
| SymFncExpAngn (ElementMap const &elementMap) | |
| Constructor, sets type = 3. | |
| virtual bool | operator== (SymFnc const &rhs) const |
| Overload == operator. | |
| virtual bool | operator< (SymFnc const &rhs) const |
| Overload < operator. | |
| virtual void | calculate (Atom &atom, bool const derivatives) const |
| Calculate symmetry function for one atom. | |
Public Member Functions inherited from nnp::SymFncBaseExpAng | |
| virtual void | setParameters (std::string const ¶meterString) |
| Set symmetry function parameters. | |
| virtual void | changeLengthUnit (double convLength) |
| Change length unit. | |
| virtual std::string | getSettingsLine () const |
| Get settings file line from currently set parameters. | |
| virtual std::string | parameterLine () const |
| Give symmetry function parameters in one line. | |
| virtual std::vector< std::string > | parameterInfo () const |
| Get description with parameter names and values. | |
| virtual double | calculateRadialPart (double distance) const |
| Calculate (partial) symmetry function value for one given distance. | |
| virtual double | calculateAngularPart (double angle) const |
| Calculate (partial) symmetry function value for one given angle. | |
| virtual bool | checkRelevantElement (std::size_t index) const |
| Check whether symmetry function is relevant for given element. | |
| virtual std::vector< std::string > | getCacheIdentifiers () const |
| Get unique cache identifiers. | |
| bool | getUseIntegerPow () const |
| Get private useIntegerPow member variable. | |
| std::size_t | getE1 () const |
| Get private e1 member variable. | |
| std::size_t | getE2 () const |
| Get private e2 member variable. | |
| int | getZetaInt () const |
| Get private zetaInt member variable. | |
| double | getLambda () const |
| Get private lambda member variable. | |
| double | getEta () const |
| Get private eta member variable. | |
| double | getZeta () const |
| Get private zeta member variable. | |
| double | getRs () const |
| Get private rs member variable. | |
Public Member Functions inherited from nnp::SymFncBaseCutoff | |
| void | setCutoffFunction (CutoffFunction::CutoffType cutoffType, double cutoffAlpha) |
| Set cutoff function type and parameter. | |
| double | getCutoffAlpha () const |
| Get private cutoffAlpha member variable. | |
| std::string | getSubtype () const |
| Get private subtype member variable. | |
| CutoffFunction::CutoffType | getCutoffType () const |
| Get private cutoffType member variable. | |
Public Member Functions inherited from nnp::SymFnc | |
| virtual | ~SymFnc () |
| Virtual destructor. | |
| bool | operator!= (SymFnc const &rhs) const |
| Overload != operator. | |
| bool | operator> (SymFnc const &rhs) const |
| Overload > operator. | |
| bool | operator<= (SymFnc const &rhs) const |
| Overload <= operator. | |
| bool | operator>= (SymFnc const &rhs) const |
| Overload >= operator. | |
| void | setScalingType (ScalingType scalingType, std::string statisticsLine, double Smin, double Smax) |
| Set symmetry function scaling type. | |
| double | scale (double value) const |
| Apply symmetry function scaling and/or centering. | |
| double | unscale (double value) const |
| Undo symmetry function scaling and/or centering. | |
| std::size_t | getType () const |
| Get private type member variable. | |
| std::size_t | getIndex () const |
| Get private index member variable. | |
| std::size_t | getLineNumber () const |
| Get private lineNumber member variable. | |
| std::size_t | getEc () const |
| Get private ec member variable. | |
| std::size_t | getMinNeighbors () const |
| Get private minNeighbors member variable. | |
| double | getRc () const |
| Get private rc member variable. | |
| double | getGmin () const |
| Get private Gmin member variable. | |
| double | getGmax () const |
| Get private Gmax member variable. | |
| double | getScalingFactor () const |
| Get private scalingFactor member variable. | |
| double | getConvLength () const |
| Get private convLength member variable. | |
| std::set< std::string > | getParameters () const |
| Get private parameters member variable. | |
| std::vector< std::size_t > | getIndexPerElement () const |
| Get private indexPerElement member variable. | |
| void | setIndex (std::size_t index) |
| Set private index member variable. | |
| void | setIndexPerElement (std::size_t elementIndex, std::size_t index) |
| Set private indexPerElement member variable. | |
| void | setLineNumber (std::size_t lineNumber) |
| Set line number. | |
| std::string | scalingLine () const |
| Get string with scaling information. | |
| void | addCacheIndex (std::size_t element, std::size_t cacheIndex, std::string cacheIdentifier) |
| Add one cache index for given neighbor element and check identifier. | |
| std::vector< std::vector< std::size_t > > | getCacheIndices () const |
| Getter for cacheIndices. | |
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::SymFncBaseExpAng | |
| SymFncBaseExpAng (std::size_t type, ElementMap const &) | |
| Constructor, initializes type. | |
Protected Member Functions inherited from nnp::SymFncBaseCutoff | |
| SymFncBaseCutoff (std::size_t type, ElementMap const &) | |
| Constructor, initializes type. | |
Protected Member Functions inherited from nnp::SymFnc | |
| SymFnc (std::size_t type, ElementMap const &) | |
| Constructor, initializes type. | |
| std::string | getPrintFormat () const |
| Generate format string for symmetry function parameter printing. | |
Static Protected Member Functions inherited from nnp::SymFnc | |
| static PrintFormat const | initializePrintFormat () |
| Initialize static print format map for all possible parameters. | |
| static PrintOrder const | initializePrintOrder () |
| Initialize static print order vector for all possible parameters. | |
Protected Attributes inherited from nnp::SymFncBaseExpAng | |
| bool | useIntegerPow |
| Whether to use integer version of power function (faster). | |
| std::size_t | e1 |
| Element index of neighbor atom 1. | |
| std::size_t | e2 |
| Element index of neighbor atom 2. | |
| int | zetaInt |
| Integer version of \(\zeta\). | |
| double | lambda |
| Cosine shift factor. | |
| double | eta |
| Width \(\eta\) of gaussian. | |
| double | zeta |
| Exponent \(\zeta\) of cosine term. | |
| double | rs |
| Shift \(r_s\) of gaussian. | |
Protected Attributes inherited from nnp::SymFncBaseCutoff | |
| double | cutoffAlpha |
| Cutoff parameter \(\alpha\). | |
| std::string | subtype |
| Subtype string (specifies cutoff type). | |
| CutoffFunction | fc |
| Cutoff function used by this symmetry function. | |
| CutoffFunction::CutoffType | cutoffType |
| Cutoff type used by this symmetry function. | |
Protected Attributes inherited from nnp::SymFnc | |
| std::size_t | type |
| Symmetry function type. | |
| ElementMap | elementMap |
| Copy of element map. | |
| std::size_t | index |
| Symmetry function index (per element). | |
| std::size_t | lineNumber |
| Line number. | |
| std::size_t | ec |
| Element index of center atom. | |
| std::size_t | minNeighbors |
| Minimum number of neighbors required. | |
| double | Smin |
| Minimum for scaling range. | |
| double | Smax |
| Maximum for scaling range. | |
| double | Gmin |
| Minimum unscaled symmetry function value. | |
| double | Gmax |
| Maximum unscaled symmetry function value. | |
| double | Gmean |
| Mean unscaled symmetry function value. | |
| double | Gsigma |
| Sigma of unscaled symmetry function values. | |
| double | rc |
| Cutoff radius \(r_c\). | |
| double | scalingFactor |
| Scaling factor. | |
| double | convLength |
| Data set normalization length conversion factor. | |
| ScalingType | scalingType |
| Symmetry function scaling type used by this symmetry function. | |
| std::set< std::string > | parameters |
| Set with symmetry function parameter IDs (lookup for printing). | |
| std::vector< std::size_t > | indexPerElement |
| Per-element index for derivative memory in Atom::Neighbor::dGdr arrays. | |
| std::vector< std::vector< std::size_t > > | cacheIndices |
| Cache indices for each element. | |
Static Protected Attributes inherited from nnp::SymFnc | |
| static std::size_t const | sfinfoWidth = 12 |
| Width of the SFINFO parameter description field (see parameterInfo()). | |
| static PrintFormat const | printFormat = initializePrintFormat() |
| Map of parameter format strings and empty strings. | |
| static PrintOrder const | printOrder = initializePrintOrder() |
| Vector of parameters in order of printing. | |
Angular symmetry function (type 3)
\[ G^3_i = 2^{1-\zeta} \sum_{\substack{j,k\neq i \\ j < k}} \left( 1 + \lambda \cos \theta_{ijk} \right)^\zeta \mathrm{e}^{-\eta( (r_{ij}-r_s)^2 + (r_{ik}-r_s)^2 + (r_{jk}-r_s)^2 ) } f_c(r_{ij}) f_c(r_{ik}) f_c(r_{jk}) \]
Parameter string:
where
<element-central> ..... element symbol of central atom<element-neighbor1> ... element symbol of neighbor atom 1<element-neighbor2> ... element symbol of neighbor atom 2<eta> ................. \(\eta\)<lambda> .............. \(\lambda\)<zeta> ................ \(\zeta\)<rcutoff> ............. \(r_c\)<<rshift>> ............ \(r_s\) (optional, default \(r_s = 0\)) Definition at line 54 of file SymFncExpAngn.h.
| SymFncExpAngn::SymFncExpAngn | ( | ElementMap const & | elementMap | ) |
Constructor, sets type = 3.
Definition at line 30 of file SymFncExpAngn.cpp.
References nnp::SymFnc::elementMap, and nnp::SymFncBaseExpAng::SymFncBaseExpAng().
Referenced by operator<(), and operator==().


|
virtual |
Overload == operator.
Implements nnp::SymFnc.
Definition at line 35 of file SymFncExpAngn.cpp.
References nnp::SymFncBaseCutoff::cutoffAlpha, nnp::SymFncBaseCutoff::cutoffType, nnp::SymFncBaseExpAng::e1, nnp::SymFncBaseExpAng::e2, nnp::SymFnc::ec, nnp::SymFncBaseExpAng::eta, nnp::SymFnc::getEc(), nnp::SymFnc::getType(), nnp::SymFncBaseExpAng::lambda, nnp::SymFnc::rc, SymFncExpAngn(), nnp::SymFnc::type, and nnp::SymFncBaseExpAng::zeta.

|
virtual |
Overload < operator.
Implements nnp::SymFnc.
Definition at line 51 of file SymFncExpAngn.cpp.
References nnp::SymFncBaseCutoff::cutoffAlpha, nnp::SymFncBaseCutoff::cutoffType, nnp::SymFncBaseExpAng::e1, nnp::SymFncBaseExpAng::e2, nnp::SymFnc::ec, nnp::SymFncBaseExpAng::eta, nnp::SymFnc::getEc(), nnp::SymFnc::getType(), nnp::SymFncBaseExpAng::lambda, nnp::SymFnc::rc, nnp::SymFncBaseExpAng::rs, SymFncExpAngn(), nnp::SymFnc::type, and nnp::SymFncBaseExpAng::zeta.

|
virtual |
Calculate symmetry function for one atom.
| [in,out] | atom | Atom for which the symmetry function is caluclated. |
| [in] | derivatives | If also symmetry function derivatives will be calculated and saved. |
Implements nnp::SymFnc.
Definition at line 79 of file SymFncExpAngn.cpp.
References nnp::Atom::Neighbor::cache, nnp::SymFnc::cacheIndices, nnp::Atom::Neighbor::d, nnp::Atom::dGdr, nnp::Atom::Neighbor::dGdr, nnp::Atom::Neighbor::dr, nnp::SymFncBaseExpAng::e1, nnp::SymFncBaseExpAng::e2, nnp::Atom::Neighbor::element, nnp::SymFncBaseExpAng::eta, nnp::SymFncBaseCutoff::fc, nnp::Atom::G, nnp::Atom::getStoredMinNumNeighbors(), nnp::SymFnc::index, nnp::SymFnc::indexPerElement, nnp::SymFncBaseExpAng::lambda, nnp::Atom::neighbors, nnp::Vec3D::norm2(), nnp::pow_int(), nnp::SymFnc::rc, nnp::SymFncBaseExpAng::rs, nnp::SymFnc::scale(), nnp::SymFnc::scalingFactor, nnp::SymFncBaseExpAng::useIntegerPow, nnp::SymFncBaseExpAng::zeta, and nnp::SymFncBaseExpAng::zetaInt.
