Classes | |
| struct | NodeInFacePtr |
| struct | NodeInFace |
Public Member Functions | |
| DynamicMeshIncrementalBuilder (DynamicMesh *mesh) | |
| Constructs an instance for the mesh mesh. | |
| void | addCells (Integer nb_cell, Int64ConstArrayView cell_infos, Integer sub_domain_id, Int32ArrayView cells, bool allow_build_face=true) |
| Adds cells to the current mesh. | |
| bool | addCellsBulk (Integer nb_cell, Int64ConstArrayView cell_infos, Integer sub_domain_id, Int32ArrayView cells, bool allow_build_face) |
| Same as addCells(), filling the family arrays in bulk. | |
| void | addCells2 (Integer nb_cell, Int64ConstArrayView cell_infos, Integer sub_domain_id, Int32ArrayView cells, bool allow_build_face=true) |
| void | addCells3 (Integer nb_cell, Int64ConstArrayView cell_infos, Integer sub_domain_id, Int32ArrayView cells, bool allow_build_face=true) |
| Adds cells to the current mesh. Uses generic item addition based on family dependencies. | |
| void | addFaces (Integer nb_face, Int64ConstArrayView face_infos, Integer sub_domain_id, Int32ArrayView faces) |
| Ajoute des faces au maillage actuel. | |
| void | addFaces2 (Integer nb_face, Int64ConstArrayView face_infos, Integer sub_domain_id, Int32ArrayView faces) |
| Ajoute des faces au maillage actuel. Utilise l'ajout d'item générique basé sur dépendances entre familles. | |
| void | addFaces3 (Integer nb_face, Int64ConstArrayView face_infos, Integer sub_domain_id, Int32ArrayView faces) |
| void | addEdges (Integer nb_edge, Int64ConstArrayView edge_infos, Integer sub_domain_id, Int32ArrayView edges) |
| Adds edges to the current mesh. | |
| void | addEdges2 (Integer nb_edge, Int64ConstArrayView edge_infos, Integer sub_domain_id, Int32ArrayView edges) |
| Adds edges to the current mesh. Uses generic item addition based on family dependencies. | |
| void | addEdges3 (Integer nb_edge, Int64ConstArrayView edge_infos, Integer sub_domain_id, Int32ArrayView edges) |
| void | addNodes (Int64ConstArrayView nodes_uid, Integer sub_domain_id, Int32ArrayView nodes) |
| Ajoute des noeuds au maillage actuel. | |
| void | addNodes2 (Int64ConstArrayView nodes_uid, Integer sub_domain_id, Int32ArrayView nodes) |
| Ajoute des noeuds au maillage actuel. Utilise l'ajout d'item générique basé sur dépendances entre familles. | |
| void | addItems (ItemDataList &item_info_list) |
| Ajout générique d'items d'un ensemble de famille pour lesquelles on fournit un ItemData. | |
| void | addItems (ItemDataList &item_info_list, ItemDataList &item_relation_info_list) |
| void | addRelations (ItemDataList &item_relation_list) |
| void | addFamilyItems (ItemData &item_info) |
| Ajout générique d'items d'une famille, décrite par son ItemInfo. | |
| void | addParentCells (const ItemVectorView &items) |
| Add to the current mesh items coming from a parent mesh. | |
| void | addParentItems (const ItemVectorView &items, const eItemKind submesh_kind) |
| Add to the current mesh items coming from a parent mesh. | |
| void | addHChildrenCells (Cell hParent_cell, Integer nb_cell, Int64ConstArrayView cells_infos, Int32 sub_domain_id, Int32ArrayView cells, bool allow_build_face) |
| Ajoute des mailles au maillage actuel. | |
| void | computeFacesUniqueIds () |
| Calculates the unique IDs for each face. | |
| void | addGhostLayers (bool is_allocate) |
| void | addGhostChildFromParent (Array< Int64 > &ghost_cell_to_refine) |
| AMR. | |
| void | removeGhostCells () |
| void | removeNeedRemoveMarkedCells () |
| void | removeNeedRemoveMarkedItems () |
| Removes ghost items. | |
| void | readFromDump () |
| void | setConnectivity (Integer c) |
| Sets the active connectivity for the associated mesh. | |
| void | resetAfterDeallocate () |
| Resets the structures to allow for a new allocation. | |
| void | printInfos () |
| void | printStats (Int32 level=TraceMessage::DEFAULT_LEVEL) |
| ItemInternalMap & | itemsMap (eItemKind ik) |
| DynamicMesh * | mesh () |
| bool | isVerbose () const |
| bool | hasEdge () const |
| OneMeshItemAdder * | oneMeshItemAdder () const |
| Public Member Functions inherited from Arcane::TraceAccessor | |
| TraceAccessor (ITraceMng *m) | |
| Constructs an accessor via the trace manager m. | |
| TraceAccessor (const TraceAccessor &rhs) | |
| Copy constructor. | |
| TraceAccessor & | operator= (const TraceAccessor &rhs) |
| Copy assignment operator. | |
| virtual | ~TraceAccessor () |
| Frees resources. | |
| ITraceMng * | traceMng () const |
| Trace manager. | |
| TraceMessage | info () const |
| Flow for an information message. | |
| TraceMessage | pinfo () const |
| Flow for a parallel information message. | |
| TraceMessage | info (char category) const |
| Flow for an information message of a given category. | |
| TraceMessage | pinfo (char category) const |
| Flow for a parallel information message of a given category. | |
| TraceMessage | info (bool v) const |
| Flow for an information message. | |
| TraceMessage | warning () const |
| Flow for a warning message. | |
| TraceMessage | pwarning () const |
| TraceMessage | error () const |
| Flow for an error message. | |
| TraceMessage | perror () const |
| TraceMessage | log () const |
| Flow for a log message. | |
| TraceMessage | plog () const |
| Flow for a log message. | |
| TraceMessage | logdate () const |
| Flow for a log message preceded by the date. | |
| TraceMessage | fatal () const |
| Flow for a fatal error message. | |
| TraceMessage | pfatal () const |
| Flow for a parallel fatal error message. | |
| TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
| Flow for a debug message. | |
| Trace::eDebugLevel | configDbgLevel () const |
| Debug level of the configuration file. | |
| TraceMessage | info (Int32 verbose_level) const |
| Flow for an information message of a given level. | |
| TraceMessage | linfo () const |
| Flow for an information message with the local information level of this instance. | |
| TraceMessage | linfo (Int32 relative_level) const |
| Flow for an information message with the local information level of this instance. | |
| void | fatalMessage (const StandaloneTraceMessage &o) const |
Private Types | |
| typedef NodeInFace::NodeInFaceSet | NodeInFaceSet |
Private Member Functions | |
| template<typename FamilyType> | |
| void | _allocateBulkByType (FamilyType *family, Int64ConstArrayView uids, ConstArrayView< Int16 > type_ids, Int32 owner, Int32ArrayView lids) |
| Allocates items in batches of one type, since a batch carries one shared info. | |
| void | _fillBulkConnectivity (IncrementalItemConnectivity *c, Int32 nb_source, ConstArrayView< Int32 > offsets, ConstArrayView< Int32 > targets) |
| Fills a connectivity whose blocks are given in source-item order. | |
| void | _fillBulkReverseConnectivity (IncrementalItemConnectivity *c, Int32 nb_target, Int32 nb_source, ConstArrayView< Int32 > offsets, ConstArrayView< Int32 > targets) |
| Fills the reverse of a connectivity given in source-item order. | |
| void | _printCellFaceInfos (ItemInternal *cell, const String &str) |
| void | _removeNeedRemoveMarkedItems (ItemInternalMap &map, UniqueArray< Int32 > &items_local_id) |
| void | _fillFaceInfo (Integer &nb_face, Integer nb_cell, Int64Array &faces_infos, Int64ConstArrayView cells_infos, std::map< Int64, Int64SharedArray > &cell_to_face_connectivity_info) |
| Adds cells to the current mesh. | |
| void | _fillEdgeInfo (Integer &nb_edge, Integer nb_face, Int64Array &edges_infos, Int64ConstArrayView faces_infos, std::map< std::pair< Int64, Int64 >, Int64 > &edge_uid_map) |
| void | _fillNodeInfo (Integer &nb_node, Integer nb_face, Int64Array &nodes_infos, Int64ConstArrayView faces_infos) |
| void | _fillNodeInfoFromEdge (Integer &nb_node, Integer nb_edge, Int64Array &nodes_infos, Int64ConstArrayView edges_infos) |
| void | _fillCellInfo2 (Integer nb_cell, Int64ConstArrayView cells_infos, Int64Array &cell_infos2, Integer &nb_face, Int64Array &faces_infos, Int64Array &node_uids, bool allow_build_face) |
| void | _fillFaceInfo2 (Integer nb_face, Int64ConstArrayView faces_infos, Int64ArrayView face_info2, Int64Array &node_uids) |
| void | _fillEdgeInfo2 (Integer nb_edge, Int64ConstArrayView edges_infos, Int64ArrayView edge_info2, Int64Array &node_uids) |
| void | _fillEdgeNewInfoNew (Integer nb_edge, Int64ConstArrayView edges_infos, Int64ArrayView edge_new_infos) |
| void | _fillNodeNewInfo (Int64ConstArrayView node_uids, Int64ArrayView node_infos2) |
| void | _fillCellNewInfoNew (Integer nb_cell, Int64ConstArrayView cells_infos, Int64Array &cell_infos2, const std::map< Int64, Int64SharedArray > &cell_to_face_connectivity_info, const std::map< std::pair< Int64, Int64 >, Int64 > &edge_uid_map) |
| void | _fillFaceNewInfoNew (Integer nb_face, Int64ConstArrayView faces_infos, Int64Array &face_infos2, const std::map< std::pair< Int64, Int64 >, Int64 > &edge_uid_map) |
| void | _fillItemInfo2 (ItemDataList &item_data_list, Int64ConstArrayView cells_infos) |
| void | _initNodeRelationInfo (ItemData &source_item_relation_data, const ItemData &target_item_dependencies_data, Int64ConstArrayView faces_info) |
| void | _initEdgeRelationInfo (ItemData &source_item_relation_data, const ItemData &target_item_dependencies_data, Int64ConstArrayView faces_info) |
| void | _initFaceRelationInfo (ItemData &source_item_relation_data, const ItemData &target_item_dependencies_data, Int64ConstArrayView faces_info) |
| Initializes face relation info. | |
| void | _appendNodeRelationInfo (ItemData &source_item_relation_data, const ItemData &target_item_dependencies_data, Int64ConstArrayView faces_info) |
| void | _appendEdgeRelationInfo (ItemData &source_item_relation_data, const ItemData &target_item_dependencies_data, Int64ConstArrayView faces_info) |
| void | _appendFaceRelationInfo (ItemData &source_item_relation_data, const ItemData &target_item_dependencies_data, Int64ConstArrayView faces_info) |
| void | _fillNodeRelationInfo (ItemData &source_item_relation_data, const ItemData &target_item_dependencies_data, Int64ConstArrayView nodes_info, bool is_source_item_relation_data_emtpy) |
| void | _fillEdgeRelationInfo (ItemData &source_item_relation_data, const ItemData &target_item_dependencies_data, Int64ConstArrayView edges_info, bool is_source_item_relation_data_emtpy) |
| void | _fillFaceRelationInfo (ItemData &source_item_relation_data, const ItemData &target_item_dependencies_data, Int64ConstArrayView faces_info, bool is_source_item_relation_data_emtpy) |
| void | _fillItemRelationInfo (ItemData &source_item_relation_data, const ItemData &target_item_dependencies_data, Int64ConstArrayView source_item_types, bool is_source_item_relation_data_emtpy) |
| void | _initEmptyRelationInfo (Int64Array &source_relation_info, std::map< Int64, Int64SharedArray > &source_to_target_uids, Int64ConstArrayView source_item_uids_and_types, Integer approx_relation_size, IItemFamily const *target_family) |
| void | _appendInitializedRelationInfo (Int64Array &source_relation_info, std::map< Int64, Int64SharedArray > &source_to_target_uids, Int64ConstArrayView source_item_uids_and_types, Integer approx_relation_size, IItemFamily const *target_family) |
| Int64 | _findFaceUniqueId (Int64ConstArrayView work_face_sorted_nodes, NodeInFaceSet &face_nodes_set) |
| Int64 | _findFaceInFaceNodesSet (const NodeInFaceSet &face_nodes_set, Integer index, Int64ConstArrayView face_nodes, NodeInFacePtr node) |
| void | _addFaceNodes (NodeInFaceSet &face_nodes_set, Int64ConstArrayView face_nodes, Int64 face_uid) |
| void | _addFaceInFaceNodesSet (NodeInFaceSet &face_nodes_set, Integer index, Int64ConstArrayView face_nodes, NodeInFacePtr node, Int64 face_uid) |
| NodeInFacePtr & | _insertNode (NodeInFaceSet &face_nodes_set, Int64 inserted_node_uid) |
| void | _addItemsOrRelations (ItemDataList &info_list, IItemFamilyNetwork::eSchedulingOrder family_graph_traversal_order) |
Private Attributes | |
| DynamicMesh * | m_mesh |
| Associated mesh. | |
| ItemTypeMng * | m_item_type_mng = nullptr |
| Integer | m_connectivity = 0 |
| Connectivity info of the current mesh. | |
| bool | m_has_edge = false |
| Info on the presence of an edge (accelerates access to general connectivity). | |
| bool | m_has_amr |
| AMR. | |
| bool | m_verbose = false |
| True if messages are displayed. | |
| bool | m_use_bulk_add_cells = false |
| ARCANE_BULK_ADD_CELLS=1: addCells() fills the families in bulk. | |
| OneMeshItemAdder * | m_one_mesh_item_adder = nullptr |
| Mesh building utilities. | |
| GhostLayerBuilder * | m_ghost_layer_builder = nullptr |
| Utility to build ghost elements. | |
| FaceUniqueIdBuilder * | m_face_unique_id_builder = nullptr |
| EdgeUniqueIdBuilder * | m_edge_unique_id_builder = nullptr |
| Int64 | m_face_uid_pool = 0 |
| uniqueId() number used for generating faces | |
| Int64 | m_edge_uid_pool = 0 |
| uniqueId() number used for generating edges | |
Additional Inherited Members | |
| Protected Member Functions inherited from Arcane::TraceAccessor | |
| void | _setLocalVerboseLevel (Int32 v) |
| Int32 | _localVerboseLevel () const |
Definition at line 57 of file DynamicMeshIncrementalBuilder.h.
|
private |
Definition at line 225 of file DynamicMeshIncrementalBuilder.h.
|
explicit |
Constructs an instance for the mesh mesh.
Definition at line 69 of file DynamicMeshIncrementalBuilder.cc.
References m_has_amr, m_mesh, m_one_mesh_item_adder, m_use_bulk_add_cells, m_verbose, Arcane::TraceAccessor::TraceAccessor(), and Arcane::TraceAccessor::traceMng().
| Arcane::mesh::DynamicMeshIncrementalBuilder::~DynamicMeshIncrementalBuilder | ( | ) |
Definition at line 86 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1379 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1369 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1622 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Allocates items in batches of one type, since a batch carries one shared info.
Checks that the localIds handed out are the position in uids, which is what lets the discovery arrays index the families directly.
Definition at line 607 of file DynamicMeshIncrementalBuilder.cc.
References ARCANE_FATAL, Arcane::ConstArrayView< T >::size(), Arcane::ConstArrayView< T >::subConstView(), Arcane::ArrayView< T >::subView(), and Arcane::ItemTypeMng::typeFromId().
Referenced by addCellsBulk().
|
private |
Definition at line 1158 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1123 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1287 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1192 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Fills a connectivity whose blocks are given in source-item order.
offsets has nb_source+1 entries and targets the concatenated blocks.
Definition at line 637 of file DynamicMeshIncrementalBuilder.cc.
References Arcane::mesh::IncrementalItemConnectivity::endBulkConnectivity(), Arcane::mesh::IncrementalItemConnectivity::preAllocatedSize(), and Arcane::mesh::IncrementalItemConnectivity::resizeBulkConnectivity().
Referenced by addCellsBulk().
|
private |
Fills the reverse of a connectivity given in source-item order.
Counting sort: one pass to count how many sources each target has, a prefix sum over the blocks, then one scatter. The sources of a given target come out in increasing source order, which is the order addCells() produces since it connects them as it walks the cells.
Definition at line 684 of file DynamicMeshIncrementalBuilder.cc.
References Arcane::mesh::IncrementalItemConnectivity::endBulkConnectivity(), Arcane::Array< T >::fill(), Arcane::ArrayView< T >::fill(), Arcane::mesh::IncrementalItemConnectivity::preAllocatedSize(), and Arcane::mesh::IncrementalItemConnectivity::resizeBulkConnectivity().
Referenced by addCellsBulk().
|
private |
Definition at line 1035 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 979 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 901 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 2037 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 2063 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1166 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Adds cells to the current mesh.
| mesh_nb_cell | number of cells to add |
| cells_infos | mesh information (see IMesh::allocateMesh()) |
| sub_domain_id | sub-domain to which the cells will belong |
| cells | returns, if not empty, contains the created cells. |
Definition at line 855 of file DynamicMeshIncrementalBuilder.cc.
References Arcane::Array< T >::add(), Arcane::Array< T >::addRange(), Arcane::ItemTypeInfo::localFace(), m_face_uid_pool, Arcane::ItemTypeInfo::nbLocalFace(), Arcane::ItemTypeInfo::nbLocalNode(), Arcane::ItemTypeInfo::LocalFace::nbNode(), Arcane::ItemTypeInfo::LocalFace::node(), Arcane::Array< T >::reserve(), Arcane::Array< T >::resize(), Arcane::ConstArrayView< T >::size(), Arcane::ItemTypeMng::typeFromId(), and Arcane::ItemTypeInfo::LocalFace::typeId().
Referenced by addCells3().
|
private |
Definition at line 1887 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1833 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1131 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1215 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 937 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 961 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1560 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1200 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1353 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1342 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1150 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1264 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Initializes face relation info.
| source_item_relation_data | The destination ItemData for face relations. |
| target_item_dependencies_data | The source ItemData containing dependencies. |
| faces_info | The constant array view of face information. |
| is_source_relation_data_empty | Flag indicating if the source relation data is empty. |
Definition at line 1115 of file DynamicMeshIncrementalBuilder.cc.
Referenced by addCells3().
|
private |
Definition at line 1184 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 1398 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 98 of file DynamicMeshIncrementalBuilder.cc.
|
private |
Definition at line 2211 of file DynamicMeshIncrementalBuilder.cc.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addCells | ( | Integer | nb_cell, |
| Int64ConstArrayView | cells_infos, | ||
| Integer | sub_domain_id, | ||
| Int32ArrayView | cells, | ||
| bool | allow_build_face = true ) |
Adds cells to the current mesh.
| mesh_nb_cell | number of cells to add |
| cells_infos | mesh information (see IMesh::allocateMesh()) |
| sub_domain_id | sub-domain to which the cells will belong |
| cells | returns, if not empty, contains the created cells. |
Definition at line 136 of file DynamicMeshIncrementalBuilder.cc.
References addCellsBulk(), ARCANE_THROW, Arcane::ItemBase::localId(), m_one_mesh_item_adder, m_use_bulk_add_cells, Arcane::ItemTypeInfo::nbLocalNode(), Arcane::ArrayView< T >::size(), and Arcane::ItemTypeMng::typeFromId().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addCells2 | ( | Integer | nb_cell, |
| Int64ConstArrayView | cell_infos, | ||
| Integer | sub_domain_id, | ||
| Int32ArrayView | cells, | ||
| bool | allow_build_face = true ) |
Definition at line 805 of file DynamicMeshIncrementalBuilder.cc.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addCells3 | ( | Integer | nb_cell, |
| Int64ConstArrayView | cells_infos, | ||
| Integer | sub_domain_id, | ||
| Int32ArrayView | cells, | ||
| bool | allow_build_face = true ) |
Adds cells to the current mesh. Uses generic item addition based on family dependencies.
| mesh_nb_cell | number of cells to add |
| cells_infos | mesh information (see IMesh::allocateMesh()) |
| sub_domain_id | sub-domain to which the cells will belong |
| cells | returns, if not empty, contains the created cells. |
Definition at line 739 of file DynamicMeshIncrementalBuilder.cc.
References _fillFaceInfo(), _initFaceRelationInfo(), addItems(), Arcane::IK_Edge, Arcane::IK_Face, m_mesh, Arcane::Array< T >::resize(), and Arcane::ArrayView< T >::size().
| bool Arcane::mesh::DynamicMeshIncrementalBuilder::addCellsBulk | ( | Integer | nb_cell, |
| Int64ConstArrayView | cells_infos, | ||
| Integer | sub_domain_id, | ||
| Int32ArrayView | cells, | ||
| bool | allow_build_face ) |
Same as addCells(), filling the family arrays in bulk.
Adds cells by filling the family arrays, instead of one item at a time.
Returns false without touching anything if the mesh is not one it can build, in which case addCells() has to do the work.
addCells() walks the cells and, for each one, allocates the cell, then every node it does not know, then every edge and every face, connecting each as it goes, which is about thirty calls per cell into the connectivity machinery.
Here the same traversal only discovers which nodes, edges and faces exist and which cell is on which side of a face, and writes the answers into flat arrays. The families are then filled in one pass each, three arrays per connectivity and one batch per family, with no per-item call at all.
The traversal is deliberately identical to addCells()' one, in the same order, so that every localId, every uid and every face orientation come out the same: this is the same mesh, built differently. It handles the first allocation of a mesh of dimension 1, 2 or 3 whose cells all have the mesh dimension, with or without edges, of any order; anything else is left to addCells().
Definition at line 205 of file DynamicMeshIncrementalBuilder.cc.
References _allocateBulkByType(), _fillBulkConnectivity(), _fillBulkReverseConnectivity(), Arcane::mesh::EdgeFamily::allocateItemsBulk(), Arcane::mesh::NodeFamily::allocateItemsBulk(), ARCANE_FATAL, ARCANE_THROW, Arcane::ItemTypeInfo::LocalEdge::beginNode(), Arcane::mesh::ItemFamily::canAllocateBulk(), Arcane::Array< T >::constView(), Arcane::ItemTypeInfo::LocalFace::edge(), Arcane::mesh::NodeFamily::edgeConnectivity(), Arcane::ItemTypeInfo::LocalEdge::endNode(), Arcane::Array< T >::fill(), Arcane::ItemTypeId::fromInteger(), Arcane::ItemTypeInfo::linearTypeInfo(), Arcane::ItemTypeInfo::localEdge(), Arcane::ItemTypeInfo::localFace(), m_connectivity, m_mesh, m_one_mesh_item_adder, Arcane::mesh::ItemFamily::name(), Arcane::ItemTypeInfo::LocalFace::nbEdge(), Arcane::ItemTypeInfo::nbLocalEdge(), Arcane::ItemTypeInfo::nbLocalFace(), Arcane::ItemTypeInfo::nbLocalNode(), Arcane::ItemTypeInfo::LocalFace::nbNode(), Arcane::ItemTypeInfo::LocalFace::node(), Arcane::mesh::CellFamily::nodeConnectivity(), Arcane::mesh::EdgeFamily::nodeConnectivity(), Arcane::mesh::FaceFamily::nodeConnectivity(), Arcane::Array< T >::resize(), Arcane::mesh::FaceFamily::setBulkBackAndFrontCells(), Arcane::ArrayView< T >::size(), Arcane::ConstArrayView< T >::size(), Arcane::Array< T >::subConstView(), Arcane::Array< T >::subView(), Arcane::ItemTypeMng::typeFromId(), Arcane::ItemTypeInfo::LocalFace::typeId(), and Arcane::FixedArray< T, NbElement >::view().
Referenced by addCells().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addEdges | ( | Integer | nb_edge, |
| Int64ConstArrayView | edge_infos, | ||
| Integer | sub_domain_id, | ||
| Int32ArrayView | edges ) |
Adds edges to the current mesh.
| nb_face | number of faces to add |
| edge_infos | edge information (see IMesh::allocateCells() without type identifier) |
| sub_domain_id | sub-domain to which the edges will belong |
| edges | returns, if not empty, contains the created edges. |
Definition at line 1934 of file DynamicMeshIncrementalBuilder.cc.
References Arcane::ItemBase::localId(), m_one_mesh_item_adder, and Arcane::ArrayView< T >::size().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addEdges2 | ( | Integer | nb_edge, |
| Int64ConstArrayView | edge_infos, | ||
| Integer | sub_domain_id, | ||
| Int32ArrayView | edges ) |
Adds edges to the current mesh. Uses generic item addition based on family dependencies.
| nb_face | number of faces to add |
| edge_infos | edge information (see IMesh::allocateCells() without type identifier) |
| sub_domain_id | sub-domain to which the edges will belong |
| edges | returns, if not empty, contains the created edges. |
Definition at line 1969 of file DynamicMeshIncrementalBuilder.cc.
References addItems(), m_mesh, Arcane::AbstractArray< T >::size(), Arcane::ArrayView< T >::size(), Arcane::ConstArrayView< T >::size(), and Arcane::Array< T >::view().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addEdges3 | ( | Integer | nb_edge, |
| Int64ConstArrayView | edge_infos, | ||
| Integer | sub_domain_id, | ||
| Int32ArrayView | edges ) |
Definition at line 2001 of file DynamicMeshIncrementalBuilder.cc.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addFaces | ( | Integer | nb_face, |
| Int64ConstArrayView | faces_infos, | ||
| Integer | sub_domain_id, | ||
| Int32ArrayView | faces ) |
Ajoute des faces au maillage actuel.
| nb_face | nombre de faces à ajouter |
| faces_infos | infos sur les faces (voir IMesh::allocateCells()) |
| sub_domain_id | sous-domaine auquel les faces appartiendront |
| faces | en retour, si non vide, contient les faces créées. |
Definition at line 1694 of file DynamicMeshIncrementalBuilder.cc.
References Arcane::ItemTypeId::fromInteger(), Arcane::ItemBase::localId(), m_one_mesh_item_adder, Arcane::ItemTypeInfo::nbLocalNode(), Arcane::ArrayView< T >::size(), and Arcane::ItemTypeMng::typeFromId().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addFaces2 | ( | Integer | nb_face, |
| Int64ConstArrayView | faces_infos, | ||
| Integer | sub_domain_id, | ||
| Int32ArrayView | faces ) |
Ajoute des faces au maillage actuel. Utilise l'ajout d'item générique basé sur dépendances entre familles.
| nb_face | nombre de faces à ajouter |
| faces_infos | infos sur les faces (voir IMesh::allocateCells()) |
| sub_domain_id | sous-domaine auquel les faces appartiendront |
| faces | en retour, si non vide, contient les faces créées. |
Definition at line 1736 of file DynamicMeshIncrementalBuilder.cc.
References addItems(), m_mesh, Arcane::AbstractArray< T >::size(), Arcane::ArrayView< T >::size(), Arcane::ConstArrayView< T >::size(), and Arcane::Array< T >::view().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addFaces3 | ( | Integer | nb_face, |
| Int64ConstArrayView | face_infos, | ||
| Integer | sub_domain_id, | ||
| Int32ArrayView | faces ) |
Definition at line 1780 of file DynamicMeshIncrementalBuilder.cc.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addFamilyItems | ( | ItemData & | item_info | ) |
Ajout générique d'items d'une famille, décrite par son ItemInfo.
Definition at line 1642 of file DynamicMeshIncrementalBuilder.cc.
References Arcane::ItemBase::localId(), m_one_mesh_item_adder, Arcane::ArrayView< T >::size(), and Arcane::ConstArrayView< T >::subView().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addGhostChildFromParent | ( | Array< Int64 > & | ghost_cell_to_refine | ) |
AMR.
Definition at line 2199 of file DynamicMeshIncrementalBuilder.cc.
References Arcane::TraceAccessor::debug(), m_ghost_layer_builder, and m_mesh.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addGhostLayers | ( | bool | is_allocate | ) |
Definition at line 2186 of file DynamicMeshIncrementalBuilder.cc.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addHChildrenCells | ( | Cell | hParent_cell, |
| Integer | nb_cell, | ||
| Int64ConstArrayView | cells_infos, | ||
| Int32 | sub_domain_id, | ||
| Int32ArrayView | cells, | ||
| bool | allow_build_face ) |
Ajoute des mailles au maillage actuel.
AMR Add to the current mesh the child cells the parent cell hParent_cell
| mesh_nb_cell | nombre de mailles à ajouter |
| cells_infos | infos sur les maillage (voir IMesh::allocateMesh()) |
| sub_domain_id | sous-domaine auquel les mailles appartiendront |
| cells | en retour, si non vide, contient les mailles créées. |
Definition at line 1439 of file DynamicMeshIncrementalBuilder.cc.
References Arcane::mesh::CellFamily::_addParentCellToCell(), Arcane::TraceAccessor::debug(), Arcane::Trace::Highest, Arcane::ItemBase::localId(), m_mesh, m_one_mesh_item_adder, Arcane::ItemTypeInfo::nbLocalNode(), Arcane::ArrayView< T >::size(), and Arcane::ItemTypeMng::typeFromId().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addItems | ( | ItemDataList & | item_info_list | ) |
Ajout générique d'items d'un ensemble de famille pour lesquelles on fournit un ItemData.
L'objet ItemDataList est une map <family_index,ItemData> où family_index est pris égal à l'item_kind de la famille et où ItemData aggrège les informations id/connectivités des items Le tableau item_infos (ItemData::itemInfos()) à la structure suivante : item_infos[0] = nb_connected_families // Only constitutive (owning) connections. item_infos[i] = first_item_type item_infos[i+1] = first_item_uid item_infos[i+2] = first_family_id item_infos[i+3] = nb_connected_items_in_first_family item_infos[i+4...i+n] = first_family items uids item_infos[i+n+1] = second_family_id item_infos[i+n+1...i+m] = second_family items uids item_infos[i+m+1] = second_item_uid ...idem first item La méthode parcours le graphe des connectivités du maillage pour créer les items de toute les familles La méthode addFamilyItems(ItemInfo&) crée les items d'une famille donnée
Definition at line 1593 of file DynamicMeshIncrementalBuilder.cc.
Referenced by addCells3(), addEdges2(), addFaces2(), and addNodes2().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addItems | ( | ItemDataList & | item_info_list, |
| ItemDataList & | item_relation_info_list ) |
Definition at line 1602 of file DynamicMeshIncrementalBuilder.cc.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addNodes | ( | Int64ConstArrayView | nodes_uid, |
| Integer | owner, | ||
| Int32ArrayView | nodes ) |
Ajoute des noeuds au maillage actuel.
| nodes_uid | identifiant unique des noeuds à créer. |
| owner | sous-domaine auquel les noeuds appartiendront. |
| nodes | en retour, si non vide, contient les noeuds correspodants aux nodes_uid |
Definition at line 1515 of file DynamicMeshIncrementalBuilder.cc.
References Arcane::ItemBase::localId(), m_one_mesh_item_adder, Arcane::ArrayView< T >::size(), and Arcane::ConstArrayView< T >::size().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addNodes2 | ( | Int64ConstArrayView | nodes_uid, |
| Integer | owner, | ||
| Int32ArrayView | nodes ) |
Ajoute des noeuds au maillage actuel. Utilise l'ajout d'item générique basé sur dépendances entre familles.
| nodes_uid | identifiant unique des noeuds à créer. |
| owner | sous-domaine auquel les noeuds appartiendront. |
| nodes | en retour, si non vide, contient les noeuds correspodants aux nodes_uid |
Definition at line 1539 of file DynamicMeshIncrementalBuilder.cc.
References addItems(), m_mesh, Arcane::ArrayView< T >::size(), and Arcane::ConstArrayView< T >::size().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addParentCells | ( | const ItemVectorView & | items | ) |
Add to the current mesh items coming from a parent mesh.
Ajoute des items du maillage parent au en tant que maille au maillage actuel.
| items | items à ajouter (vu depuis la maillage parent) |
| sub_domain_id | sous-domaine auquel les mailles appartiendront |
Definition at line 1418 of file DynamicMeshIncrementalBuilder.cc.
References Arcane::IK_Cell, m_one_mesh_item_adder, and Arcane::ItemVectorView::size().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addParentItems | ( | const ItemVectorView & | items, |
| const eItemKind | submesh_kind ) |
Add to the current mesh items coming from a parent mesh.
Ajoute des items du maillage parent au en tant qu'items fantomes au maillage actuel.
| items | items à ajouter (vu depuis la maillage parent) |
| sub_domain_id | sous-domaine auquel les mailles appartiendront |
Definition at line 1496 of file DynamicMeshIncrementalBuilder.cc.
References m_one_mesh_item_adder, and Arcane::ItemVectorView::size().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::addRelations | ( | ItemDataList & | item_relation_list | ) |
Definition at line 1613 of file DynamicMeshIncrementalBuilder.cc.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::computeFacesUniqueIds | ( | ) |
Calculates the unique IDs for each face.
The algorithm must work in a way that gives the same face numbering sequentially and in parallel regardless of the decomposition, to facilitate debugging.
The numbering principle is as follows: we traverse the cells in increasing order of their unique_id, and for each cell, we traverse the list of faces. A face is numbered if and only if its backCell() is the current cell or if its frontCell() is the current cell but it is a boundary face (nbCell()==1). When numbering the faces of the current cell, we first number the faces for which it is the backCell(), then the faces for which it is the frontCell().
This small detail is explained to simplify the determination of numbering in the parallel case (todo: explain why...)
Definition at line 2169 of file DynamicMeshIncrementalBuilder.cc.
References m_has_edge.
|
inline |
Definition at line 151 of file DynamicMeshIncrementalBuilder.h.
|
inline |
Definition at line 150 of file DynamicMeshIncrementalBuilder.h.
|
inline |
Definition at line 149 of file DynamicMeshIncrementalBuilder.h.
|
inline |
Definition at line 153 of file DynamicMeshIncrementalBuilder.h.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::printInfos | ( | ) |
Definition at line 2119 of file DynamicMeshIncrementalBuilder.cc.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::printStats | ( | Int32 | level = TraceMessage::DEFAULT_LEVEL | ) |
Definition at line 2133 of file DynamicMeshIncrementalBuilder.cc.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::readFromDump | ( | ) |
Definition at line 2089 of file DynamicMeshIncrementalBuilder.cc.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::removeNeedRemoveMarkedItems | ( | ) |
Removes ghost items.
Suppresses all items whose owner is not the current sub-domain and which do not belong to any internal elements of this sub-domain. Internal items that are no longer connected to any items are also destroyed
Definition at line 2240 of file DynamicMeshIncrementalBuilder.cc.
References Arcane::Array< T >::add(), ARCANE_CHECK_POINTER, Arcane::mesh::ItemInternalMap::eachItem(), Arcane::ItemBase::flags(), Arcane::mesh::ParticleFamily::getEnableGhostItems(), Arcane::ItemFlags::II_NeedRemove, Arcane::IK_DoF, Arcane::IK_Particle, Arcane::TraceAccessor::info(), Arcane::IItemFamily::itemKind(), Arcane::Item::localId(), m_mesh, Arcane::Item::mutableItemBase(), Arcane::IItemFamily::name(), Arcane::mesh::CellFamily::removeCells(), Arcane::IItemFamily::removeNeedRemoveMarkedItems(), Arcane::Array< T >::reserve(), Arcane::MutableItemBase::setFlags(), and Arcane::AbstractArray< T >::size().
| void Arcane::mesh::DynamicMeshIncrementalBuilder::resetAfterDeallocate | ( | ) |
Resets the structures to allow for a new allocation.
Definition at line 2336 of file DynamicMeshIncrementalBuilder.cc.
References m_edge_uid_pool, m_face_uid_pool, and m_one_mesh_item_adder.
| void Arcane::mesh::DynamicMeshIncrementalBuilder::setConnectivity | ( | Integer | c | ) |
Sets the active connectivity for the associated mesh.
This conditions the connectivities to the responsibility of this family
Definition at line 2322 of file DynamicMeshIncrementalBuilder.cc.
References ARCANE_FATAL, m_connectivity, and m_has_edge.
|
private |
Connectivity info of the current mesh.
Definition at line 277 of file DynamicMeshIncrementalBuilder.h.
Referenced by addCellsBulk(), and setConnectivity().
|
private |
uniqueId() number used for generating edges
Definition at line 293 of file DynamicMeshIncrementalBuilder.h.
Referenced by resetAfterDeallocate().
|
private |
Definition at line 290 of file DynamicMeshIncrementalBuilder.h.
|
private |
uniqueId() number used for generating faces
Definition at line 292 of file DynamicMeshIncrementalBuilder.h.
Referenced by _fillFaceInfo(), and resetAfterDeallocate().
|
private |
Definition at line 289 of file DynamicMeshIncrementalBuilder.h.
|
private |
Utility to build ghost elements.
Definition at line 288 of file DynamicMeshIncrementalBuilder.h.
Referenced by addGhostChildFromParent().
|
private |
AMR.
Definition at line 281 of file DynamicMeshIncrementalBuilder.h.
Referenced by DynamicMeshIncrementalBuilder().
|
private |
Info on the presence of an edge (accelerates access to general connectivity).
Definition at line 278 of file DynamicMeshIncrementalBuilder.h.
Referenced by computeFacesUniqueIds(), and setConnectivity().
|
private |
Definition at line 275 of file DynamicMeshIncrementalBuilder.h.
|
private |
Associated mesh.
Definition at line 274 of file DynamicMeshIncrementalBuilder.h.
Referenced by addCells3(), addCellsBulk(), addEdges2(), addFaces2(), addGhostChildFromParent(), addHChildrenCells(), addNodes2(), DynamicMeshIncrementalBuilder(), and removeNeedRemoveMarkedItems().
|
private |
Mesh building utilities.
Utility to add an item to the mesh
Definition at line 287 of file DynamicMeshIncrementalBuilder.h.
Referenced by addCells(), addCellsBulk(), addEdges(), addFaces(), addFamilyItems(), addHChildrenCells(), addNodes(), addParentCells(), addParentItems(), DynamicMeshIncrementalBuilder(), and resetAfterDeallocate().
|
private |
ARCANE_BULK_ADD_CELLS=1: addCells() fills the families in bulk.
Definition at line 284 of file DynamicMeshIncrementalBuilder.h.
Referenced by addCells(), and DynamicMeshIncrementalBuilder().
|
private |
True if messages are displayed.
Definition at line 283 of file DynamicMeshIncrementalBuilder.h.
Referenced by DynamicMeshIncrementalBuilder().