Solve of isolated parallel networks
Where two or more hydraulically, thermally and chemically separate networks have been defined under one Network - either intentionally or "accidentally" by disabling connecting components (see #600) - the solve should ideally be performed separately. Because,
- if solved as one, the convergence of one depends on the convergence of the other
- the reduction in matrix size speeds up the calculations, although, due to overheads, not all of the potential gains may be realised.
Maybe the approach from https://github.com/jonathanwww/PiES can help. They use networkx under the hood, but it may give an idea about how equation blocking can be implemented.
Hi @jowr, thanks for pointing towards that. I will have a look, how it was implemented there. I'll hope I can avoid using networkx to minimize extra dependencies and update you how things turned out. Right now there is already the structure available, that can form these blocks in principle, i.e. the incidence_matrix which indicates which equation depends on which variables (and is used for troubleshooting the Jacobian right now). Have a good week!