DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
AtomCenteredSphericalFunctionBase.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (c) 2017-2025 The Regents of the University of Michigan and DFT-FE
4// authors.
5//
6// This file is part of the DFT-FE code.
7//
8// The DFT-FE code is free software; you can use it, redistribute
9// it, and/or modify it under the terms of the GNU Lesser General
10// Public License as published by the Free Software Foundation; either
11// version 2.1 of the License, or (at your option) any later version.
12// The full text of the license can be found in the file LICENSE at
13// the top level of the DFT-FE distribution.
14//
15// ---------------------------------------------------------------------
16//
17// @author Vishal Subramanian, Kartick Ramakrishnan, Sambit Das
18//
19
20#ifndef DFTFE_ATOMCENTEREDSPHERICALFUNCTIONBASE_H
21#define DFTFE_ATOMCENTEREDSPHERICALFUNCTIONBASE_H
22
23#include <vector>
24#include <boost/math/quadrature/gauss_kronrod.hpp>
25#include <TypeConfig.h>
26
27namespace dftfe
28{
30 {
31 public:
32 /**
33 * @brief Computes the Radial Value of the Function at distance r
34 * @param[in] r radial distance
35 * @return function value at distance r
36 */
37 virtual double
38 getRadialValue(double r) const = 0;
39
40 // The following functions need not be re-defined in the
41 // derived classes. So it is being defined in this class
42 /**
43 * @brief returns the l-quantum number associated with the spherical function
44 * @return Quantum number l
45 */
48
49 /**
50 * @brief COmputes the Radial-Integral value
51 * @return Result of the radial-integration of the spherical function from d_rmin to d_cutOff
52 */
53 double
55 /**
56 * @brief Returns the maximum radial distance
57 * @return Cutoff distance
58 */
59 double
61 /**
62 * @brief Checks if the data is present
63 * @return True if function is present, false if not.
64 */
65 bool
67 /**
68 * @brief Computes the Radial Value, Radial-deriative and Radial-second derivative of the Function at distance r
69 * @param[in] r radial distance
70 * @return vector of size 3 comprising of function value, Radial-derivative value and Radial-secon derivative at distance r.
71 */
72
73 virtual std::vector<double>
74 getDerivativeValue(double r) const = 0;
75
76 protected:
77 double d_cutOff;
80
81
82 }; // end of class AtomCenteredSphericalFunctionBase
83} // end of namespace dftfe
84#endif // DFTFE_ATOMCENTEREDSPHERICALFUNCTIONBASE_H
Definition AtomCenteredSphericalFunctionBase.h:30
dftfe::uInt d_lQuantumNumber
Definition AtomCenteredSphericalFunctionBase.h:78
dftfe::uInt getQuantumNumberl() const
returns the l-quantum number associated with the spherical function
bool d_DataPresent
Definition AtomCenteredSphericalFunctionBase.h:79
virtual double getRadialValue(double r) const =0
Computes the Radial Value of the Function at distance r.
double d_cutOff
Definition AtomCenteredSphericalFunctionBase.h:77
double getRadialCutOff() const
Returns the maximum radial distance.
double getIntegralValue() const
COmputes the Radial-Integral value.
virtual std::vector< double > getDerivativeValue(double r) const =0
Computes the Radial Value, Radial-deriative and Radial-second derivative of the Function at distance ...
bool isDataPresent() const
Checks if the data is present.
Definition pseudoPotentialToDftfeConverter.cc:34
std::uint32_t uInt
Definition TypeConfig.h:10