#include <armadillo>

namespace dG_global
{
  extern int n_partitions;
  extern arma::urowvec E_partitions;
  extern arma::field<arma::urowvec> partitions;
  
  extern arma::field<arma::uvec> mapM_local, vmapM_local, mapP_local, vmapP_local;
  extern arma::field<arma::uvec> mapB_local, vmapB_local;
  extern arma::field<arma::uvec> mapM_inner_local, vmapM_inner_local, mapP_inner_local, vmapP_inner_local, mapM_interfaces_local, vmapM_interfaces_local;
  extern arma::field<arma::uvec> neighbouring_partitions_IDs_local, neighbouring_partitions_IDs_unique_local;
  extern arma::field<arma::uvec> permutation_vector_local;
  
  extern arma::uvec mapM_inner, vmapM_inner, mapP_inner, vmapP_inner, mapM_interfaces, vmapM_interfaces;
  extern arma::uvec neighbouring_partitions_IDs, neighbouring_partitions_IDs_unique;
  extern arma::uvec permutation_vector;
  
  extern arma::uvec GlobalToLocal_map(arma::uword global_nr, arma::urowvec &vector_of_elems);
  extern arma::uvec GlobalToLocal_vmap(arma::uword global_nr, arma::urowvec &vector_of_elems);
  extern arma::uvec LocalToGlobal_map(arma::uword local_nr, arma::urowvec &vector_of_elems);
  void ParallelStartUp();
}
