42#ifndef N2P2_NO_SF_CACHE
102 std::string
const& parameters,
103 std::size_t
const& lineNumber);
138 double const cutoffAlpha);
154 std::vector<std::string>
const& statisticsLine,
193 std::vector<std::vector<
203 bool const derivatives)
const;
212 bool const derivatives)
const;
230#ifndef N2P2_NO_SF_CACHE
270#ifndef N2P2_NO_SF_CACHE
335inline std::vector<std::size_t>
const&
341inline std::vector<std::vector<std::size_t>>
const&
359 std::size_t index)
const
CutoffType
List of available cutoff function types.
Contains element-specific data.
void getCutoffRadii(std::vector< double > &cutoffs) const
Get all different cutoff radii belonging to this element.
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.
double qsigma
Gaussian width of charge distribution.
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.
double getQsigma() const
Get qsigma.
std::string getSymbol() const
Get symbol.
double atomicEnergyOffset
Offset energy for every atom of this element.
double hardness
Atomic hardness for global charge equilibration.
Element()
Default constructor.
std::size_t getMinNeighbors() const
Get maximum of required minimum number of neighbors for all symmetry functions for this element.
void setQsigma(double qsigma)
Set qsigma.
std::vector< std::string > infoSymmetryFunction(std::size_t index) const
Print symmetry function parameter names and values.
void setHardness(double hardness)
Set hardness.
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.
double getHardness() const
Get hardness.
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.