|
| void | apply_matsubara_overrides (const ConfigTree &config) |
| | Apply the /integration/force_exact_matsubara_sum override, if the model sets it.
|
| |
| | Integrator_fT_p2_4D_2ang (QuadratureProvider &quadrature_provider, const ConfigTree &config) |
| |
| | Integrator_fT_p2_4D_2ang (QuadratureProvider &quadrature_provider, const std::array< size_t, 3 > grid_size, ctype x_extent=2., ctype T=1, ctype typical_E=1) |
| |
| void | set_x_extent (ctype x_extent) |
| |
| void | set_k (ctype k) |
| |
| void | set_typical_E (ctype typical_E) |
| |
| | QuadratureIntegrator_fT (QuadratureProvider &quadrature_provider, const std::array< size_t, sdim > _grid_size, std::array< ctype, sdim > grid_min, std::array< ctype, sdim > grid_max, const std::array< QuadratureType, sdim > quadrature_type, const ctype T=1, const ctype typical_E=1) |
| |
| void | set_grid_extents (const std::array< ctype, sdim > grid_min, const std::array< ctype, sdim > grid_max) |
| |
| void | set_T (const ctype T) |
| |
| void | set_k (const ctype k) |
| | The RG scale, which is the DEFAULT frequency scale.
|
| |
| void | set_typical_E (const ctype typical_E) |
| | The heaviest scale the summand carries, if the model knows it. Zero means "only k".
|
| |
| void | set_frequency_cutoff (const ctype freq_cutoff) |
| | The frequency beyond which the summand is known to vanish, enabling the exact sum.
|
| |
| void | set_allow_exact_matsubara_sum (const bool allow) |
| | Force the exact sum on (or off) regardless of the kernel's trait.
|
| |
| void | set_matsubara_extent_margin (const ctype margin) |
| |
| size_t | get_matsubara_size () const |
| | Nodes on the frequency axis, INCLUDING the zero mode.
|
| |
| bool | uses_exact_matsubara_sum () const |
| | True if the frequency axis is currently the exact sum rather than a Gaussian quadrature rule.
|
| |
| void | get (NT &dest, const T &...t) const |
| |
| void | get (OT &dest, const T &...t) const |
| |
| void | get (ExecutionSpace &space, OT &dest, const Args &...t) const |
| |
| void | map (ExecutionSpace &space, const view_type integral_view, const Coordinates &coordinates, const Args &...args) |
| |
| auto | map (NT *dest, const Coordinates &coordinates, const Args &...args) |
| |
| size_t | quadrature_volume () const |
| | Points evaluated per external grid point. Half of the scheduler's cost score.
|
| |
| auto | map_dist (NT *dest, const Coordinates &coordinates, const Args &...args) |
| |
| | AbstractIntegrator () |
| |
| KOKKOS_FORCEINLINE_FUNCTION size_t | integrator_id () const |
| | Stable, rank-independent identity of this integrator.
|
| |
|
| static KOKKOS_INLINE_FUNCTION NT | node_value (const XArr &x, const PosArr &pos, const ArgTuple &args, const ctype xt, const ctype wt, const bool is_tail) |
| | One Matsubara node's contribution at one spatial point, weight excluded.
|
| |
| static constexpr int | sdim |
| | Spatial dimension of the integration problem.
|
| |
| ExecutionSpace | space |
| |
| QuadratureProvider & | quadrature_provider |
| |
| device::array< device::array< ctype, sdim >, 2 > | grid_extents |
| |
| device::array< ctype, sdim > | grid_start |
| |
| device::array< ctype, sdim > | grid_scale |
| |
| device::array< size_t, dim > | grid_size |
| |
| device::array< Kokkos::View< const ctype *, typename ExecutionSpace::memory_space >, sdim > | nodes |
| |
| device::array< Kokkos::View< const ctype *, typename ExecutionSpace::memory_space >, sdim > | weights |
| |
| ctype | T |
| |
| ctype | m_k |
| | The RG scale, which is the frequency scale unless the model set one; see set_k().
|
| |
| ctype | m_typical_E_user |
| | The model's heaviest scale, or zero if it never said; see set_typical_E().
|
| |
| ctype | m_freq_cutoff |
| | Support boundary in frequency; zero means "unknown", which disables the exact sum.
|
| |
| size_t | m_n_tail |
| | Nodes before the boundary of the concatenated axis of a split kernel; 0 when not split.
|
| |
| Kokkos::View< ctype *, typename ExecutionSpace::memory_space > | m_split_nodes |
| |
| Kokkos::View< ctype *, typename ExecutionSpace::memory_space > | m_split_weights |
| |
| bool | m_allow_exact |
| |
| bool | m_using_exact |
| |
| ctype | m_extent_margin |
| |
| Kokkos::View< const ctype *, typename ExecutionSpace::memory_space > | matsubara_nodes |
| |
| Kokkos::View< const ctype *, typename ExecutionSpace::memory_space > | matsubara_weights |
| |
| KokkosNDView< 1+dim, NT, ExecutionSpace > | m_cache |
| |
| device::array< size_t, 1+dim > | m_cache_extents |
| |
| Kokkos::View< ctype *, typename ExecutionSpace::memory_space > | m_positions |
| |
| std::string | m_positions_key |
| |
| Kokkos::View< NT *, ExecutionSpace > | m_dest_device |
| |
| size_t | m_dest_device_size |
| |
| Kokkos::View< NT *, PinnedHost_memory > | m_dest_pinned |
| | Page-locked staging for the device path, so the result copy is genuinely asynchronous.
|
| |
| size_t | m_dest_pinned_size |
| |
| Kokkos::View< NT, typename ExecutionSpace::memory_space > | m_result_view |
| |
| Kokkos::View< NT, typenameExecutionSpace::memory_space >::host_mirror_type | m_result_host |
| |
| bool | m_result_views_initialized |
| |
| size_t | m_integrator_id |
| |
template<int dim, typename NT , typename KERNEL , typename ExecutionSpace >
Apply the /integration/force_exact_matsubara_sum override, if the model sets it.
The per-kernel matsubara_finite_extent trait is the right default – it is derived from the diagram algebra – but two cases need a dial. A model whose kernels predate the trait can turn the exact sum on for the whole run, and a study can turn it off to price it against the Gaussian rule on the same kernel. Forcing it ON for a summand that does NOT vanish above sqrt(x_extent)*k silently truncates the sum, so it is opt-in and absent by default.