A class which provides access to spherical atom-centered enrichment functions, with the radial part given numerically on a grid. This specifically assumes the dimensionality of the problem to be 3. Thus, an enrichment function \(
N^{\boldsymbol{\textbf{R}}}(\boldsymbol{\textbf{r}})\), centered on a point \(\boldsymbol{\textbf{R}}\) can be written as.
More...
|
| EnrichmentManagerAtomSphericalNumerical (const std::vector< std::string > > &atomSymbols, const std::vector< utils::Point > &atomCoordinates, const AtomsData &atomsData) |
| Constructor. More...
|
|
| ~EnrichmentManagerAtomSphericalNumerical ()=default |
| Destructor. More...
|
|
virtual int | nFunctions () const =0 |
| Get number of enrichement functions. More...
|
|
virtual ValueTypeBasisData | getValue (const size_type functionId, const utils::Point &point) const =0 |
| Get the value of an enrichment function at a point. More...
|
|
virtual ValueTypeBasisData | getValue (const size_type functionId, const std::vector< double > &point) const =0 |
| Get the value of an enrichment function at a point. More...
|
|
virtual std::vector< ValueTypeBasisData > | getValues (const int functionId, const std::vector< utils::Point > &points) const =0 |
| Get the value of an enriched function for a set of points. More...
|
|
virtual std::vector< ValueTypeBasisData > | getValues (const int functionId, const std::vector< std::vector< double > > &points) const =0 |
| Get the value of an enriched function for a set of points. More...
|
|
virtual std::vector< ValueTypeBasisData > | getDerivativeValue (const size_type functionId, const utils::Point &point, const size_type derivativeOrder) const =0 |
| Get the derivative of an enrichment function at a point. More...
|
|
virtual ValueTypeBasisData | getDerivativeValue (const size_type functionId, const std::vector< double > &point, const size_type derivativeOrder) const =0 |
| Get the derivative of an enrichment function at a point. More...
|
|
virtual std::vector< std::vector< ValueTypeBasisData > > | getDerivativeValues (const int functionId, const std::vector< utils::Point > &points, const size_type derivativeOrder) const =0 |
| Get the derivative of an enriched function for a set of points. More...
|
|
virtual std::vector< std::vector< ValueTypeBasisData > > | getDerivativeValues (const int functionId, const std::vector< std::vector< double > > &points, const size_type derivativeOrder) const =0 |
| Get the derivative of an enriched function for a set of points. More...
|
|
template<typename ValueTypeBasisData,
size_type dim>
class dftefe::basis::EnrichmentFunctionManagerAtomCenteredNumerical< ValueTypeBasisData, dim >
A class which provides access to spherical atom-centered enrichment functions, with the radial part given numerically on a grid. This specifically assumes the dimensionality of the problem to be 3. Thus, an enrichment function \(
N^{\boldsymbol{\textbf{R}}}(\boldsymbol{\textbf{r}})\), centered on a point \(\boldsymbol{\textbf{R}}\) can be written as.
\begin{equation*}
N^{\boldsymbol{\textbf{r}}}(\boldsymbol{\textbf{r}}) = f(r)
Y_{lm}(\theta,\phi) \end{equation*}
where \(r\) is the distance of \(\boldsymbol{\textbf{r}}\) from \(\boldsymbol{\textbf{R}}\); \(f(r)\) is the numerical radial part which is provided on a 1D grid. \(Y_{lm}(\theta,\phi)\) is a spherical harmonic of degree \(l\) and order \(m\), and \(\theta\) and \(\phi\) are the azimuthal and polar angles for the point \(\boldsymbol{\textbf{r}}\) with the origin at \(\boldsymbol{\textbf{R}}\). See https://en.wikipedia.org/wiki/Spherical_harmonics for more details on spherical harmonics.
- Template Parameters
-
ValueTypeBasisData | the primitive data for the enrichment function (e.g., double, float, complex<double>, complex<float>, etc.). |
dim | dimension of the enrichment (e.g., 1D, 2D, 3D,...). |