Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::QuasiUniformSpherocylinder< Scalar, Ntheta, AspectRatio > Class Template Reference

Quasi-uniform surface rule for a unit-radius spherocylinder of cylindrical length AspectRatio. More...

#include <QuasiUniformSpherocylinder.hpp>

Public Types

using value_type = Scalar

Static Public Member Functions

static constexpr Kokkos::Array< Scalar, 3 *num_points > points ()
 The points as (x, y, z) triples, ordered by cylinder, north cap, then south cap.
static constexpr Kokkos::Array< Scalar, num_points > weights ()
 The num_points surface-area weights, in the order of points().
template<class Function>
static constexpr auto integrate (const Function &f)
 sum_i w_i f(x_i, y_i, z_i), approximating the unit-radius spherocylinder surface integral.

Static Public Attributes

static constexpr unsigned num_points_per_ring = Ntheta
static constexpr unsigned num_cylinder_rings
static constexpr unsigned num_cap_points
static constexpr unsigned num_points

Detailed Description

template<class Scalar, unsigned Ntheta, double AspectRatio>
class mundy::QuasiUniformSpherocylinder< Scalar, Ntheta, AspectRatio >

Ntheta controls the circumferential resolution; the corresponding cylinder and cap counts are determined by the aspect ratio. Nodes and weights are computed at compile time and rounded to Scalar.

Member Typedef Documentation

◆ value_type

template<class Scalar, unsigned Ntheta, double AspectRatio>
using mundy::QuasiUniformSpherocylinder< Scalar, Ntheta, AspectRatio >::value_type = Scalar

Member Function Documentation

◆ points()

template<class Scalar, unsigned Ntheta, double AspectRatio>
constexpr Kokkos::Array< Scalar, 3 *num_points > mundy::QuasiUniformSpherocylinder< Scalar, Ntheta, AspectRatio >::points ( )
inlinestaticconstexpr

◆ weights()

template<class Scalar, unsigned Ntheta, double AspectRatio>
constexpr Kokkos::Array< Scalar, num_points > mundy::QuasiUniformSpherocylinder< Scalar, Ntheta, AspectRatio >::weights ( )
inlinestaticconstexpr

◆ integrate()

template<class Scalar, unsigned Ntheta, double AspectRatio>
template<class Function>
constexpr auto mundy::QuasiUniformSpherocylinder< Scalar, Ntheta, AspectRatio >::integrate ( const Function & f)
inlinestaticconstexpr

Member Data Documentation

◆ num_points_per_ring

template<class Scalar, unsigned Ntheta, double AspectRatio>
unsigned mundy::QuasiUniformSpherocylinder< Scalar, Ntheta, AspectRatio >::num_points_per_ring = Ntheta
staticconstexpr

◆ num_cylinder_rings

template<class Scalar, unsigned Ntheta, double AspectRatio>
unsigned mundy::QuasiUniformSpherocylinder< Scalar, Ntheta, AspectRatio >::num_cylinder_rings
staticconstexpr
Initial value:
=
impl::QuasiUniformSpherocylinderRule<Scalar, Ntheta, AspectRatio>::num_cylinder_rings

◆ num_cap_points

template<class Scalar, unsigned Ntheta, double AspectRatio>
unsigned mundy::QuasiUniformSpherocylinder< Scalar, Ntheta, AspectRatio >::num_cap_points
staticconstexpr
Initial value:
=
impl::QuasiUniformSpherocylinderRule<Scalar, Ntheta, AspectRatio>::num_cap_points

◆ num_points

template<class Scalar, unsigned Ntheta, double AspectRatio>
unsigned mundy::QuasiUniformSpherocylinder< Scalar, Ntheta, AspectRatio >::num_points
staticconstexpr
Initial value:
=
impl::QuasiUniformSpherocylinderRule<Scalar, Ntheta, AspectRatio>::num_points