nbodykit.source.mesh.linear¶
Classes
|
A MeshSource object that generates a |
- class nbodykit.source.mesh.linear.LinearMesh(Plin, BoxSize, Nmesh, seed=None, unitary_amplitude=False, inverted_phase=False, remove_variance=None, comm=None)[source]¶
A MeshSource object that generates a
RealField
density mesh from a linear power spectrum function \(P(k)\).- Parameters
Plin (callable) – the callable linear power spectrum function, which takes the wavenumber as its single argument
BoxSize (float, 3-vector of floats) – the size of the box to generate the grid on
Nmesh (int, 3-vector of int) – the number of the mesh cells per side
seed (int, optional) – the global random seed, used to set the seeds across all ranks
remove_variance (bool, optional) –
Deprecated since version 0.2.9: use
unitary_amplitude
insteadunitary_amplitude (bool, optional) –
True
to remove variance from the complex field by fixing the amplitude to \(P(k)\) and only the phase is random.inverted_phase (bool, optional) –
True
to invert phase of the complex field by fixing the amplitude to \(P(k)\) and only the phase is random.comm (MPI communicator) – the MPI communicator
- Attributes
Methods
apply
(func[, kind, mode])Return a view of the mesh, with
actions
updated to apply the specified function, either in Fourier space or configuration space, based onmode
compute
([mode, Nmesh])Compute / Fetch the mesh object into memory as a RealField or ComplexField object.
preview
([axes, Nmesh, root])Gather the mesh into as a numpy array, with (reduced) resolution.
save
(output[, dataset, mode])Save the mesh as a
BigFileMesh
on disk, either in real or complex space.Return a ComplexField, generating from the linear power spectrum.
to_field
([mode, out])Return the mesh as a
pmesh
Field object, either in Fourier space or configuration space, based onmode
.to_real_field
([out, normalize])Convert the mesh source to the configuration-space field, returning a
pmesh.pm.RealField
object.view
()Return a "view" of the MeshSource, in the spirit of numpy's ndarray view.
paint
- __finalize__(other)¶
Finalize the creation of a MeshSource object by copying over attributes from a second MeshSource.
- Parameters
other (MeshSource) – the second MeshSource to copy over attributes from
- __len__()¶
Length of a mesh source is zero
- property actions¶
A list of actions to apply to the density field when interpolating to the mesh.
This stores tuples of
(mode, func, kind)
; seeapply()
for more details.
- apply(func, kind='wavenumber', mode='complex')¶
Return a view of the mesh, with
actions
updated to apply the specified function, either in Fourier space or configuration space, based onmode
- Parameters
func (callable or a
MeshFilter
object) – func(x, y) where x is a list ofr
(k
) values that broadcasts into a full array, whenmode
is ‘real’ (‘complex’); the value of x depends onkind
.y
is the value of the mesh field on the corresponding locations.kind (string, optional) –
if a MeshFilter object is given as func, this is ignored. The kind of value in x.
When
mode
is ‘complex’:’wavenumber’ means wavenumber from [- 2 pi / L * N / 2, 2 pi / L * N / 2).
’circular’ means circular frequency from [- pi, pi).
’index’ means [0, Nmesh )
When
mode
is ‘real’:’relative’ means distance from [-0.5 Boxsize, 0.5 BoxSize).
’index’ means [0, Nmesh )
mode ('complex' or 'real', optional) – if a MeshFilter object is given as func, this is ignored. whether to apply the function to the mesh in configuration space or Fourier space
- Returns
a view of the mesh object with the
actions
attribute updated to include the new action- Return type
- property attrs¶
A dictionary storing relevant meta-data about the CatalogSource.
- compute(mode='real', Nmesh=None)¶
Compute / Fetch the mesh object into memory as a RealField or ComplexField object.
- preview(axes=None, Nmesh=None, root=0)¶
Gather the mesh into as a numpy array, with (reduced) resolution. The result is broadcast to all ranks, so this uses \(\mathrm{Nmesh}^3\) per rank.
- Parameters
- Returns
out – An numpy array holding the real density field.
- Return type
array_like
- save(output, dataset='Field', mode='real')¶
Save the mesh as a
BigFileMesh
on disk, either in real or complex space.
- to_complex_field()[source]¶
Return a ComplexField, generating from the linear power spectrum.
Note
The density field is normalized to \(1+\delta\) such that the mean of the return field in real space is unity.
- Returns
an array-like object holding the generated linear density field in Fourier space
- Return type
pmesh.pm.ComplexField
- to_field(mode='real', out=None)¶
Return the mesh as a
pmesh
Field object, either in Fourier space or configuration space, based onmode
.This will call
to_real_field()
orto_complex_field()
based onmode
.- Parameters
mode ('real' or 'complex') – the return type of the field
- Returns
either a RealField of ComplexField, storing the value of the field on the mesh
- Return type
RealField
,ComplexField
- to_real_field(out=None, normalize=True)¶
Convert the mesh source to the configuration-space field, returning a
pmesh.pm.RealField
object.Not implemented in the base class, unless object is a view.
- view()¶
Return a “view” of the MeshSource, in the spirit of numpy’s ndarray view.
This returns a new MeshSource whose memory is owned by
self
.Note that for CatalogMesh objects, this is overidden by the
CatalogSource.view
function.