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>
25namespace dftfe
26{
28 {
29 public:
30 /**
31 * @brief Computes the Radial Value of the Function at distance r
32 * @param[in] r radial distance
33 * @return function value at distance r
34 */
35 virtual double
36 getRadialValue(double r) const = 0;
37
38 // The following functions need not be re-defined in the
39 // derived classes. So it is being defined in this class
40 /**
41 * @brief returns the l-quantum number associated with the spherical function
42 * @return Quantum number l
43 */
44 unsigned int
46
47 /**
48 * @brief COmputes the Radial-Integral value
49 * @return Result of the radial-integration of the spherical function from d_rmin to d_cutOff
50 */
51 double
53 /**
54 * @brief Returns the maximum radial distance
55 * @return Cutoff distance
56 */
57 double
59 /**
60 * @brief Checks if the data is present
61 * @return True if function is present, false if not.
62 */
63 bool
65 /**
66 * @brief Computes the Radial Value, Radial-deriative and Radial-second derivative of the Function at distance r
67 * @param[in] r radial distance
68 * @return vector of size 3 comprising of function value, Radial-derivative value and Radial-secon derivative at distance r.
69 */
70
71 virtual std::vector<double>
72 getDerivativeValue(double r) const = 0;
73
74 protected:
75 double d_cutOff;
76 unsigned int d_lQuantumNumber;
78
79
80 }; // end of class AtomCenteredSphericalFunctionBase
81} // end of namespace dftfe
82#endif // DFTFE_ATOMCENTEREDSPHERICALFUNCTIONBASE_H
Definition AtomCenteredSphericalFunctionBase.h:28
bool d_DataPresent
Definition AtomCenteredSphericalFunctionBase.h:77
unsigned int getQuantumNumberl() const
returns the l-quantum number associated with the spherical function
virtual double getRadialValue(double r) const =0
Computes the Radial Value of the Function at distance r.
double d_cutOff
Definition AtomCenteredSphericalFunctionBase.h:75
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.
unsigned int d_lQuantumNumber
Definition AtomCenteredSphericalFunctionBase.h:76
Definition pseudoPotentialToDftfeConverter.cc:34