•All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Search Results
mpqc::math::FiniteDifferenceDerivative< Order, Value, Parameters > Class Template Reference
Collaboration diagram for mpqc::math::FiniteDifferenceDerivative< Order, Value, Parameters >:

Documentation
template<size_t Order, typename Value, typename Parameters>
class mpqc::math::FiniteDifferenceDerivative< Order, Value, Parameters >
Computes finite-difference approximation to function derivatives.
Public Member Functions | |
FiniteDifferenceDerivative (const KeyVal &kv) | |
![]() | |
size_t order () const | |
double target_precision (size_t ord) const | |
![]() | |
Function ()=default | |
Function (std::shared_ptr< Parameters > params) | |
virtual ~Function () | |
std::shared_ptr< const TaylorExpansionCoefficients< Value > > value () | |
bool must_compute () const | |
std::shared_ptr< const Parameters > params () const | |
virtual void set_params (std::shared_ptr< Parameters > params) | |
![]() | |
DescribedClass ()=default | |
virtual ~DescribedClass () | |
std::string class_key () const | |
![]() | |
virtual ~enable_shared_from_this ()=default | |
std::shared_ptr< DescribedClass > shared_from_this () | |
returns the pointer to this object More... | |
std::shared_ptr< std::add_const_t< DescribedClass > > shared_from_this () const | |
returns the pointer to this object More... | |
![]() | |
virtual ~virt_base_of_enable_shared_from_this ()=default | |
bool shared_from_this_possible () const | |
template<typename Target , typename = std::enable_if_t<!std::is_const_v<Target>>> | |
std::shared_ptr< Target > cast_shared_from_this_to () | |
returns the pointer to this cast to a particular type More... | |
template<typename Target > | |
std::shared_ptr< std::add_const_t< Target > > cast_shared_from_this_to () const | |
returns the pointer to this cast to a particular type More... | |
Protected Types | |
using DerivIdx = std::array< size_t, Order > | |
using Displacement = std::array< double, Order > | |
using LinearCombinationOfDisplacements = std::vector< std::pair< Displacement, double > > | |
using function_type = TaylorExpansionFunction< Value, Parameters > | |
the function to differentiate More... | |
Protected Member Functions | |
FiniteDifferenceDerivative (const KeyVal &kv, std::shared_ptr< Parameters > params, double default_target_precision) | |
The KeyVal constructor. More... | |
virtual LinearCombinationOfDisplacements generate_displacements (DerivIdx idx) const | |
std::shared_ptr< const function_type > function () const | |
double delta () const | |
size_t error_order () const | |
![]() | |
TaylorExpansionFunction (const KeyVal &kv, std::shared_ptr< Parameters > params, double default_precision=default_precision_) | |
auxiliary KeyVal constructor More... | |
![]() | |
const Timestampable< TaylorExpansionCoefficients< Value > > & get_value () const | |
void set_value (TaylorExpansionCoefficients< Value > v) | |
Additional Inherited Members | |
![]() | |
typedef Function< TaylorExpansionCoefficients< Value >, Parameters > function_base_type | |
![]() | |
typedef TaylorExpansionCoefficients< Value > value_type | |
typedef Parameters parameters_type | |
using Timestampable = ::mpqc::utility::Timestampable< X > | |
![]() | |
typedef std::shared_ptr< DescribedClass >(* keyval_ctor_wrapper_type) (const KeyVal &) | |
![]() | |
static keyval_ctor_wrapper_type type_to_keyval_ctor (const std::string &type_name) | |
template<typename T > | |
static void register_keyval_ctor () | |
template<typename T > | |
static bool is_registered () | |
template<typename T > | |
static std::string class_key () | |
static const keyval_ctor_registry_type & keyval_ctor_registry () | |
returns const ref to the keyval ctor registry More... | |
![]() | |
static constexpr double default_precision_ = 1e-8 | |
the default target precision to use if not provided to the constructor More... | |
Member Typedef Documentation
◆ DerivIdx
template<size_t Order, typename Value , typename Parameters >
|
protected |
◆ Displacement
template<size_t Order, typename Value , typename Parameters >
|
protected |
◆ function_type
template<size_t Order, typename Value , typename Parameters >
|
protected |
the function to differentiate
◆ LinearCombinationOfDisplacements
template<size_t Order, typename Value , typename Parameters >
|
protected |
Constructor & Destructor Documentation
◆ FiniteDifferenceDerivative() [1/2]
template<size_t Order, typename Value , typename Parameters >
|
inline |
◆ FiniteDifferenceDerivative() [2/2]
template<size_t Order, typename Value , typename Parameters >
|
inlineprotected |
The KeyVal constructor.
- Parameters
-
kv the KeyVal object to be queried
The KeyVal object will be queried for all keywords of the protected KeyVal ctor of the TaylorExpansionFunction class, as well as the following keywords:
Keyword | Type | Default | Description |
---|---|---|---|
delta | real | 0.01 | the displacement size, in the internal units of Parameters |
error_order | int | accuracy of the finite difference stencil | controls the stencil order to use: 0 = use the lowest order stensil (accurate to ![]() ![]() |
Member Function Documentation
◆ delta()
template<size_t Order, typename Value , typename Parameters >
|
inlineprotected |
◆ error_order()
template<size_t Order, typename Value , typename Parameters >
|
inlineprotected |
◆ function()
template<size_t Order, typename Value , typename Parameters >
|
inlineprotected |
◆ generate_displacements()
template<size_t Order, typename Value , typename Parameters >
|
inlineprotectedvirtual |
derived classes may need to customize how displacements are computed
- Parameters
-
idx the index of the derivative
- Returns
- the stensil formula as a LinearCombinationOfDisplacements
manual implementations of FiniteDifferenceDerivative::generate_displacements for different orders
The documentation for this class was generated from the following file:
- mpqc/math/function/findif.h