| 
    openCARP
    
   Doxygen code documentation for the open cardiac electrophysiology simulator openCARP 
   | 
 
Functions handling a distributed mesh. More...
#include <algorithm>#include <iostream>#include <string>#include "asciiPlotter.hpp"#include "SF_container.h"#include "SF_network.h"#include "SF_parallel_layout.h"#include "SF_numbering.h"#include "SF_sort.h"#include "SF_mesh_io.h"#include "SF_vector.h"Go to the source code of this file.
Namespaces | |
| SF | |
Functions | |
| template<class T , class S > | |
| void | SF::permute_mesh (const meshdata< T, S > &inmesh, meshdata< T, S > &outmesh, const vector< T > &perm) | 
| Permute the element data of a mesh based on a given permutation.  More... | |
| template<class T , class S > | |
| void | SF::redistribute_elements (meshdata< T, S > &mesh, meshdata< T, S > &sendbuff, vector< T > &part) | 
| Redistribute the element data of a parallel mesh among the ranks based on a partitioning.  More... | |
| template<class T , class S > | |
| void | SF::redistribute_elements (meshdata< T, S > &mesh, vector< T > &part) | 
| Redistribute the element data of a parallel mesh among the ranks based on a partitioning.  More... | |
| template<class T , class S > | |
| void | SF::redistribute_mesh (meshdata< T, S > &mesh, vector< T > &part) | 
| Redistribute both element and vertex data of a mesh.  More... | |
| template<class T , class S > | |
| void | SF::write_mesh_parallel (const meshdata< T, S > &mesh, bool binary, std::string basename) | 
| Write a parallel mesh to harddisk without gathering it on one rank.  More... | |
| template<class T , class S > | |
| void | SF::gather_mesh (const meshdata< T, S > &locmesh, meshdata< T, S > &globmesh) | 
| Gather a mesh on rank 0.  More... | |
| template<class T , class S > | |
| void | SF::print_DD_info (const meshdata< T, S > &mesh) | 
| Print some basic information on the domain decomposition of a mesh.  More... | |
| template<class T , class S > | |
| void | SF::extract_mesh (const vector< bool > &keep, const meshdata< T, S > &mesh, meshdata< T, S > &submesh) | 
| Extract a submesh from a given mesh.  More... | |
| template<class T , class S > | |
| void | SF::rebalance_mesh (meshdata< T, S > &mesh) | 
| Rebalance the parallel distribution of a mesh, if a local size is 0.  More... | |
| template<class T , class S > | |
| void | SF::extract_myocardium (const meshdata< T, S > &mesh, meshdata< T, S > &submesh) | 
| Extract the myocardium submesh.  More... | |
| template<class T , class S > | |
| void | SF::extract_tagbased (const meshdata< T, S > &mesh, meshdata< T, S > &submesh) | 
| Extract a submesh based on element tags.  More... | |
| template<class T , class S > | |
| void | SF::print_mesh_graph (meshdata< T, S > &mesh) | 
| One-by-one each process prints the graph of a given mesh.  More... | |
| template<class T , class S > | |
| void | SF::inter_domain_mapping (const meshdata< T, S > &mesh_a, const meshdata< T, S > &mesh_b, const SF_nbr snbr, index_mapping< T > &a_to_b) | 
| Submesh index mapping between different domains/meshes.  More... | |
| template<class T > | |
| void | SF::insert_surf_tri (T n1, T n2, T n3, size_t eidx, triple< T > &surf, tri_sele< T > &sele, hashmap::unordered_map< triple< T >, tri_sele< T > > &surfmap) | 
| template<class T > | |
| void | SF::insert_surf_quad (T n1, T n2, T n3, T n4, size_t eidx, vector< T > &buff, quadruple< T > &surf, quad_sele< T > &sele, hashmap::unordered_map< quadruple< T >, quad_sele< T > > &surfmap) | 
| template<class T > | |
| void | SF::insert_surf_tet (const T *nod, const size_t eidx, hashmap::unordered_map< triple< T >, tri_sele< T > > &surfmap) | 
| template<class T > | |
| void | SF::insert_surf_pyr (const T *nod, const size_t eidx, vector< T > &buff, hashmap::unordered_map< triple< T >, tri_sele< T > > &surfmap, hashmap::unordered_map< quadruple< T >, quad_sele< T > > &qsurfmap) | 
| template<class T > | |
| void | SF::insert_surf_pri (const T *nod, const size_t eidx, vector< T > &buff, hashmap::unordered_map< triple< T >, tri_sele< T > > &surfmap, hashmap::unordered_map< quadruple< T >, quad_sele< T > > &qsurfmap) | 
| template<class T > | |
| void | SF::insert_surf_hex (const T *nod, const size_t eidx, vector< T > &buff, hashmap::unordered_map< quadruple< T >, quad_sele< T > > &surfmap) | 
| template<class T , class S > | |
| void | SF::search_for_surface (const meshdata< T, S > &mesh, const SF_nbr numbering, const hashmap::unordered_map< triple< T >, tri_sele< T > > &search_tri, const hashmap::unordered_map< quadruple< T >, quad_sele< T > > &search_quad, hashmap::unordered_map< triple< T >, tri_sele< T > > &found_tri, hashmap::unordered_map< quadruple< T >, quad_sele< T > > &found_quad) | 
| template<class T , class S > | |
| void | SF::compute_surface (const meshdata< T, S > &mesh, const SF_nbr numbering, const hashmap::unordered_set< T > &tags, hashmap::unordered_map< triple< T >, tri_sele< T > > &tri_surf, hashmap::unordered_map< quadruple< T >, quad_sele< T > > &quad_surf) | 
| template<class T , class S > | |
| void | SF::compute_surface (const meshdata< T, S > &mesh, const SF_nbr numbering, hashmap::unordered_map< triple< T >, tri_sele< T > > &tri_surf, hashmap::unordered_map< quadruple< T >, quad_sele< T > > &quad_surf) | 
| template<class V > | |
| void | SF::get_hashmap_duplicates (const vector< V > &data, const MPI_Comm comm, vector< bool > &is_dup) | 
| template<class K , class V > | |
| void | SF::remove_duplicates (hashmap::unordered_map< K, V > &map, const MPI_Comm comm) | 
| remove parallel duplicates from a hashmap::unordered_map  More... | |
| template<class K > | |
| void | SF::remove_duplicates (hashmap::unordered_set< K > &set, const MPI_Comm comm) | 
| remove parallel duplicates from a hashmap::unordered_set  More... | |
| template<class T > | |
| void | SF::remove_parallel_duplicates (hashmap::unordered_map< triple< T >, tri_sele< T >> &tri_surf, hashmap::unordered_map< quadruple< T >, quad_sele< T > > &quad_surf, MPI_Comm comm) | 
| template<class T , class S > | |
| void | SF::convert_surface_mesh (hashmap::unordered_map< triple< T >, tri_sele< T >> &tri_surf, hashmap::unordered_map< quadruple< T >, quad_sele< T > > &quad_surf, meshdata< T, S > &surfmesh, vector< T > &elem_orig) | 
| template<class T , class S > | |
| void | SF::convert_mesh_surface (const meshdata< T, S > &surfmesh, hashmap::unordered_map< triple< T >, tri_sele< T >> &tri_surf, hashmap::unordered_map< quadruple< T >, quad_sele< T >> &quad_surf) | 
| template<class T , class S > | |
| void | SF::compute_surface_mesh (const meshdata< T, S > &mesh, const SF_nbr numbering, const hashmap::unordered_set< T > &tags, meshdata< T, S > &surfmesh) | 
| Compute the surface of a given mesh.  More... | |
| template<class T , class S > | |
| void | SF::compute_surface_mesh (const meshdata< T, S > &mesh, const SF_nbr numbering, meshdata< T, S > &surfmesh) | 
| Compute the surface of a given mesh.  More... | |
| template<class T , class S > | |
| void | SF::read_surface_mesh (const meshdata< T, S > &mesh, meshdata< T, S > &surface, std::string filename) | 
| template<class T > | |
| void | SF::restrict_to_set (vector< T > &v, const hashmap::unordered_set< T > &set) | 
| template<class T > | |
| void | SF::restrict_to_set (vector< T > &v, const vector< T > &vset) |