Reference
PhaseSpaceDTFE.BVH
PhaseSpaceDTFE.BVH
PhaseSpaceDTFE.PS_DTFE
PhaseSpaceDTFE.PS_DTFE_subbox
PhaseSpaceDTFE.SimBox
PhaseSpaceDTFE.DTFE_periodic
PhaseSpaceDTFE.DTFE_periodic
PhaseSpaceDTFE.PS_DTFE_periodic
PhaseSpaceDTFE.PS_DTFE_periodic
PhaseSpaceDTFE.density
PhaseSpaceDTFE.density_subbox
PhaseSpaceDTFE.findBox
PhaseSpaceDTFE.findCandidateSimplices
PhaseSpaceDTFE.findIntersections
PhaseSpaceDTFE.frame
PhaseSpaceDTFE.frame_velocities
PhaseSpaceDTFE.get_coords_in_subbox
PhaseSpaceDTFE.get_subbox_estimator
PhaseSpaceDTFE.get_subbox_estimator
PhaseSpaceDTFE.get_subboxes
PhaseSpaceDTFE.inSimplices
PhaseSpaceDTFE.intersection
PhaseSpaceDTFE.numberOfStreams
PhaseSpaceDTFE.numberOfStreams_subbox
PhaseSpaceDTFE.ps_dtfe_subbox
PhaseSpaceDTFE.ps_dtfe_subbox
PhaseSpaceDTFE.translate
PhaseSpaceDTFE.unwrap_s
PhaseSpaceDTFE.unwrap_x_
PhaseSpaceDTFE.velocity
PhaseSpaceDTFE.velocitySum
PhaseSpaceDTFE.velocitySum_subbox
PhaseSpaceDTFE.velocity_subbox
PhaseSpaceDTFE.volume
PhaseSpaceDTFE.BVH
— TypeBVH(data, box, depth, left, right)
A Bounding Volume Hierarchy (BVH) tree structure on a set of geometric objects.
PhaseSpaceDTFE.BVH
— MethodBVH(data, box::Matrix{Float64}, points::Matrix{Float64}, simplices, depth::Int)
Generates a Bounding Volume Hierarchy (BVH) tree structure.
PhaseSpaceDTFE.PS_DTFE
— TypePS_DTFE(positions_initial, positions, velocities, m, depth, box)
Generates an Phase-Space DTFE object given the initial positions, final positions and velocities of an N-body simulation. The Boundary Volume Hirarchy goes depth
levels deep. The PS_DTFE-object contains:
rho::Vector{Float64}
Drho::Matrix{Float64}
Dv::Array{Float64}
tree::BVH
simplices::Matrix{Int}
positions::Matrix{Float64}
velocities::Matrix{Float64}
positions_initial::Matrix{Float64}
PhaseSpaceDTFE.PS_DTFE_subbox
— TypePS_DTFE_subbox
Phase-Space DTFE subbox object containing
N_sub::Int64
N_target::Int64
m::Float64
depth::Int64
dir::String
L::Float64
Ni::Int64
PhaseSpaceDTFE.SimBox
— TypeSimBox(L, Ni)
Holds the size L
of the simulation box and the particle number Ni
per side length.
Examples
julia> SimBox(100, 64)
SimBox(100.0, 64)
PhaseSpaceDTFE.DTFE_periodic
— MethodDTFE_periodic(coords_q, coords_x, m, depth, sim_box; pad=0.05)
Constructs the DTFE-object from the final positions coords_x
assuming periodic boundary conditions. These are Float64
matrices of size (N,3)
. m
is the particle mass, a single Float64
or a matching matrix (N, 3)
. pad
specifies the framing width in units of L
.
PhaseSpaceDTFE.DTFE_periodic
— MethodDTFE_periodic(coords_q, coords_x, velocities, m, depth, sim_box; pad=0.05)
Constructs the DTFE-object from the final positions coords_x
and velocities velocities
assuming periodic boundary conditions. These are Float64
matrices of size (N,3)
. m
is the particle mass, a single Float64
or a matching matrix (N, 3)
. pad
specifies the framing width in units of L
.
PhaseSpaceDTFE.PS_DTFE_periodic
— MethodPS_DTFE_periodic(coords_q, coords_x, m, depth, sim_box; pad=0.05)
Constructs the PS-DTFE-object from the initial positions coords_q
and final positions coords_x
assuming periodic boundary conditions. These are Float64
matrices of size (N,3)
. m
is the particle mass, a single Float64
or a matching matrix (N, 3)
. pad
specifies the framing width in units of L
.
PhaseSpaceDTFE.PS_DTFE_periodic
— MethodPS_DTFE_periodic(coords_q, coords_x, velocities, m, depth, sim_box; pad=0.05)
Constructs the PS-DTFE-object from the initial positions coords_q
, final positions coords_x
and velocities velocities
assuming periodic boundary conditions. These are Float64
matrices of size (N,3)
. m
is the particle mass, a single Float64
or a matching matrix (N, 3)
. pad
specifies the framing width in units of L
.
PhaseSpaceDTFE.density
— Methoddensity(p::Vector{Float64}, estimator::PS_DTFE)
Evaluate the Phase-Space DTFE density estimate in the point p
.
PhaseSpaceDTFE.density_subbox
— Methoddensity_subbox(coords_arr, ps_dtfe_sb)
Evaluate the Phase-Space DTFE density estimates in given coordinates coords_arr
from the PS_DTFE_subbox
object ps_dtfe_sb
. coords_arr
can be of any shape (..., 3)
.
PhaseSpaceDTFE.findBox
— MethodfindBox(p::Vector{Float64}, BVH_tree::BVH)
Find the box in the Bounding Volume Hierarchy containing the point p
.
PhaseSpaceDTFE.findCandidateSimplices
— MethodfindCandidateSimplices(p::Vector{Float64}, BVH_tree::BVH)
Given a Bounding Volume Hierarchy, find a set candidate simplices that may contain the point p
. The function outputs the indices of the candidate simplices.
PhaseSpaceDTFE.findIntersections
— MethodfindIntersections(p::Vector{Float64}, BVH_tree::BVH, points, simplices)
Find the indices of the simplices that intersect the point p
.
PhaseSpaceDTFE.frame
— Functionframe(coords_q, coords_x, L, pad=0.05)
Cosmological N-body simulations normally work with periodic boundary conditions. This function adds a frame of periodic particle positions around the simulation box to implement periodicity in the Delaunay tesselation. pad
specifies the width of the frame in units of the simulation box size L
.
PhaseSpaceDTFE.frame_velocities
— Functionframe_velocities(coords_x, velocities, L, pad=0.05)
Cosmological N-body simulations normally work with periodic boundary conditions. This function adds a frame of velocities (corresponding to the periodic particle positions) around the simulation box to implement periodicity in the Delaunay tesselation. pad
specifies the width of the frame in units of the simulation box size L
.
PhaseSpaceDTFE.get_coords_in_subbox
— Methodget_coords_in_subbox(coords, idx, N_sub, L)
From a given coordinates array coords
, get those coordinates contained in subbox number idx
.
PhaseSpaceDTFE.get_subbox_estimator
— Methodget_subbox_estimator(coords_q, coords_x, velocities, idx, N_sub, m, depth, sim_box::SimBox; pad=0.05, dir="./ps_dtfe")
Construct the Phase-Space DTFE object for given coordinates and velocities. Called for each subbox estimator construction.
PhaseSpaceDTFE.get_subbox_estimator
— Methodget_subbox_estimator(coords_q, coords_x, idx, N_sub, m, depth, sim_box::SimBox; pad=0.05, dir="./ps_dtfe")
Obtain the subbox estimator associated to a given position.
PhaseSpaceDTFE.get_subboxes
— Methodget_subboxes(ps_dtfe_sub::PS_DTFE_subbox)
Get all subbox indices.
PhaseSpaceDTFE.inSimplices
— MethodinSimplices(p::Vector{Float64}, estimator::PS_DTFE)
Find the simplices in the Eulerian-evolved tesselation that contain the point p
.
PhaseSpaceDTFE.intersection
— Methodintersection(p::Vector{Float64}, simplex)
Check whether the point p
is contained in the simplex.
PhaseSpaceDTFE.numberOfStreams
— MethodnumberOfStreams(p::Vector{Float64}, estimator::PS_DTFE)
Evaluates the number of incoming streams in point in the point p
.
PhaseSpaceDTFE.numberOfStreams_subbox
— MethodnumberOfStreams_subbox(coords_arr, ps_dtfe_sb)
Evaluate the number of streams field in given coordinates coords_arr
from the PS_DTFE_subbox
object ps_dtfe_sb
. coords_arr
can be of any shape (..., 3)
.
PhaseSpaceDTFE.ps_dtfe_subbox
— Methodps_dtfe_subbox(coords_q, coords_x, velocities, m, depth, sim_box::SimBox; N_target=128, pad=0.05, dir="./ps_dtfe")
Construct the Phase-Space DTFE subbox estimator given the initial positions coords_q
, final positions coords_x
and velocities velocities
of an N-body simulation, assuming periodic boundary positions. The Boundary Volume Hirarchy goes depth
levels deep. For data types, see documentation of PS_DTFE_periodic()
. The keyword argument N_target=128
specifies the number of particles (N_target
^3) per subbox. pad
is the framing width in units of L
. dir
is the data storage directory.
PhaseSpaceDTFE.ps_dtfe_subbox
— Methodps_dtfe_subbox(coords_q, coords_x, m, depth, sim_box::SimBox; N_target=128, pad=0.05, dir="./ps_dtfe")
Construct the Phase-Space DTFE subbox estimator given the initial positions coords_q
and final positions coords_x
of an N-body simulation, assuming periodic boundary positions. The Boundary Volume Hirarchy goes depth
levels deep. For data types, see documentation of PS_DTFE_periodic()
. The keyword argument N_target=128
specifies the number of particles (N_target
^3) per subbox. pad
is the framing width in units of L
. dir
is the data storage directory.
PhaseSpaceDTFE.translate
— Methodtranslate(coords_q, coords_x, L)
Cosmological N-body simulations normally work with periodic boundary conditions. This function shifts both the initial and final positions of the particles such that they are located in the simulation box in Eulerian space.
PhaseSpaceDTFE.unwrap_s
— Methodunwrap_s(s, L)
Cosmological N-body simulations normally work with periodic boundary conditions. This function undoes the wrapping of particles around the box in the displacement field, assuming the particles did not travel more than half the size of the box.
PhaseSpaceDTFE.unwrap_x_
— Methodunwrap_x_(q, x, L)
Cosmological N-body simulations normally work with periodic boundary conditions. This function undoes the wrapping of particles around the box, assuming the particles did not travel more than half the size of the box.
PhaseSpaceDTFE.velocity
— Functionvelocity(p::Vector{Float64}, estimator::PS_DTFE, single_stream=false)
Evaluate the Phase-Space DTFE velocity estimate in the point p
. Returns a matrix of size (n, 3)
for n
stream velocities ((1,3)
in single-stream regions, (n, 3)
otherwise). If single_stream=true
, returns [NaN NaN NaN]
in multistream regions.
PhaseSpaceDTFE.velocitySum
— MethodvelocitySum(p::Vector{Float64}, estimator::PS_DTFE)
Evaluate the stream-mass weighted sum of the Phase-Space DTFE velocities estimates for the individual streams in the point p
.
PhaseSpaceDTFE.velocitySum_subbox
— MethodvelocitySum_subbox(coords_arr, ps_dtfe_sb)
Evaluate the stream-mass weighted sum of the Phase-Space DTFE stream velocity estimates in given coordinates coords_arr
from the PS_DTFE_subbox
object ps_dtfe_sb
. coords_arr
can be of any shape (..., 3)
.
PhaseSpaceDTFE.velocity_subbox
— Methodvelocity_subbox(coords_arr, ps_dtfe_sb)
Evaluate the Phase-Space DTFE velocity estimates in given coordinates coords_arr
from the PS_DTFE_subbox
object ps_dtfe_sb
. coords_arr
can be of any shape (..., 3)
. In the current code release, [NaN NaN NaN]
is returned in multistream regions, i.e. individual stream velocities are not supported.
PhaseSpaceDTFE.volume
— Methodvolume(sim, points)
Evaluate the volume of the simplex sim
.