Commit b4ace6e9 by Peter Jentsch

docs

parent 6300ebe0
 ... ... @@ -41,54 +41,24 @@ function sample_mixing_edges!(weights_dict,contact_array,sample_cache,sampler_ma end end # """ # A type that defines the graph edges such that they can be easily resampled and then re-added to the graph. Created with `create_mixing_edges(..)`. # #Fields # total_edges::Int # Total number of edges in the struct. # contact_array::Matrix{Tuple{Vector{Int},Vector{Int}}} # A matrix of vector pairs, such that one node is in the first vector and the other is in the second. The position of the vector pairs in the matrix corresponds to the distribution in sampler_matrix used to sample them. There is probably a better way to represent these, I did this so they could be sampled fast. We only use the upper triangle of this but Julia lacks a good Symmetric matrix type. # sample_cache::Matrix{Vector{Int}} # The structure that pre-allocates the space for the weights of the edges in contact array. This is filled with weights and then the weights are added to weights_dict. We only use the upper triangle of this but Julia lacks a good Symmetric matrix type. # weights_dict::Dictionary{GraphEdge,UInt8} # Stores the weights used in the graph, so they can be easily resampled. # sampler_matrix::M # This is the matrix of distributions, from which the edge weights are sampled. Specifically, weights for edges in `contact_array[i,j]` come from the distribution in `sampler_matrix[i,j]`, and are placed into `sample_cache[i,j]`. We only use the upper triangle of this but Julia lacks a good Symmetric matrix type. See `sample_mixing_graph!`. # """ # """ # This function constructs the `MixingEdges` type for rest and WS graphs. Calls `generate_contact_vectors!(..)` to get the degree distributions for a bipartite graph for each pair of demographics, and then adds edges to MixingEdges.contact_array with the Chung-Lu approach. # """ # """ # This function constructs the `MixingEdges` type for the home graphs. Simply adds edges to MixingEdges from the graph `g`, since we already create that in `generate_population`. # """ """ Stores the full time dependent mixing graph for the model. I think this might be a weird abstraction for this idea but it works fine. #Fields remade_graphs::NTuple{N,G} These are references to the graphs that get resampled everyday. resampled_graphs::NTuple{N,G} resampled_graphs::NTuple{N,G} These are references to the graphs that get resampled everyday. List of lists of graphs, one list for each day. graph_list::Vector{Vector{G}} List of lists of graphs, one list for each day. """ struct TimeDepMixingGraph{G,T1,T2} remade_graphs::T1 ... ... @@ -185,6 +155,33 @@ end """ Weighted graph type. Stores the graph in `g`, and the weights and edges in `mixing_edges`. Fields g::SimpleGraph Stores the actual graph structure contact_array::Matrix{Tuple{Vector{Int},Vector{Int}}} A matrix of vector pairs, such that one node is in the first vector and the other is in the second. The position of the vector pairs in the matrix corresponds to the distribution in sampler_matrix used to sample them. There is probably a better way to represent these, I did this so they could be sampled fast. We only use the upper triangle of this but Julia lacks a good Symmetric matrix type. sample_cache::Matrix{Vector{Int}} The structure that pre-allocates the space for the weights of the edges in contact array. This is filled with weights and then the weights are added to weights_dict. We only use the upper triangle of this but Julia lacks a good Symmetric matrix type. weights_dict::Dictionary{GraphEdge,UInt8} Stores the weights used in the graph, so they can be easily resampled. mixing_matrix::M1 Matrix of distributions determining node degrees sampler_matrix::M Matrix of distributions determining the edge weights """ mutable struct WeightedGraph{G,M1,M2} g::G ... ...
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!