nifty8.domains.rg_space module#

class RGSpace(shape, distances=None, harmonic=False, _realdistances=None)[source]#

Bases: StructuredDomain

Represents a regular Cartesian grid.

Parameters:
  • shape (int or tuple of int) – Number of grid points or numbers of gridpoints along each axis.

  • distances (None or float or tuple of float, optional) –

    Distance between two grid points along each axis.

    By default (distances=None):
    • If harmonic==True, all distances will be set to 1

    • If harmonic==False, the distance along each axis will be set to the inverse of the number of points along that axis.

  • harmonic (bool, optional) – Whether the space represents a grid in position or harmonic space. Default: False.

Notes

Topologically, a n-dimensional RGSpace is a n-Torus, i.e. it has periodic boundary conditions.

__init__(shape, distances=None, harmonic=False, _realdistances=None)[source]#
__repr__()[source]#

Return repr(self).

check_codomain(codomain)[source]#

Raises TypeError if codomain is not a matching partner domain for self.

property distances#

Distance between grid points along each axis. The n-th entry of the tuple is the distance between neighboring grid points along the n-th dimension.

Type:

tuple of float

get_conv_kernel_from_func(func)[source]#

Creates a convolution kernel defined by a function.

Assumes the function to be radially symmetric, e.g. only dependant on distance.

Parameters:

func (function) – This function needs to take exactly one argument, which is distance from center (in the same units as the RGSpace distances), and return the kernel amplitude at that distance.

get_default_codomain()[source]#

Returns a RGSpace object representing the (position or harmonic) partner domain of self, depending on self.harmonic.

Returns:

The partner domain

Return type:

RGSpace

get_fft_smoothing_kernel_function(sigma)[source]#

Helper for Gaussian smoothing.

This method, which is only implemented for harmonic domains, helps to smoothe fields that are defined on a domain that has this domain as its harmonic partner. The returned function does a pointwise evaluation of a zero-centered Gaussian on the field values, which corresponds to a convolution with a Gaussian kernel with sigma standard deviation in position space.

Parameters:

sigma (float) – A real number representing a physical scale on which the smoothing takes place. Mathematically sigma is the standard deviation of a convolution with a normalized, zero-centered Gaussian that takes place in position space.

Returns:

A smoothing operation that multiplies values with a Gaussian kernel.

Return type:

function (array-like -> array-like)

get_k_length_array()[source]#

k vector lengths, if applicable.

Returns the length of the k vector for every pixel. This method is only implemented for harmonic domains.

Returns:

An array containing the k vector lengths

Return type:

nifty8.field.Field

get_unique_k_lengths()[source]#

Sorted unique k-vector lengths, if applicable.

Returns an array of floats containing the unique k vector lengths for this domain. This method is only implemented for harmonic domains.

property harmonic#

True iff this domain is a harmonic domain.

Type:

bool

property scalar_dvol#

uniform pixel volume, if applicable

Returns the volume factors of this domain as a floating point scalar, if the volume factors are all identical, otherwise returns None.

Type:

float or None

property shape#

number of pixels along each axis

The shape of the array-like object required to store information defined on the domain.

Type:

tuple of int

property size#

total number of pixels.

Equivalent to the products over all entries in the domain’s shape.

Type:

int