Multi-level algorithms are used to arrange very large graphs quickly by running other layout algorithms on small parts of the original diagram. Since layout algorithms are usually of polynomial complexity, applying them on smaller subgraphs considerably reduces the overall running time. Multi-level algorithms typically construct a virtual graph that is coarse representation of the diagram, where each virtual node represents a set of actual nodes and links between them. Each set is arranged independently from the others, then the virtual graph is arranged too and the actual sets are placed at the positions of the virtual nodes.
CompositeLayout partitions the diagram into several subgraphs and applies the algorithm specified via the SubgraphLayout property on each part. If the part is a tree, it is arranged using the algorithm specified via the SubtreeLayout property, which is set to a radial TreeLayout instance by default. Finally the algorithm specified via MasterLayout is applied on the graph that represents the overall partition. By running the polynomial-complexity layout algorithms on small subgraphs, CompositeLayout is able to process a large graph much faster than if a layout algorithm is applied on the whole graph.
CompositeLayout can run on custom partitions specified as lists of nodes, or automatically partition the diagram via two automatic methods based on graph connectivity and graph path lengths. Set the PartitionMethod and CustomPartition properties to specify how the diagram should be partitioned.