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) |