-
-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Does this package overlap with HierarchicalMatrices.jl? #25
Comments
Does it work inside the ODE and SDE solvers, and does have easy resizing? |
What do you mean by easy resizing? |
tissue3 = construct(Tissue, deepcopy([population, population2]))
add_node!(embryo, tissue3) # Adds a new tissue to the embryo
remove_node!(embryo, 2, 1) # Removes population 1 from tissue 2 of the embryo The main purpose of this package is to be able to add and remove portions of the array with minimal cost. |
On the matrix level what does |
This is an abstract vector. If it was a matrix it would be a ragged array in general, but it would be like adding rows and columns |
HierarchicalMatrices.jl is meant to create matrices with heterogeneous leaf types (cell types in MultiScaleArrays.jl). Also, in HierarchicalMatrices.jl, the nodes can support further hierarchical nodes and leaves themselves. The main application (so far) is a fast BLAS-overridden It can modify the block types on-the-fly (provided the new type was included in the parse-time list), but it can't modify the number of blocks on-the-fly as it stores a concrete matrix of each type as a placeholder. |
Ahhh.... so it's more of a |
I mean, it could "remove" a block by replacing it with a type of zero array (or just change the referenced type of block number in the hash table |
It would be fun to try it with an n-body simulation (which I think is an application of fast multipole? And HierarchicalMatrix solvers == Fast multipole) |
Yes, that would be fantastic. The example shows usage for a couple different potentials. |
so explicit methods work immediately |
So it sounds like the answer is "yes it overlaps, but not 100%". So the question is whether there is enough overlap to try to make a common interface. BlockArrays.jl is another overlapping package. I'd suggest at the very least both HierarchicalMatrices.jl and MultiScaleArrays.jl support |
Yes, it's basically a hierarchical vector with a few things:
It's basically for building beefed up simulations of http://docs.juliadiffeq.org/latest/features/callback_functions.html#Example-3:-Growing-Cell-Population-1 where you have entire gene regulatory networks, different cell types, and morphogen gradients across space. I built it for modeling single cell RNA-seq data, so it needs to satisfy those 5 points. I'd be surprised if anything else really hits this dead on because it's a very specific list of requirements for a specific modeling application. |
Let's take that over to DiffEqPhysics. There might be a GSoC for n-body problems so this would be great to handle. |
P.S. How many levels deep do you usually go? I've found that indexing usually slows down past about 10-12 levels, curious what you find. |
Usually just 3. |
This package seems to be very similar to HierarchicalMatrices.jl. Maybe it makes sense to unify them?
@MikaelSlevinsky
The text was updated successfully, but these errors were encountered: