ampsci
High-precision calculations for one- and two-valence atomic systems
AdamsMoulton::AM_Coefs< K, typename, typename >

ok

template<std::size_t K, typename = std::enable_if_t<(K > 0)>, typename = std::enable_if_t<(K <= K_max)>>
struct AdamsMoulton::AM_Coefs< K, typename, typename >

Holds the K+1 Adams-Moulton coefficients for the K-step AM method.

The Adams coefficients a_k are defined such that:

\[ F_{n+K} = F_{n+K-1} + dx \sum_{k=0}^{K} a_k y_{n+k}, \quad y \equiv \frac{dF}{dr} \]

The order of the coefficients is reversed compared to some sources. The final coefficient a_K is stored separately:

\[ a_k = b_k / \text{denom}, \quad k = 0, 1, \ldots, K-1 \]

\[ a_K = b_K / \text{denom} \]

All coefficients are stored as doubles regardless of other template parameters.

#include <AdamsMoulton.hpp>

Static Public Attributes

static constexpr std::array< double, K > ak {make_ak()}
 First K coefficients: ak for k={0,1,...,K-1}.
 
static constexpr double aK {make_aK()}
 Final aK coefficients: ak for k=K.
 

Member Data Documentation

◆ ak

template<std::size_t K, typename = std::enable_if_t<(K > 0)>, typename = std::enable_if_t<(K <= K_max)>>
constexpr std::array<double, K> AdamsMoulton::AM_Coefs< K, typename, typename >::ak {make_ak()}
staticconstexpr

First K coefficients: ak for k={0,1,...,K-1}.

◆ aK

template<std::size_t K, typename = std::enable_if_t<(K > 0)>, typename = std::enable_if_t<(K <= K_max)>>
constexpr double AdamsMoulton::AM_Coefs< K, typename, typename >::aK {make_aK()}
staticconstexpr

Final aK coefficients: ak for k=K.


The documentation for this struct was generated from the following file: