42#ifndef N2P2_NO_SF_CACHE
90 std::string
const& parameters,
91 std::size_t
const& lineNumber);
126 double const cutoffAlpha);
142 std::vector<std::string>
const& statisticsLine,
176 std::vector<std::vector<
186 bool const derivatives)
const;
195 bool const derivatives)
const;
213#ifndef N2P2_NO_SF_CACHE
249#ifndef N2P2_NO_SF_CACHE
290inline std::vector<std::size_t>
const&
296inline std::vector<std::vector<std::size_t>>
const&
314 std::size_t index)
const
CutoffType
List of available cutoff function types.
Contains element-specific data.
void calculateSymmetryFunctions(Atom &atom, bool const derivatives) const
Calculate symmetry functions.
void setCutoffFunction(CutoffFunction::CutoffType const cutoffType, double const cutoffAlpha)
Set cutoff function for all symmetry functions.
std::vector< std::string > infoSymmetryFunctionParameters() const
Print symmetry function parameter value information.
ElementMap elementMap
Copy of element map.
virtual ~Element()
Destructor.
void setAtomicEnergyOffset(double atomicEnergyOffset)
Set atomicEnergyOffset.
void calculateSymmetryFunctionGroups(Atom &atom, bool const derivatives) const
Calculate symmetry functions via groups.
std::vector< std::size_t > getCacheSizes() const
Get cache sizes for each neighbor atom element.
SymFncStatistics statistics
Symmetry function statistics.
void sortSymmetryFunctions()
Sort all symmetry function.
double getAtomicEnergyOffset() const
Get atomicEnergyOffset.
std::vector< SymFnc * > symmetryFunctions
Vector of pointers to symmetry functions.
std::vector< std::string > infoSymmetryFunctionGroups() const
Print symmetry function group info.
void setupSymmetryFunctionMemory()
Extract relevant symmetry function combinations for derivative memory.
std::vector< std::string > infoSymmetryFunctionScaling() const
Print symmetry function scaling information.
double getMinCutoffRadius() const
Get minimum cutoff radius of all symmetry functions.
std::vector< std::vector< SFCacheList > > cacheLists
Symmetry function cache lists.
void setupSymmetryFunctionGroups()
Set up symmetry function groups.
void addSymmetryFunction(std::string const ¶meters, std::size_t const &lineNumber)
Add one symmetry function.
std::size_t getIndex() const
Get index.
Element(std::size_t const index, ElementMap const &elementMap)
Constructor using index.
void setCacheIndices(std::vector< std::vector< SFCacheList > > cacheLists)
Set cache indices for all symmetry functions of this element.
std::size_t updateSymmetryFunctionStatistics(Atom const &atom)
Update symmetry function statistics.
std::size_t index
Global index of this element.
void setScaling(SymFnc::ScalingType scalingType, std::vector< std::string > const &statisticsLine, double minS, double maxS) const
Set scaling of all symmetry functions.
std::vector< std::vector< std::size_t > > symmetryFunctionTable
List of symmetry function indices relevant for each neighbor element.
SymFnc const & getSymmetryFunction(std::size_t index) const
Get symmetry function instance.
std::string symbol
Element symbol.
std::vector< std::vector< std::size_t > > const & getSymmetryFunctionTable() const
Get symmetry function element relevance table.
std::string getSymbol() const
Get symbol.
double atomicEnergyOffset
Offset energy for every atom of this element.
Element()
Default constructor.
std::size_t getMinNeighbors() const
Get maximum of required minimum number of neighbors for all symmetry functions for this element.
std::vector< std::string > infoSymmetryFunction(std::size_t index) const
Print symmetry function parameter names and values.
std::vector< SymGrp * > symmetryFunctionGroups
Vector of pointers to symmetry function groups.
std::vector< std::size_t > symmetryFunctionNumTable
Number of relevant symmetry functions for each neighbor element.
double getMaxCutoffRadius() const
Get maximum cutoff radius of all symmetry functions.
void clearSymmetryFunctions()
Clear all symmetry functions and groups.
void setScalingNone() const
Set no scaling of symmetry function.
std::map< std::string, NeuralNetwork > neuralNetworks
Neural networks for this element.
std::size_t numSymmetryFunctions() const
Get number of symmetry functions.
void changeLengthUnitSymmetryFunctions(double convLength)
Change length unit for all symmetry functions.
std::vector< std::size_t > const & getSymmetryFunctionNumTable() const
Get number of relevant symmetry functions per element.
std::size_t atomicNumber
Atomic number of this element.
std::size_t getAtomicNumber() const
Get atomicNumber.
Symmetry function base class.
ScalingType
List of available scaling types.
Storage for a single atom.
List of symmetry functions corresponding to one cache identifier.
std::size_t element
Neighbor element index.
std::string identifier
Cache identifier string.
std::vector< std::size_t > indices
Symmetry function indices for this cache.