Skip to content

Commit

Permalink
Merge a17f157 into 32e0153
Browse files Browse the repository at this point in the history
  • Loading branch information
Vilin97 committed Aug 31, 2022
2 parents 32e0153 + a17f157 commit 5370556
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 38 deletions.
2 changes: 1 addition & 1 deletion src/JumpProcesses.jl
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ export reset_aggregated_jumps!
export ExtendedJumpArray

# spatial structs and functions
export CartesianGrid, CartesianGridRej, CartesianGridIter
export CartesianGrid, CartesianGridRej
export SpatialMassActionJump
export outdegree, num_sites, neighbors
export NSM, DirectCRDirect
Expand Down
10 changes: 5 additions & 5 deletions src/spatial/hop_rates.jl
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,23 @@ function HopRates(hopping_constants::Vector{F}, spatial_system) where {F <: Numb
HopRatesGraphDs(hopping_constants, num_sites(spatial_system))
end
function HopRates(hopping_constants::Vector{F},
grid::Union{CartesianGridRej, CartesianGridIter}) where {F <: Number}
grid::CartesianGridRej) where {F <: Number}
HopRatesGraphDs(hopping_constants, num_sites(grid))
end

function HopRates(hopping_constants::Matrix{F}, spatial_system) where {F <: Number}
HopRatesGraphDsi(hopping_constants)
end
function HopRates(hopping_constants::Matrix{F},
grid::Union{CartesianGridRej, CartesianGridIter}) where {F <: Number}
grid::CartesianGridRej) where {F <: Number}
HopRatesGraphDsi(hopping_constants)
end

function HopRates(hopping_constants::Matrix{Vector{F}}, spatial_system) where {F <: Number}
HopRatesGraphDsij(hopping_constants)
end
function HopRates(hopping_constants::Matrix{Vector{F}},
grid::Union{CartesianGridRej, CartesianGridIter}) where {F <: Number}
grid::CartesianGridRej) where {F <: Number}
HopRatesGridDsij(hopping_constants, grid)
end

Expand All @@ -40,7 +40,7 @@ function HopRates(p::Pair{SpecHop, SiteHop},
HopRatesGraphDsLij(p...)
end
function HopRates(p::Pair{SpecHop, SiteHop},
grid::Union{CartesianGridRej, CartesianGridIter}) where
grid::CartesianGridRej) where
{F <: Number, SpecHop <: Vector{F}, SiteHop <: Vector{Vector{F}}}
HopRatesGridDsLij(p..., grid)
end
Expand All @@ -51,7 +51,7 @@ function HopRates(p::Pair{SpecHop, SiteHop},
HopRatesGraphDsiLij(p...)
end
function HopRates(p::Pair{SpecHop, SiteHop},
grid::Union{CartesianGridRej, CartesianGridIter}) where
grid::CartesianGridRej) where
{SpecHop <: Matrix{F}, SiteHop <: Vector{Vector{F}}} where {F <: Number}
HopRatesGridDsiLij(p..., grid)
end
Expand Down
26 changes: 1 addition & 25 deletions src/spatial/topology.jl
Original file line number Diff line number Diff line change
Expand Up @@ -144,31 +144,7 @@ function rand_nbr(rng, grid::CartesianGridRej, site::Int)
end
end

# neighbor sampling is iterator-based
struct CartesianGridIter{N, T}
dims::NTuple{N, Int}
nums_neighbors::Vector{Int8}
CI::CartesianIndices{N, T}
LI::LinearIndices{N, T}
offsets::Vector{CartesianIndex{N}}
end
function CartesianGridIter(dims::Tuple)
dim = length(dims)
CI = CartesianIndices(dims)
LI = LinearIndices(dims)
offsets = potential_offsets(dim)
nums_neighbors = Int8[count(x -> x + CI[site] in CI, offsets) for site in 1:prod(dims)]
CartesianGridIter(dims, nums_neighbors, CI, LI, offsets)
end
CartesianGridIter(dims) = CartesianGridIter(Tuple(dims))
function CartesianGridIter(dimension, linear_size::Int)
CartesianGridIter([linear_size for i in 1:dimension])
end
function rand_nbr(rng, grid::CartesianGridIter, site::Int)
nth_nbr(grid, site, rand(rng, 1:outdegree(grid, site)))
end

function Base.show(io::IO, ::MIME"text/plain",
grid::Union{CartesianGridRej, CartesianGridIter})
grid::CartesianGridRej)
println(io, "A Cartesian grid with dimensions $(grid.dims)")
end
2 changes: 1 addition & 1 deletion test/spatial/ABC.jl
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ function get_mean_end_state(jump_prob, Nsims)
end

# testing
grids = [CartesianGridRej(dims), CartesianGridIter(dims), Graphs.grid(dims)]
grids = [CartesianGridRej(dims), Graphs.grid(dims)]
jump_problems = JumpProblem[JumpProblem(prob, NSM(), majumps,
hopping_constants = hopping_constants,
spatial_system = grid,
Expand Down
10 changes: 5 additions & 5 deletions test/spatial/diffusion.jl
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ rel_tol = 0.02
times = 0.0:(tf / num_time_points):tf

algs = [NSM(), DirectCRDirect()]
grids = [CartesianGridRej(dims), CartesianGridIter(dims), Graphs.grid(dims)]
grids = [CartesianGridRej(dims), Graphs.grid(dims)]
jump_problems = JumpProblem[JumpProblem(prob, algs[2], majumps,
hopping_constants = hopping_constants,
spatial_system = grid,
Expand All @@ -80,7 +80,7 @@ for alg in algs
spatial_system = grids[1], save_positions = (false, false)))
push!(jump_problems,
JumpProblem(prob, alg, majumps, hopping_constants = hop_constants,
spatial_system = grids[3], save_positions = (false, false)))
spatial_system = grids[end], save_positions = (false, false)))
end

# hop rates of form L_{s,i,j}
Expand All @@ -96,7 +96,7 @@ for alg in algs
spatial_system = grids[1], save_positions = (false, false)))
push!(jump_problems,
JumpProblem(prob, alg, majumps, hopping_constants = hop_constants,
spatial_system = grids[3], save_positions = (false, false)))
spatial_system = grids[end], save_positions = (false, false)))
end

# hop rates of form D_s * L_{i,j}
Expand All @@ -113,7 +113,7 @@ for alg in algs
push!(jump_problems,
JumpProblem(prob, alg, majumps,
hopping_constants = Pair(species_hop_constants, site_hop_constants),
spatial_system = grids[3], save_positions = (false, false)))
spatial_system = grids[end], save_positions = (false, false)))
end

# hop rates of form D_{s,i} * L_{i,j}
Expand All @@ -130,7 +130,7 @@ for alg in algs
push!(jump_problems,
JumpProblem(prob, alg, majumps,
hopping_constants = Pair(species_hop_constants, site_hop_constants),
spatial_system = grids[3], save_positions = (false, false)))
spatial_system = grids[end], save_positions = (false, false)))
end

# testing
Expand Down
1 change: 0 additions & 1 deletion test/spatial/topology.jl
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ num_samples = 10^5
rel_tol = 0.01
grids = [
JP.CartesianGridRej(dims),
JP.CartesianGridIter(dims),
Graphs.grid(dims),
]
for grid in grids
Expand Down

0 comments on commit 5370556

Please sign in to comment.