| 
    n2p2 - A neural network potential package
    
   | 
 
Radial symmetry function with compact support (type 20) More...
#include <SymFncCompRad.h>


Public Member Functions | |
| SymFncCompRad (ElementMap const &elementMap) | |
| Constructor, sets type = 20.   | |
| virtual bool | operator== (SymFnc const &rhs) const | 
| Overload == operator.   | |
| virtual bool | operator< (SymFnc const &rhs) const | 
| Overload < operator.   | |
| 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 void | calculate (Atom &atom, bool const derivatives) const | 
| Calculate symmetry function for one atom.   | |
| void | getCompactOnly (double const x, double &fx, double &dfx) const | 
| 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.   | |
| std::size_t | getE1 () const | 
| Get private e1 member variable.   | |
| 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.   | |
  Public Member Functions inherited from nnp::SymFncBaseComp | |
| void | setCompactFunction (std::string subtype) | 
| Set radial compact function.   | |
| std::string | getSubtype () const | 
| Get private subtype member variable.   | |
| double | getRl () const | 
| Get private rl 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.   | |
Private Attributes | |
| std::size_t | e1 | 
| Element index of neighbor atom.   | |
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.   | |
  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::SymFncBaseComp | |
| bool | asymmetric | 
| If asymmetric version of polynomials should be used.   | |
| double | rl | 
| Lower bound of compact function, \(r_{l}\).   | |
| std::string | subtype | 
| Subtype string (specifies e.g. polynom type).   | |
| CompactFunction | cr | 
| Compact function for radial part.   | |
  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.   | |
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:
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 specifierSee the description of SymFncBaseComp::setCompactFunction() for possible values of the <subtype> argument. 
Definition at line 55 of file SymFncCompRad.h.
| SymFncCompRad::SymFncCompRad | ( | ElementMap const & | elementMap | ) | 
Constructor, sets type = 20.
Definition at line 31 of file SymFncCompRad.cpp.
References e1, nnp::SymFnc::elementMap, nnp::SymFnc::minNeighbors, nnp::SymFnc::parameters, and nnp::SymFncBaseComp::SymFncBaseComp().
Referenced by operator<(), and operator==().


      
  | 
  virtual | 
Overload == operator.
Implements nnp::SymFnc.
Definition at line 39 of file SymFncCompRad.cpp.
References e1, nnp::SymFnc::ec, nnp::SymFnc::getEc(), nnp::SymFncBaseComp::getSubtype(), nnp::SymFnc::getType(), nnp::SymFnc::rc, nnp::SymFncBaseComp::rl, nnp::SymFncBaseComp::subtype, SymFncCompRad(), and nnp::SymFnc::type.

      
  | 
  virtual | 
Overload < operator.
Implements nnp::SymFnc.
Definition at line 51 of file SymFncCompRad.cpp.
References e1, nnp::SymFnc::ec, nnp::SymFnc::getEc(), nnp::SymFncBaseComp::getSubtype(), nnp::SymFnc::getType(), nnp::SymFnc::rc, nnp::SymFncBaseComp::rl, nnp::SymFncBaseComp::subtype, SymFncCompRad(), and nnp::SymFnc::type.

      
  | 
  virtual | 
Set symmetry function parameters.
| [in] | parameterString | String containing radial symmetry function parameters. | 
Implements nnp::SymFnc.
Definition at line 69 of file SymFncCompRad.cpp.
References nnp::SymFncBaseComp::cr, e1, nnp::SymFnc::ec, nnp::SymFnc::elementMap, nnp::SymFnc::rc, nnp::reduce(), nnp::SymFncBaseComp::rl, nnp::SymFncBaseComp::setCompactFunction(), nnp::split(), nnp::SymFncBaseComp::subtype, and nnp::SymFnc::type.

      
  | 
  virtual | 
Change length unit.
| [in] | convLength | Multiplicative length unit conversion factor. | 
Implements nnp::SymFnc.
Definition at line 101 of file SymFncCompRad.cpp.
References nnp::SymFnc::convLength, nnp::SymFncBaseComp::cr, nnp::SymFnc::rc, and nnp::SymFncBaseComp::rl.
      
  | 
  virtual | 
Get settings file line from currently set parameters.
Implements nnp::SymFnc.
Definition at line 112 of file SymFncCompRad.cpp.
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.

      
  | 
  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 125 of file SymFncCompRad.cpp.
References nnp::Atom::Neighbor::cache, nnp::SymFnc::cacheIndices, nnp::SymFncBaseComp::cr, nnp::Atom::Neighbor::d, nnp::Atom::dGdr, nnp::Atom::Neighbor::dGdr, nnp::Atom::Neighbor::dr, e1, nnp::Atom::Neighbor::element, 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.

      
  | 
  inline | 
Definition at line 148 of file SymFncCompRad.h.
References nnp::SymFncBaseComp::cr.
Referenced by nnp::SymGrpCompRad::calculate().

      
  | 
  virtual | 
Give symmetry function parameters in one line.
Implements nnp::SymFnc.
Definition at line 185 of file SymFncCompRad.cpp.
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.

      
  | 
  virtual | 
Get description with parameter names and values.
Reimplemented from nnp::SymFncBaseComp.
Definition at line 198 of file SymFncCompRad.cpp.
References e1, nnp::SymFnc::elementMap, nnp::pad(), nnp::SymFncBaseComp::parameterInfo(), nnp::SymFnc::sfinfoWidth, and nnp::strpr().

      
  | 
  inline | 
Get private e1 member variable.
Definition at line 146 of file SymFncCompRad.h.
References e1.
Referenced by nnp::SymGrpCompRad::addMember().

      
  | 
  virtual | 
Calculate (partial) symmetry function value for one given distance.
| [in] | distance | Distance between two atoms. | 
Implements nnp::SymFnc.
Definition at line 210 of file SymFncCompRad.cpp.
References nnp::SymFnc::convLength, and nnp::SymFncBaseComp::cr.
      
  | 
  virtual | 
Calculate (partial) symmetry function value for one given angle.
| [in] | angle | Angle between triplet of atoms (in radians). | 
Implements nnp::SymFnc.
Definition at line 217 of file SymFncCompRad.cpp.
      
  | 
  virtual | 
Check whether symmetry function is relevant for given element.
| [in] | index | Index of given element. | 
Implements nnp::SymFnc.
Definition at line 222 of file SymFncCompRad.cpp.
References e1, and nnp::SymFnc::index.
      
  | 
  virtual | 
Get unique cache identifiers.
Reimplemented from nnp::SymFnc.
Definition at line 229 of file SymFncCompRad.cpp.
References nnp::SymFnc::convLength, e1, nnp::SymFnc::rc, nnp::SymFncBaseComp::rl, nnp::strpr(), and nnp::SymFncBaseComp::subtype.

      
  | 
  private | 
Element index of neighbor atom.
Definition at line 139 of file SymFncCompRad.h.
Referenced by calculate(), checkRelevantElement(), getCacheIdentifiers(), getE1(), getSettingsLine(), operator<(), operator==(), parameterInfo(), parameterLine(), setParameters(), and SymFncCompRad().