#include <MEDSPLITTER_MESHCollection.hxx>
Public Member Functions | |
| MESHCollection () | |
| MESHCollection (const MESHCollection &, Topology *, bool family_splitting=false, bool create_empty_groups=false) | |
| MESHCollection (const std::string &filename) | |
| MESHCollection (const std::string &filename, ParaDomainSelector &domainSelector) | |
| MESHCollection (const std::string &filename, const std::string &meshname) | |
| ~MESHCollection () | |
| bool | isParallelMode () const |
| void | write (const std::string &filename) |
| MESHCollectionDriver * | retrieveDriver () |
| MESHCollectionDriver * | getDriver () const |
| void | setDriverType (MEDSPLITTER::DriverType type) |
| void | buildCellGraph (MEDMEM::MEDSKYLINEARRAY *&array, int *&edgeweights) |
| Topology * | createPartition (int nbdomain, Graph::splitter_type type=Graph::METIS, const string &="", int *edgeweights=0, int *verticesweights=0) |
| Topology * | createPartition (const int *partition) |
| void | getTypeList (int *cell_list, int nb_cells, MED_EN::medEntityMesh entity, MED_EN::medGeometryElement *type_list) const |
| void | getCoordinates (int *node_list, int nb_nodes, double *coordinates) const |
| void | getNodeConnectivity (const int *cell_list, int nb_cells, MED_EN::medEntityMesh, MED_EN::medGeometryElement type, int *type_connectivity) const |
| void | getPolygonNodeConnectivity (const int *cell_list, int nb_cells, MED_EN::medEntityMesh entity, vector< int > &type_connectivity, vector< int > &connectivity_index) const |
| void | getPolyhedraNodeConnectivity (const int *cell_list, int nb_cells, MED_EN::medEntityMesh entity, vector< int > &type_connectivity, vector< int > &connectivity_index) const |
| void | getFaceConnectivity (const int *cell_list, int nb_cells, MED_EN::medEntityMesh, MED_EN::medGeometryElement type, int *type_connectivity) const |
| int | getMeshDimension () const |
| int | getSpaceDimension () const |
| std::string | getSystem () const |
| std::string | getMeshName () const |
| MED_EN::medEntityMesh | getSubEntity () const |
| std::vector< MEDMEM::MESH * > & | getMesh () |
| MEDMEM::MESH * | getMesh (int) const |
| std::vector < MEDMEM::CONNECTZONE * > & | getCZ () |
| Topology * | getTopology () const |
| void | setTopology (Topology *topology) |
| string | getName () const |
| void | setName (const string &name) |
| string | getDescription () const |
| void | setDescription (const string &name) |
| void | castFamilies (const MESHCollection &old_collection) |
| transfers families from an old MESHCollection to new mesh | |
| void | castSupport (const MESHCollection &old_collection, std::vector< const MEDMEM::SUPPORT * > &old_support, std::vector< MEDMEM::SUPPORT * > &new_support) |
| void | castAllFields (const MESHCollection &old_collection) |
| casts all the fields to the new mesh collection | |
| void | castField (const MESHCollection &old_collection, const string &fieldname, int itnumber, int ordernumber) |
| casts one specific field to the new mesh collection | |
| void | setIndivisibleGroup (const string &a) |
| void | buildConnectZones () |
| constructing connect zones | |
| void | buildConnectZonesBetweenProcs (std::vector< std::map< MED_EN::medGeometryElement, std::vector< MEDSPLITTER_FaceModel * > > > &, map< pair< int, int >, MEDMEM::MEDSKYLINEARRAY * > &local_cell_cell_correspondency) |
| void | addJointGroup (const std::vector< int > &, int idomain, int idistant) |
| Adds a group of joint faces. | |
| void | setSubdomainBoundaryCreates (bool flag) |
| bool | getSubdomainBoundaryCreates () |
| void | setFamilySplitting (bool flag) |
| bool | getFamilySplitting () |
| void | setCreateEmptyGroups (bool flag) |
| bool | getCreateEmptyGroups () |
Static Public Member Functions | |
| static bool | isDimensionOK (MED_EN::medGeometryElement type, int dim) |
Private Member Functions | |
| void | createNodalConnectivity (const MESHCollection &initial_collection, int idomain, MED_EN::medEntityMesh entity) |
| creates connectivities for a domain and an entity (face or cell) | |
| void | treatIndivisibleRegions (int *tag) |
| creates the tags for indivisible groups | |
| template<class T > | |
| void | castFields (const MESHCollection &old_collection, const string &fieldname, int itnumber, int ordernumber) |
| projects a field from an old collection to the present one field is identified by (name, dt, it) | |
| void | getFaces (int idomain, std::map< MED_EN::medGeometryElement, std::vector< MEDSPLITTER_FaceModel * > > &) |
| MEDSPLITTER_FaceModel * | getCommonFace (int ip1, int ilocal1, int ip2, int ilocal2, int face_index) |
| template<class TID2CONN > | |
| void | fillGlobalConnectivity (TID2CONN &node2cell, TID2CONN &cell2node) |
| Create cell->node and node->cell connectivities for domains. | |
Private Attributes | |
| Topology * | _topology |
| link to mesh_collection topology | |
| bool | _owns_topology |
| control over topology | |
| boost::shared_ptr< Graph > | _cell_graph |
| link to graph | |
| MESHCollectionDriver * | _driver |
| Driver for read/write operations. | |
| ParaDomainSelector * | _domain_selector |
| Parallelizer - mark of parallel execution mode. | |
| std::vector< MEDMEM::MESH * > | _mesh |
| links to meshes | |
| int | _i_non_empty_mesh |
| index of a non empty mesh within _mesh (in parallel mode all of meshes can be empty) | |
| std::vector < MEDMEM::CONNECTZONE * > | _connect_zones |
| links to connectzones | |
| std::vector< std::string > | _indivisible_regions |
| list of groups that are not to be splitted | |
| string | _name |
| name of global mesh | |
| string | _description |
| description of global mesh | |
| DriverType | _driver_type |
| specifies the driver associated to the collection | |
| bool | _subdomain_boundary_creates |
| bool | _family_splitting |
| bool | _create_empty_groups |
| MESHCollection::MESHCollection | ( | ) |
| MESHCollection::MESHCollection | ( | const MESHCollection & | initial_collection, |
| Topology * | topology, | ||
| bool | family_splitting = false, |
||
| bool | create_empty_groups = false |
||
| ) |
constructor creating a new mesh collection (mesh series + topology) from an old collection and a new topology
On output, the constructor has built the meshes corresponding to the new mesh collection. The new topology has been updated so that face and node mappings are included. The families have been cast to their projections in the new topology.
| initial_collection | collection from which the data (coordinates, connectivity) are taken |
| topology | topology containing the cell mappings |
References MEDSPLITTER.MESHCollection._domain_selector, MEDSPLITTER.MESHCollection._driver, MEDSPLITTER.MESHCollection._i_non_empty_mesh, MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, MEDMEM.MeshFuse.append(), MEDSPLITTER.MESHCollection.castFamilies(), MEDMEM.MeshFuse.concatenate(), MEDSPLITTER.Topology.createFaceMapping(), MEDSPLITTER.MESHCollection.createNodalConnectivity(), MEDSPLITTER.Topology.getCellList(), MEDSPLITTER.Topology.getCellNumber(), MEDSPLITTER.Topology.getFaceList(), MEDSPLITTER.Topology.getFaceNumber(), MEDSPLITTER.Topology.getFusedCellNumbers(), MEDSPLITTER.Topology.getFusedFaceNumbers(), MEDSPLITTER.MESHCollection.getMesh(), MEDSPLITTER.MeshSendReceive.getMesh(), MEDSPLITTER.MESHCollection.getMeshDimension(), MEDSPLITTER.MESHCollection.getName(), MEDSPLITTER.Topology.getNodeList(), MEDSPLITTER.Topology.getNodeNumber(), MEDSPLITTER.ParaDomainSelector.getProccessorID(), MEDSPLITTER.ParaDomainSelector.getProcShift(), MEDSPLITTER.MESHCollection.getSpaceDimension(), MEDSPLITTER.ParaDomainSelector.isMyDomain(), MEDSPLITTER.MESHCollection.isParallelMode(), MED_EN.MED_CELL, MED_EN.MED_EDGE, MED_EN.MED_FACE, medutilities.mesh_dim, med_field_anal.mesh_name, MEDSPLITTER.Topology.nbDomain(), MEDSPLITTER.ParaDomainSelector.nbProcs(), MEDSPLITTER.ParaDomainSelector.rank(), MEDSPLITTER.MESHCollectionDriver.readMeshDimension(), MEDSPLITTER.Topology.recreateMappingAfterFusion(), MEDSPLITTER.MeshSendReceive.recv(), and MEDSPLITTER.ParaDomainSelector.setNbDomains().
| MEDSPLITTER.MESHCollection.MESHCollection | ( | const std::string & | filename | ) |
| MEDSPLITTER.MESHCollection.MESHCollection | ( | const std::string & | filename, |
| ParaDomainSelector & | domainSelector | ||
| ) |
| MEDSPLITTER.MESHCollection.MESHCollection | ( | const std::string & | filename, |
| const std::string & | meshname | ||
| ) |
| MESHCollection::~MESHCollection | ( | ) |
| bool MEDSPLITTER.MESHCollection.isParallelMode | ( | ) | const |
| void MEDSPLITTER.MESHCollection.write | ( | const std::string & | filename | ) |
| MESHCollectionDriver * MESHCollection::retrieveDriver | ( | ) |
creates or gets the link to the collection driver
References MEDSPLITTER.MESHCollection._driver, MEDSPLITTER.MESHCollection._driver_type, MEDSPLITTER.MedAscii, and MEDSPLITTER.MedXML.
| MESHCollectionDriver * MESHCollection::getDriver | ( | ) | const |
gets an existing driver
References MEDSPLITTER.MESHCollection._driver.
| void MEDSPLITTER.MESHCollection.setDriverType | ( | MEDSPLITTER::DriverType | type | ) |
References medClient_test.type.
| void MESHCollection::buildCellGraph | ( | MEDMEM::MEDSKYLINEARRAY *& | array, |
| int *& | edgeweights | ||
| ) |
Method creating the cell graph
| array | returns the pointer to the structure that contains the graph |
| edgeweight | returns the pointer to the table that contains the edgeweights (only used if indivisible regions are required) |
References MEDSPLITTER.MESHCollection._domain_selector, MEDSPLITTER.MESHCollection._indivisible_regions, MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, MEDSPLITTER.Topology.convertCellToGlobal(), MEDSPLITTER.MESHCollection.fillGlobalConnectivity(), MEDSPLITTER.Topology.getCellNumber(), MEDMEM.MEDSKYLINEARRAY.getLength(), MEDSPLITTER.MESHCollection.getMeshDimension(), MEDSPLITTER.Topology.getNodeNumber(), MEDSPLITTER.ParaDomainSelector.getProcShift(), medClient_test.index, MEDSPLITTER.MESHCollection.isParallelMode(), MEDSPLITTER.Topology.nbCells(), MEDSPLITTER.Topology.nbDomain(), MEDSPLITTER.MESHCollectionDriver.readLoc2GlobCellConnect(), MEDSPLITTER.MESHCollection.retrieveDriver(), MEDMEM.MEDSKYLINEARRAY.setI(), MEDMEM.MEDSKYLINEARRAY.setIndex(), test_NonCoincidentDEC.size, and MEDSPLITTER.MESHCollection.treatIndivisibleRegions().
| Topology * MESHCollection::createPartition | ( | int | nbdomain, |
| Graph::splitter_type | split = Graph::METIS, |
||
| const string & | options_string = "", |
||
| int * | user_edge_weights = 0, |
||
| int * | user_vertices_weights = 0 |
||
| ) |
Creates the partition corresponding to the cell graph and the partition number
| nbdomain | number of subdomains for the newly created graph |
returns a topology based on the new graph
user-defined weights
References MEDSPLITTER.MESHCollection._cell_graph, MEDSPLITTER.MESHCollection._domain_selector, MEDSPLITTER.MESHCollection.buildCellGraph(), MEDSPLITTER.MESHCollection.getMeshDimension(), MESSAGE_MED, MEDSPLITTER.Graph.METIS, and MEDSPLITTER.Graph.SCOTCH.
Creates a topology for a partition specified by the user
| table | user-specified partition (for each cell contains the domain number from 0 to n-1) |
returns a topology based on the new partition
References MEDSPLITTER.MESHCollection._cell_graph, MEDSPLITTER.MESHCollection._topology, MEDSPLITTER.MESHCollection.buildCellGraph(), MEDSPLITTER.MESHCollection.getMeshDimension(), and MEDSPLITTER.Topology.nbCells().
| void MESHCollection::getTypeList | ( | int * | cell_list, |
| int | nb_cells, | ||
| MED_EN::medEntityMesh | entity, | ||
| MED_EN::medGeometryElement * | type_list | ||
| ) | const |
gets the list of types for global numbers cell_list
| cell_list | list of global numbers |
| entity | entity type |
| type_list | on output, list of types for the cells given in cell_list |
References MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, MEDSPLITTER.Topology.convertGlobalCellList(), MEDSPLITTER.Topology.convertGlobalFaceList(), MED_EN.MED_CELL, MED_EN.MED_EDGE, MED_EN.MED_FACE, and MESSAGE_MED.
gets the list of coordinates for a given list of global node numbers
The vector containing the coordinates on output should have been allocated at a dimension _space_dimension * nb_nodes before the call
| node_list | list of global node numbers |
| nb_nodes | number of nodes in the list |
| coordinates | on output, contains the coordinates |
References MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, MEDSPLITTER.Topology.convertGlobalNodeList(), MEDSPLITTER.MESHCollection.getSpaceDimension(), and MED_EN.MED_FULL_INTERLACE.
| void MESHCollection::getNodeConnectivity | ( | const int * | cell_list, |
| int | nb_cells, | ||
| MED_EN::medEntityMesh | entity, | ||
| MED_EN::medGeometryElement | type, | ||
| int * | type_connectivity | ||
| ) | const |
gets the connectivity for a certain type
The output array type_connectivity should have been allocated at dimension nbnode_per_type* nb_cells before the call
| cell_list | list of elements (global cell numbers) for which the connectivity is required |
| nb_cells | number of elements |
| entity | type of entity for which the nodal connectivity is required |
| type | type of the elements for which the connectivity is required |
| type_connectivity | on output contains the connectivity of all the elements of the list |
References MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, testRenumbering.conn, testRenumbering.conn_index, MEDSPLITTER.Topology.convertGlobalCellList(), MEDSPLITTER.Topology.convertGlobalFaceList(), MEDSPLITTER.Topology.convertNodeToGlobal(), MED_EN.MED_ALL_ELEMENTS, MED_EN.MED_CELL, MED_EN.MED_EDGE, MED_EN.MED_FACE, MED_EN.MED_NODAL, and MEDSPLITTER.Topology.nbDomain().
| void MESHCollection::getPolygonNodeConnectivity | ( | const int * | cell_list, |
| int | nb_cells, | ||
| MED_EN::medEntityMesh | entity, | ||
| vector< int > & | type_connectivity, | ||
| vector< int > & | connectivity_index | ||
| ) | const |
gets the connectivity for MED_POLYGON type
| cell_list | list of elements (global cell numbers) for which the connectivity is required |
| nb_cells | number of elements |
| entity | type of entity for which the nodal connectivity is required |
| type_connectivity | on output contains the connectivity of all the elements of the list |
| connectivity_index | on output contains the connectivity index for all polygons |
References MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, testRenumbering.conn, testRenumbering.conn_index, MEDSPLITTER.Topology.convertGlobalCellList(), MEDSPLITTER.Topology.convertGlobalFaceList(), MEDSPLITTER.Topology.convertNodeToGlobal(), MED_EN.MED_ALL_ELEMENTS, MED_EN.MED_CELL, MED_EN.MED_EDGE, MED_EN.MED_FACE, MED_EN.MED_NODAL, MED_EN.MED_POLYGON, and MEDSPLITTER.Topology.nbDomain().
| void MESHCollection::getPolyhedraNodeConnectivity | ( | const int * | cell_list, |
| int | nb_cells, | ||
| MED_EN::medEntityMesh | entity, | ||
| vector< int > & | type_connectivity, | ||
| vector< int > & | connectivity_index | ||
| ) | const |
gets the connectivity for MED_POLYHEDRA type
| cell_list | list of elements (global cell numbers) for which the connectivity is required |
| nb_cells | number of elements |
| entity | type of entity for which the nodal connectivity is required |
| type_connectivity | on output contains the connectivity of all the elements of the list |
| connectivity_index | on output contains the connectivity index for all polygons |
References MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, testRenumbering.conn, testRenumbering.conn_index, MEDSPLITTER.Topology.convertGlobalCellList(), MEDSPLITTER.Topology.convertGlobalFaceList(), MEDSPLITTER.Topology.convertNodeToGlobal(), MED_EN.MED_ALL_ELEMENTS, MED_EN.MED_CELL, MED_EN.MED_EDGE, MED_EN.MED_FACE, MED_EN.MED_NODAL, MED_EN.MED_POLYHEDRA, and MEDSPLITTER.Topology.nbDomain().
| void MESHCollection::getFaceConnectivity | ( | const int * | cell_list, |
| int | nb_cells, | ||
| MED_EN::medEntityMesh | entity, | ||
| MED_EN::medGeometryElement | type, | ||
| int * | type_connectivity | ||
| ) | const |
gets the descending connectivity for a certain type
The output array type_connectivity should have been allocated at dimension nbnode_per_type* nb_cells before the call
| cell_list | list of elements (global cell numbers) for which the connectivity is required |
| nb_cells | number of elements |
| entity | type of entity for which the nodal connectivity is required |
| type | type of the elements for which the connectivity is required |
| type_connectivity | on output contains the connectivity of all the elements of the list |
References MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, testRenumbering.conn, MEDSPLITTER.Topology.convertFaceToGlobal(), MEDSPLITTER.Topology.convertGlobalCellList(), MEDSPLITTER.Topology.convertGlobalFaceList(), MED_EN.MED_CELL, MED_EN.MED_DESCENDING, MED_EN.MED_EDGE, MED_EN.MED_FACE, MEDSPLITTER.Topology.nbDomain(), and medClient_test.types.
| int MESHCollection::getMeshDimension | ( | ) | const |
retrieves the mesh dimension
References MEDSPLITTER.MESHCollection._i_non_empty_mesh, and MEDSPLITTER.MESHCollection._mesh.
| int MESHCollection::getSpaceDimension | ( | ) | const |
retrieves the space dimension
References MEDSPLITTER.MESHCollection._i_non_empty_mesh, and MEDSPLITTER.MESHCollection._mesh.
| string MESHCollection::getSystem | ( | ) | const |
retrieves the type of coordinates system
References MEDSPLITTER.MESHCollection._i_non_empty_mesh, and MEDSPLITTER.MESHCollection._mesh.
| string MESHCollection::getMeshName | ( | ) | const |
retrieves the name of the mesh
References MEDSPLITTER.MESHCollection._i_non_empty_mesh, MEDSPLITTER.MESHCollection._mesh, and MEDSPLITTER.MESHCollection.getName().
| MED_EN::medEntityMesh MESHCollection::getSubEntity | ( | ) | const |
returns constituent entity
References MEDSPLITTER.MESHCollection.getMeshDimension(), MED_EN.MED_EDGE, and MED_EN.MED_FACE.
| vector< MEDMEM::MESH * > & MESHCollection::getMesh | ( | ) |
References MEDSPLITTER.MESHCollection._mesh.
| MEDMEM::MESH * MESHCollection::getMesh | ( | int | idomain | ) | const |
References MEDSPLITTER.MESHCollection._mesh.
| vector< MEDMEM::CONNECTZONE * > & MESHCollection::getCZ | ( | ) |
References MEDSPLITTER.MESHCollection._connect_zones.
| Topology * MESHCollection::getTopology | ( | ) | const |
References MEDSPLITTER.MESHCollection._topology.
| void MESHCollection::setTopology | ( | Topology * | topology | ) |
References MEDSPLITTER.MESHCollection._topology, and MED_EXCEPTION.
| string MEDSPLITTER.MESHCollection.getName | ( | ) | const |
| void MEDSPLITTER.MESHCollection.setName | ( | const string & | name | ) |
References medClient_test.name.
| string MEDSPLITTER.MESHCollection.getDescription | ( | ) | const |
| void MEDSPLITTER.MESHCollection.setDescription | ( | const string & | name | ) |
References medClient_test.name.
| void MESHCollection::castFamilies | ( | const MESHCollection & | old_collection | ) |
transfers families from an old MESHCollection to new mesh
projects old collection families on new collection families
References MEDSPLITTER.MESHCollection._family_splitting, MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, MEDMEM.MESHING.addGroup(), MEDSPLITTER.MESHCollection.castSupport(), MEDSPLITTER.MESHCollection.getMesh(), MEDMEM.SUPPORT.getName(), MEDSPLITTER.MESHCollection.getSubEntity(), med_test1.group, MED_EN.MED_CELL, MED_EN.MED_NODE, and MEDSPLITTER.Topology.nbDomain().
| void MESHCollection::castSupport | ( | const MESHCollection & | old_collection, |
| std::vector< const MEDMEM::SUPPORT * > & | old_support, | ||
| std::vector< MEDMEM::SUPPORT * > & | new_support | ||
| ) |
References MEDSPLITTER.MESHCollection._create_empty_groups, MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, MEDSPLITTER.Topology.convertCellToGlobal(), MEDSPLITTER.Topology.convertFaceToGlobal(), MEDSPLITTER.Topology.convertGlobalCellList(), MEDSPLITTER.Topology.convertGlobalFaceListWithTwins(), MEDSPLITTER.Topology.convertGlobalNodeListWithTwins(), MEDSPLITTER.Topology.convertNodeToGlobal(), med_opsupp_test.entity, MEDMEM.SUPPORT.fillFromElementList(), MEDMEM.SUPPORT.fillFromNodeList(), MEDMEM.SUPPORT.getDescription(), MEDMEM.SUPPORT.getEntity(), MEDMEM.SUPPORT.getName(), MEDMEM.SUPPORT.getNumber(), MEDMEM.SUPPORT.getNumberOfElements(), MEDSPLITTER.MESHCollection.getTopology(), MEDMEM.SUPPORT.isOnAllElements(), MED_EN.MED_ALL_ELEMENTS, MED_EN.MED_CELL, MED_EN.MED_EDGE, MED_EXCEPTION, MED_EN.MED_FACE, MED_EN.MED_NODE, medClient_test.name, MEDSPLITTER.Topology.nbDomain(), MEDMEM.SUPPORT.setDescription(), MEDMEM.SUPPORT.setEntity(), MEDMEM.SUPPORT.setMesh(), MEDMEM.SUPPORT.setName(), test_NonCoincidentDEC.size, and medClient_test.support.
| void MESHCollection::castAllFields | ( | const MESHCollection & | old_collection | ) |
casts all the fields to the new mesh collection
References MEDSPLITTER.MESHCollection.getDriver(), MEDSPLITTER.MESHCollectionDriver.readFileStruct(), and medClient_test.types.
| void MESHCollection::castField | ( | const MESHCollection & | old_collection, |
| const string & | fieldname, | ||
| int | itnumber, | ||
| int | ordernumber | ||
| ) |
casts one specific field to the new mesh collection
References MEDSPLITTER.MESHCollection.getDriver(), MEDSPLITTER.MESHCollectionDriver.getFieldType(), and medClient_test.type.
| void MESHCollection::setIndivisibleGroup | ( | const string & | a | ) |
References MEDSPLITTER.MESHCollection._indivisible_regions.
| void MESHCollection::buildConnectZones | ( | ) |
constructing connect zones
building Connect Zones for storing the informations of the connectivity
References MEDSPLITTER.MESHCollection._cell_graph, MEDSPLITTER.MESHCollection._connect_zones, MEDSPLITTER.MESHCollection._domain_selector, MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._subdomain_boundary_creates, MEDSPLITTER.MESHCollection._topology, MEDSPLITTER.MESHCollection.addJointGroup(), med_test1.begin, MEDSPLITTER.MESHCollection.buildConnectZonesBetweenProcs(), MEDSPLITTER.Topology.computeCellCellCorrespondencies(), MEDSPLITTER.Topology.computeNodeNodeCorrespondencies(), testRenumbering.conn, medClient_test.connectivity, MEDSPLITTER.Topology.convertGlobalFace(), MEDSPLITTER.ParaDomainSelector.exchangeSubentityIds(), MEDSPLITTER.ParaDomainSelector.gatherEntityTypesInfo(), MEDSPLITTER.MESHCollection.getCommonFace(), MEDMEM.MESH.getConnectivityptr(), MEDMEM.CONNECTZONE.getDistantDomainNumber(), MEDSPLITTER.Topology.getFaceNumber(), MEDSPLITTER.MESHCollection.getFaces(), MEDSPLITTER.ParaDomainSelector.getFisrtGlobalIdOfSubentity(), MEDMEM.MEDSKYLINEARRAY.getIndex(), MEDMEM.CONNECTZONE.getLocalDomainNumber(), MEDSPLITTER.ParaDomainSelector.getNbCellPairs(), MEDMEM.MEDSKYLINEARRAY.getNumberOf(), MEDSPLITTER.MESHCollection.getSubEntity(), MEDSPLITTER.MEDSPLITTER_FaceModel.getType(), MEDMEM.MEDSKYLINEARRAY.getValue(), medClient_test.index, MEDSPLITTER.ParaDomainSelector.isMyDomain(), MEDSPLITTER.MESHCollection.isParallelMode(), MED_EN.MED_CELL, MEDSPLITTER.Topology.nbDomain(), MEDSPLITTER.Topology.recreateFaceMapping(), MEDMEM.MESHING.setConnectivity(), MEDMEM.CONNECTZONE.setDistantDomainNumber(), MEDMEM.CONNECTZONE.setDistantMesh(), MEDMEM.CONNECTZONE.setEntityCorresp(), MEDMEM.CONNECTZONE.setLocalDomainNumber(), MEDMEM.CONNECTZONE.setLocalMesh(), MEDSPLITTER.MESHCollection.setName(), MEDMEM.CONNECTZONE.setNodeCorresp(), MEDMEM.MESHING.setNumberOfElements(), MEDMEM.MESHING.setNumberOfTypes(), MEDMEM.MESHING.setTypes(), test_NonCoincidentDEC.size, medClient_test.types, and batchmode_medcorba_test.value.
| void MESHCollection::buildConnectZonesBetweenProcs | ( | std::vector< std::map< MED_EN::medGeometryElement, std::vector< MEDSPLITTER_FaceModel * > > > & | , |
| map< pair< int, int >, MEDMEM::MEDSKYLINEARRAY * > & | local_cell_cell_correspondency | ||
| ) |
building Connect Zones for storing the informations of the connectivity in the parallel mode
References MEDSPLITTER.MESHCollection._cell_graph, MEDSPLITTER.MESHCollection._connect_zones, MEDSPLITTER.MESHCollection._domain_selector, MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._subdomain_boundary_creates, MEDSPLITTER.MESHCollection._topology, MEDSPLITTER.Topology.convertGlobalCell(), MEDSPLITTER.JointExchangeData.distantDomain(), MEDSPLITTER.ParaDomainSelector.exchangeJoint(), MEDSPLITTER.ParaDomainSelector.gatherEntityTypesInfo(), MEDSPLITTER.ParaDomainSelector.gatherGraph(), MEDSPLITTER.ParaDomainSelector.gatherNbCellPairs(), MEDSPLITTER.ParaDomainSelector.gatherNbOf(), MEDSPLITTER.Topology.getCellList(), MEDSPLITTER.Topology.getCellNumber(), MEDSPLITTER.MESHCollection.getFaces(), MEDSPLITTER.ParaDomainSelector.getFisrtGlobalIdOfSubentity(), MEDSPLITTER.MESHCollection.getSubEntity(), MEDSPLITTER.ParaDomainSelector.isMyDomain(), MEDSPLITTER.ParaDomainSelector.jointId(), MEDSPLITTER.JointExchangeData.localDomain(), MEDSPLITTER.JointExchangeData.makeCellCorrespArray(), MEDSPLITTER.JointExchangeData.makeConnectZone(), MED_EN.MED_CELL, MEDSPLITTER.JointExchangeData.nbCellPairs(), MEDSPLITTER.Topology.nbDomain(), MEDSPLITTER.JointExchangeData.setConnectivity(), MEDSPLITTER.JointExchangeData.setFisrtGlobalIdOfSubentity(), MEDSPLITTER.JointExchangeData.setMeshes(), and MEDSPLITTER.ParaDomainSelector.setNbCellPairs().
| void MESHCollection::addJointGroup | ( | const std::vector< int > & | loc_face_ids, |
| int | idomain, | ||
| int | idistant | ||
| ) |
Adds a group of joint faces.
building Connect Zones for storing the informations of the connectivity
The connect zones are created for every domain that has common nodes with domain idomain
| idomain | domain number for which the connect zones are created |
| loc_face_ids | - local numbers of faces |
| idomian | - domain index where faces are local |
| idistant | - the other domain index |
References MEDSPLITTER.MESHCollection._mesh, MEDMEM.MESHING.addGroup(), MEDMEM.MESH.getElementType(), MEDMEM.GMESH.getGroups(), MEDSPLITTER.MESHCollection.getName(), MEDSPLITTER.MESHCollection.getSubEntity(), MEDMEM.RCBASE.removeReference(), test_NonCoincidentDEC.size, medClient_test.type, and medClient_test.types.
| static bool MEDSPLITTER.MESHCollection.isDimensionOK | ( | MED_EN::medGeometryElement | type, |
| int | dim | ||
| ) | [static] |
References MED_EN.MED_POLYGON, and MED_EN.MED_POLYHEDRA.
| void MEDSPLITTER.MESHCollection.setSubdomainBoundaryCreates | ( | bool | flag | ) |
| bool MEDSPLITTER.MESHCollection.getSubdomainBoundaryCreates | ( | ) |
| void MEDSPLITTER.MESHCollection.setFamilySplitting | ( | bool | flag | ) |
| bool MEDSPLITTER.MESHCollection.getFamilySplitting | ( | ) |
| void MEDSPLITTER.MESHCollection.setCreateEmptyGroups | ( | bool | flag | ) |
| bool MEDSPLITTER.MESHCollection.getCreateEmptyGroups | ( | ) |
| void MESHCollection::createNodalConnectivity | ( | const MESHCollection & | initial_collection, |
| int | idomain, | ||
| MED_EN::medEntityMesh | entity | ||
| ) | [private] |
creates connectivities for a domain and an entity (face or cell)
TODO : compute the total number of nodes
References MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, MEDSPLITTER.Topology.convertToLocal2ndVersion(), medClient_test.coordinates, MEDSPLITTER.Topology.createNodeMapping(), MEDSPLITTER.Topology.getCellList(), MEDSPLITTER.Topology.getCellNumber(), MEDSPLITTER.MESHCollection.getCoordinates(), MEDSPLITTER.Topology.getFaceList(), MEDSPLITTER.Topology.getFaceNumber(), MEDSPLITTER.MESHCollection.getMeshDimension(), MEDSPLITTER.MESHCollection.getNodeConnectivity(), MEDSPLITTER.Topology.getNodeList(), MEDSPLITTER.Topology.getNodeNumber(), MEDSPLITTER.MESHCollection.getPolygonNodeConnectivity(), MEDSPLITTER.MESHCollection.getPolyhedraNodeConnectivity(), MEDSPLITTER.MESHCollection.getSpaceDimension(), MEDSPLITTER.MESHCollection.getSystem(), MEDSPLITTER.MESHCollection.getTypeList(), medClient_test.index, MEDSPLITTER.MESHCollection.isDimensionOK(), MED_EN.MED_CELL, MED_EN.MED_EDGE, MED_EN.MED_FACE, MED_EN.MED_FULL_INTERLACE, MED_EN.MED_POLYGON, MED_EN.MED_POLYHEDRA, MESSAGE_MED, SCRUTE_MED, MEDMEM.MESHING.setConnectivity(), MEDMEM.MESHING.setCoordinates(), MEDMEM.MESHING.setNumberOfElements(), MEDMEM.MESHING.setNumberOfTypes(), MEDMEM.MESHING.setTypes(), and medClient_test.type.
| void MESHCollection::treatIndivisibleRegions | ( | int * | indivisible_tag | ) | [private] |
creates the tags for indivisible groups
Browses the domains and the regions that have been marked as indivisible in order to create a vector the dimlension of which is the total number of cells, and that contains 0 if the cell belongs to no indivisible group and that contains an integer corresponding to the group otherwise.
| indivisible_tag | on input is an int* allocated as int[nbcells] on output contains the tags |
References MEDSPLITTER.MESHCollection._indivisible_regions, MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, MEDSPLITTER.Topology.convertCellToGlobal(), MEDMEM.SUPPORT.getName(), MEDMEM.SUPPORT.getNumber(), MEDMEM.SUPPORT.getNumberOfElements(), med_test1.group, MED_EN.MED_ALL_ELEMENTS, MED_EN.MED_CELL, MEDSPLITTER.Topology.nbCells(), MEDSPLITTER.Topology.nbDomain(), and MEDSPLITTER.trim().
| void MEDSPLITTER.MESHCollection.castFields | ( | const MESHCollection & | old_collection, |
| const string & | fieldname, | ||
| int | itnumber, | ||
| int | ordernumber | ||
| ) | [private] |
projects a field from an old collection to the present one field is identified by (name, dt, it)
| void MESHCollection::getFaces | ( | int | idomain, |
| std::map< MED_EN::medGeometryElement, std::vector< MEDSPLITTER_FaceModel * > > & | |||
| ) | [private] |
retrieves the faces that are present in a mesh and stores them in a dynamic structure made of a map of MEDSPLITTER_FaceModel
| idomain | domain id on which the faces are collected |
| face_map | container storing the faces |
References MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, testRenumbering.conn, MEDSPLITTER.Topology.convertFaceToGlobal(), MEDSPLITTER.MESHCollection.getSubEntity(), MED_EN.MED_ALL_ELEMENTS, MED_EN.MED_NODAL, MEDSPLITTER.MEDSPLITTER_FaceModel.setGlobal(), MEDSPLITTER.MEDSPLITTER_FaceModel.setNbNodes(), MEDSPLITTER.MEDSPLITTER_FaceModel.setType(), medClient_test.type, and medClient_test.types.
| MEDSPLITTER_FaceModel * MESHCollection::getCommonFace | ( | int | ip1, |
| int | ilocal1, | ||
| int | ip2, | ||
| int | ilocal2, | ||
| int | face_index | ||
| ) | [private] |
retrieves the face that is common to two cells located on two different processors
| ip1 | domain id for cell 1 |
| ilocal1 | cell id for cell 1 |
| ip2 | domain id for cell 2 |
| ilocal2 | cell id for cell 2 |
| face_index | global index for the newly created face |
References MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, med_test_grid.conn1, MEDSPLITTER.Topology.convertNodeToGlobal(), MED_EN.MED_ALL_ELEMENTS, MED_EN.MED_CELL, and MED_EN.MED_NODAL.
| void MESHCollection::fillGlobalConnectivity | ( | TID2CONN & | node2cell, |
| TID2CONN & | cell2node | ||
| ) | [private] |
Create cell->node and node->cell connectivities for domains.
References MEDSPLITTER.MESHCollection._mesh, MEDSPLITTER.MESHCollection._topology, testRenumbering.conn, testRenumbering.conn_index, MEDSPLITTER.Topology.convertNodeToGlobal(), MEDSPLITTER.Topology.getCellList(), MED_EN.MED_ALL_ELEMENTS, MED_EN.MED_CELL, MED_EN.MED_NODAL, MEDSPLITTER.Topology.nbCells(), and MEDSPLITTER.Topology.nbDomain().
Topology* MEDSPLITTER.MESHCollection._topology [private] |
link to mesh_collection topology
bool MEDSPLITTER.MESHCollection._owns_topology [private] |
control over topology
boost::shared_ptr<Graph> MEDSPLITTER.MESHCollection._cell_graph [private] |
link to graph
Driver for read/write operations.
Parallelizer - mark of parallel execution mode.
std::vector<MEDMEM::MESH*> MEDSPLITTER.MESHCollection._mesh [private] |
links to meshes
index of a non empty mesh within _mesh (in parallel mode all of meshes can be empty)
std::vector<MEDMEM::CONNECTZONE*> MEDSPLITTER.MESHCollection._connect_zones [private] |
links to connectzones
std::vector<std::string> MEDSPLITTER.MESHCollection._indivisible_regions [private] |
list of groups that are not to be splitted
string MEDSPLITTER.MESHCollection._name [private] |
name of global mesh
string MEDSPLITTER.MESHCollection._description [private] |
description of global mesh
specifies the driver associated to the collection
bool MEDSPLITTER.MESHCollection._subdomain_boundary_creates [private] |
flag specifying that the splitter should create boundary constituent entity so that they are written in joints
bool MEDSPLITTER.MESHCollection._family_splitting [private] |
flag specifying that families must be preserved by the splitting
bool MEDSPLITTER.MESHCollection._create_empty_groups [private] |
flag specifying that groups must be created on all domains, even if they are empty