/home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/coordinates/coordinates.hh File Reference#

DiFfRG: /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/coordinates/coordinates.hh File Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
coordinates.hh File Reference
#include <cmath>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <limits>
#include <stdexcept>
#include <tuple>
#include <type_traits>
#include <vector>
#include <DiFfRG/common/kokkos.hh>
#include <DiFfRG/common/utils.hh>

Go to the source code of this file.

Classes

struct  DiFfRG::internal::coord_periodic< T, typename >
 
struct  DiFfRG::internal::coord_periodic< T, std::void_t< decltype(T::periodic)> >
 
struct  DiFfRG::internal::axis_periodic< C, i, typename >
 
struct  DiFfRG::internal::axis_periodic< C, i, std::void_t< typename C::template coordinate_type< i > > >
 
class  DiFfRG::CoordinatePackND< Coordinates >
 Utility class for combining multiple coordinate systems into one. More...
 
class  DiFfRG::SubCoordinates< Base >
 A contiguous window into the linear index range of another coordinate system. More...
 
class  DiFfRG::LinearCoordinates1D< NT >
 
class  DiFfRG::LinearPeriodicCoordinates1D< NT >
 Linear coordinates on a periodic axis of period (stop - start). More...
 
class  DiFfRG::LogarithmicCoordinates1D< NT >
 
class  DiFfRG::FocusedLogCoordinates1D< NT >
 Logarithmic coordinates which cluster grid points around an interior scale. More...
 

Namespaces

namespace  DiFfRG
 
namespace  DiFfRG::internal
 

Concepts

concept  DiFfRG::is_coordinates
 

Typedefs

using DiFfRG::LogCoordinates = LogarithmicCoordinates1D<double>
 
using DiFfRG::LinCoordinates = LinearCoordinates1D<double>
 
using DiFfRG::LogLogCoordinates = CoordinatePackND<LogarithmicCoordinates1D<double>, LogarithmicCoordinates1D<double>>
 
using DiFfRG::LogLinCoordinates = CoordinatePackND<LogarithmicCoordinates1D<double>, LinearCoordinates1D<double>>
 
using DiFfRG::LinLogCoordinates = CoordinatePackND<LinearCoordinates1D<double>, LogarithmicCoordinates1D<double>>
 
using DiFfRG::LinLinCoordinates = CoordinatePackND<LinearCoordinates1D<double>, LinearCoordinates1D<double>>
 
using DiFfRG::LogLogLinCoordinates
 
using DiFfRG::LogLinLinCoordinates
 
using DiFfRG::LinLinLinCoordinates
 
using DiFfRG::FocusedLogCoordinates = FocusedLogCoordinates1D<double>
 
using DiFfRG::FocusedLogLinCoordinates = CoordinatePackND<FocusedLogCoordinates1D<double>, LinearCoordinates1D<double>>
 
using DiFfRG::FocusedLogLinLinCoordinates
 
using DiFfRG::LinPeriodicCoordinates = LinearPeriodicCoordinates1D<double>
 
using DiFfRG::LogLinPeriodicCoordinates
 
using DiFfRG::LogLinLinPeriodicCoordinates
 
using DiFfRG::FocusedLogLinPeriodicCoordinates
 
using DiFfRG::FocusedLogLinLinPeriodicCoordinates
 

Functions

template<typename Coordinates >
auto DiFfRG::make_grid (const Coordinates &coordinates)
 
template<typename Coordinates >
auto DiFfRG::make_idx_grid (const Coordinates &coordinates) -> std::vector< double >
 
template<typename Coordinates >
std::vector< typename Coordinates::ctype > DiFfRG::dump_grid (const Coordinates &coordinates)
 

Variables

template<typename T >
constexpr bool DiFfRG::is_periodic_coordinate_v = internal::coord_periodic<T>::value
 Whether a 1D coordinate class describes a periodic axis, i.e. one where the last grid point is followed again by the first one. Detected through a static constexpr bool periodic member, defaulting to false.
 
template<typename C , size_t i>
constexpr bool DiFfRG::is_periodic_axis_v = internal::axis_periodic<C, i>::value
 Whether axis i of a (possibly multi-dimensional) coordinate system is periodic. Falls back to false for coordinate systems which do not expose their axes as separate types, e.g. BosonicCoordinates1DFiniteT.