Program Listing for File io.h

↰ Return to documentation for file (include/immersx/vascularization/io.h)

// Copyright (C) 2026 by Luca Heltai
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#ifndef immersx_vascularization_io_h
#define immersx_vascularization_io_h
#include <immersx/vascularization/generation.h>

#include <filesystem>

namespace ImmersX::Vascularization
{
  struct NetworkArchive
  {
    NetworkData                  network;
    std::vector<Territory>       territories;
    std::vector<TerminalPair>    terminal_pairs;
    std::vector<TerminalTriplet> terminal_triplets;
  };

  void
  save_network(const std::filesystem::path     &directory,
               const NetworkData               &network,
               const std::vector<Territory>    &territories,
               const std::vector<TerminalPair> &terminal_pairs,
               MPI_Comm                         communicator);

  void
  save_network(const std::filesystem::path        &directory,
               const NetworkData                  &network,
               const std::vector<Territory>       &territories,
               const std::vector<TerminalPair>    &terminal_pairs,
               const std::vector<TerminalTriplet> &terminal_triplets,
               MPI_Comm                            communicator);

  NetworkArchive
  load_network(const std::filesystem::path    &directory,
               const dealii::Triangulation<3> &background,
               const dealii::Mapping<3>       &mapping,
               double                          halo,
               MPI_Comm                        communicator);
} // namespace ImmersX::Vascularization
#endif