#ifndef SRC_CONTACTNETWORK_HH #define SRC_CONTACTNETWORK_HH #include "levelcontactnetwork.hh" template <class GridType, int dim> class ContactNetwork { public: using LevelContactNetwork = LevelContactNetwork<GridType, dim>; private: std::vector<std::shared_ptr<LevelContactNetwork>> levelContactNetworks_; public: ContactNetwork() {} void addLevelContactNetwork(std::shared_ptr<LevelContactNetwork> levelContactNetwork); const std::shared_ptr<LevelContactNetwork>& addLevelContactNetwork(int nBodies, int nCouplings, int level); void assemble(); const std::shared_ptr<LevelContactNetwork>& levelContactNetwork(size_t level) const { return levelContactNetworks_[level]; } void resize(size_t size) { levelContactNetworks_.resize(size); } size_t size() const { return levelContactNetworks_.size(); } size_t maxLevel() const { return size()-1; } }; #endif