Fonctions membres publiques | |
virtual VariableNodeReal3 & | nodesCoordinates ()=0 |
Coordonnées des noeuds. | |
virtual void | setDimension (Integer dim)=0 |
Positionne la dimension du maillage (1D, 2D ou 3D). | |
virtual void | reloadMesh ()=0 |
Recharge le maillage à partir des variables protégées. | |
virtual void | allocateCells (Integer nb_cell, Int64ConstArrayView cells_infos, bool one_alloc=true)=0 |
Allocation d'un maillage. | |
virtual void | endAllocate ()=0 |
Indique une fin d'allocation de mailles. | |
virtual void | deallocate ()=0 |
Désalloue le maillage. | |
virtual IMeshInitialAllocator * | initialAllocator () |
Allocateur initial spécifique. | |
virtual VariableItemInt32 & | itemsNewOwner (eItemKind kind)=0 |
Variable contenant l'identifiant du sous-domaine propriétaire. | |
virtual void | exchangeItems ()=0 |
Change les sous-domaines propriétaires des entités. | |
virtual void | setOwnersFromCells ()=0 |
Positionne les propriétaires des entités à partir du propriétaire des mailles. | |
virtual void | setMeshPartInfo (const MeshPartInfo &mpi)=0 |
Positionne les informations de partitionnement. | |
Fonctions membres publiques hérités de Arcane::IMesh | |
virtual void | build ()=0 |
virtual String | factoryName () const =0 |
Nom de la fabrique utilisée pour créer le maillage. | |
virtual ItemInternalList | itemsInternal (eItemKind)=0 |
Tableau interne des éléments du maillage de type type. | |
virtual SharedVariableNodeReal3 | sharedNodesCoordinates ()=0 |
Coordonnées des noeuds. | |
virtual void | checkValidMesh ()=0 |
Vérification de la validité des structues internes de maillage (interne) | |
virtual void | checkValidMeshFull ()=0 |
Vérification de la validité du maillage. | |
virtual void | synchronizeGroupsAndVariables ()=0 |
Synchronise tous les groupes et les variables du maillage. | |
virtual bool | isAllocated ()=0 |
Vrai si le maillage est allouée. | |
virtual Int64 | timestamp ()=0 |
Compteur indiquant le temps de dernière modification du maillage. | |
virtual ISubDomain * | subDomain ()=0 |
Sous-domaine associé | |
virtual IParallelMng * | parallelMng ()=0 |
Gestionnaire de parallèlisme. | |
virtual VariableScalarInteger | connectivity ()=0 |
Descripteur de connectivité | |
virtual CellGroup | allActiveCells ()=0 |
virtual CellGroup | ownActiveCells ()=0 |
Groupe de toutes les mailles actives et propres au domaine. | |
virtual CellGroup | allLevelCells (const Integer &level)=0 |
Groupe de toutes les mailles de niveau level . | |
virtual CellGroup | ownLevelCells (const Integer &level)=0 |
Groupe de toutes les mailles propres de niveau level . | |
virtual FaceGroup | allActiveFaces ()=0 |
Groupe de toutes les faces actives. | |
virtual FaceGroup | ownActiveFaces ()=0 |
Groupe de toutes les faces actives propres au domaine. | |
virtual FaceGroup | innerActiveFaces ()=0 |
Groupe de toutes les faces actives. | |
virtual FaceGroup | outerActiveFaces ()=0 |
Groupe de toutes les faces actives sur la frontière. | |
virtual ItemGroupCollection | groups ()=0 |
Liste des groupes. | |
virtual ItemGroup | findGroup (const String &name)=0 |
Retourne le groupe de nom name ou le groupe nul s'il n'y en a pas. | |
virtual void | destroyGroups ()=0 |
Détruit tous les groupes de toutes les familles. | |
virtual MeshItemInternalList * | meshItemInternalList ()=0 |
virtual void | updateGhostLayers (bool remove_old_ghost)=0 |
virtual ARCANE_DEPRECATED_240 void | serializeCells (ISerializer *buffer, Int32ConstArrayView cells_local_id)=0 |
virtual void | prepareForDump ()=0 |
Prépare l'instance en vue d'une protection. | |
virtual void | initializeVariables (const XmlNode &init_node)=0 |
Initialize les variables avec les valeurs du fichier de configuration (interne) | |
virtual void | setCheckLevel (Integer level)=0 |
Positionne le niveau de vérification du maillage. | |
virtual Integer | checkLevel () const =0 |
Niveau actuel de vérification. | |
virtual bool | isDynamic () const =0 |
Indique si le maillage est dynamique (peut évoluer) | |
virtual bool | isAmrActivated () const =0 |
virtual void | computeTiedInterfaces (const XmlNode &mesh_node)=0 |
Détermine les interfaces de semi-conformités. | |
virtual bool | hasTiedInterface ()=0 |
Vrai s'il existe des interfaces semi-conformes dans le maillage. | |
virtual TiedInterfaceCollection | tiedInterfaces ()=0 |
Liste des interfaces semi-conformes. | |
virtual IMeshPartitionConstraintMng * | partitionConstraintMng ()=0 |
Gestionnaire des contraintes de partitionnement associées à ce maillage. | |
virtual IMeshUtilities * | utilities ()=0 |
Interface des fonctions utilitaires associée. | |
virtual Properties * | properties ()=0 |
Propriétés associées à ce maillage. | |
virtual IMeshModifier * | modifier ()=0 |
Interface de modification associée. | |
virtual void | defineParentForBuild (IMesh *mesh, ItemGroup group)=0 |
Définit les maillage et groupe parents. | |
virtual IMesh * | parentMesh () const =0 |
Accès au maillage parent. | |
virtual ItemGroup | parentGroup () const =0 |
Groupe parent. | |
virtual void | addChildMesh (IMesh *sub_mesh)=0 |
Ajoute un sous-maillage au maillage parent. | |
virtual MeshCollection | childMeshes () const =0 |
Liste des sous-maillages du maillage courant. | |
virtual bool | isPrimaryMesh () const =0 |
Indique si l'instance est un maillage primaire. | |
virtual IPrimaryMesh * | toPrimaryMesh ()=0 |
Retourne l'instance sous la forme d'un IPrimaryMesh. | |
virtual IUserDataList * | userDataList ()=0 |
Gestionnnaire de données utilisateurs associé | |
virtual const IUserDataList * | userDataList () const =0 |
Gestionnnaire de données utilisateurs associé | |
virtual IGhostLayerMng * | ghostLayerMng () const =0 |
Gestionnare de couche fantômes associé | |
virtual IMeshUniqueIdMng * | meshUniqueIdMng () const =0 |
Gestionnare de la numérotation des identifiants uniques. | |
virtual IMeshChecker * | checker () const =0 |
Interface du vérificateur. | |
virtual const MeshPartInfo & | meshPartInfo () const =0 |
Informations sur les parties du maillage. | |
virtual bool | useMeshItemFamilyDependencies () const =0 |
check if the network itemFamily dependencies is activated | |
virtual IItemFamilyNetwork * | itemFamilyNetwork ()=0 |
Interface du réseau de familles (familles connectées) | |
virtual IIndexedIncrementalItemConnectivityMng * | indexedConnectivityMng ()=0 |
Interface du gestionnaire des connectivités incrémentales indexées. | |
virtual const MeshKind | meshKind () const =0 |
Caractéristiques du maillage. | |
virtual EventObservable< const MeshEventArgs & > & | eventObservable (eMeshEventType type)=0 |
Observable pour un évènement. | |
virtual IMeshCompactMng * | _compactMng ()=0 |
virtual InternalConnectivityPolicy | _connectivityPolicy () const =0 |
Politique d'utilisation des connectivitées. | |
virtual IMeshMng * | meshMng () const =0 |
Gestionnaire de maillage associé | |
virtual IVariableMng * | variableMng () const =0 |
Gestionnaire de variable associé | |
virtual ItemTypeMng * | itemTypeMng () const =0 |
Gestionnaire de types d'entités associé | |
virtual void | computeSynchronizeInfos ()=0 |
Recalcule les informations de synchronisation. | |
virtual IMeshInternal * | _internalApi ()=0 |
API interne à Arcane. | |
Fonctions membres publiques hérités de Arcane::IMeshBase | |
virtual MeshHandle | handle () const =0 |
Handle sur ce maillage. | |
virtual String | name () const =0 |
Nom du maillage. | |
virtual Integer | nbNode ()=0 |
Nombre de noeuds du maillage. | |
virtual Integer | nbEdge ()=0 |
Nombre d'arêtes du maillage. | |
virtual Integer | nbFace ()=0 |
Nombre de faces du maillage. | |
virtual Integer | nbCell ()=0 |
Nombre de mailles du maillage. | |
virtual Integer | nbItem (eItemKind ik)=0 |
Nombre d'éléments du genre ik. | |
virtual ITraceMng * | traceMng ()=0 |
Gestionnaire de message associé | |
virtual Integer | dimension ()=0 |
Dimension du maillage (1D, 2D ou 3D). | |
virtual NodeGroup | allNodes ()=0 |
Groupe de tous les noeuds. | |
virtual EdgeGroup | allEdges ()=0 |
Groupe de toutes les arêtes. | |
virtual FaceGroup | allFaces ()=0 |
Groupe de toutes les faces. | |
virtual CellGroup | allCells ()=0 |
Groupe de toutes les mailles. | |
virtual NodeGroup | ownNodes ()=0 |
Groupe de tous les noeuds propres au domaine. | |
virtual EdgeGroup | ownEdges ()=0 |
Groupe de toutes les arêtes propres au domaine. | |
virtual FaceGroup | ownFaces ()=0 |
Groupe de toutes les faces propres au domaine. | |
virtual CellGroup | ownCells ()=0 |
Groupe de toutes les mailles propres au domaine. | |
virtual FaceGroup | outerFaces ()=0 |
Groupe de toutes les faces sur la frontière. | |
virtual IItemFamily * | createItemFamily (eItemKind ik, const String &name)=0 |
Créé une famille de particule de nom name. | |
virtual IItemFamily * | findItemFamily (eItemKind ik, const String &name, bool create_if_needed=false, bool register_modifier_if_created=false)=0 |
Retourne la famille de nom name. | |
virtual IItemFamily * | findItemFamily (const String &name, bool throw_exception=false)=0 |
Retourne la famille de nom name. | |
virtual IItemFamilyModifier * | findItemFamilyModifier (eItemKind ik, const String &name)=0 |
Retourne l'interface IItemFamilyModifier pour famille de nom name et de type ik. | |
virtual IItemFamily * | itemFamily (eItemKind ik)=0 |
Retourne la famille d'entité de type ik. | |
virtual IItemFamily * | nodeFamily ()=0 |
Retourne la famille des noeuds. | |
virtual IItemFamily * | edgeFamily ()=0 |
Retourne la famille des arêtes. | |
virtual IItemFamily * | faceFamily ()=0 |
Retourne la famille des faces. | |
virtual IItemFamily * | cellFamily ()=0 |
Retourne la famille des mailles. | |
virtual IItemFamilyCollection | itemFamilies ()=0 |
Interface d'un maillage primaire.
Les instances de maillage primaire sont créées soit lors de la lecture du jeu de données, soit par programmation, par appel à l'une des méthodes IMainFactory::createMesh(). Actuellement, il n'est pas possible de supprimer un maillage primaire
Par exemple, pour créer un maillage 2D vide, de nom "Mesh2":
Le maillage créé existe sur l'ensemble des rangs du IParallelMng passé en argument. Pour créér un maillage sur un seul processeur, on peut utiliser IParallelMng::sequentialParallelMng().
Il est aussi possible de lire directement un maillage à partir d'un fichier en utilisant une implémentation de IMeshReader. Par exemple, pour lire un fichier au format Vtk historique:
Il est possible par la suite de modifier le maillage via l'interface IMeshModifier récupérable par modifier(). Une fois les modifications effectuées, il faut impérativement appeler la méthode endUpdate().
Un maillage possède certaines propriétés, accessibles par properties(). Les propriétés suivantes sont valides:
Définition à la ligne 41 du fichier IPrimaryMesh.h.
|
inlinevirtual |
Définition à la ligne 46 du fichier IPrimaryMesh.h.
|
pure virtual |
Allocation d'un maillage.
Création d'un maillage quelconque.
Cette méthode est la plus générique des méthodes de création d'un maillage. Elle est utilisé lorsqu'on connait uniquement les mailles et la liste de leurs noeuds à partir de leur numéro global unique.
Cette opération alloue les structures pour le maillage contenant un nombre de mailles égal à nb_cell, les mailles étant décrites par le tableau cells_infos.
Comme les numéros des noeuds sont les numéros uniques, leur valeur peut être quelconque: il n'est pas nécessaire de commencer à zéro, ni que les numéros soient consécutifs. L'implémentation se charge de déterminer le nombre de noeuds du maillage.
Par exemple, si on a deux mailles, la première de type IT_Hexaedron8, portant le numéro unique 23 et la deuxième de type IT_Tetraedron4 portant le numéro unique 45, le tableau cells_infos contiendra 16 éléments, répartis comme suit:
Si nb_cell vaut zéro et que cells_infos n'est pas vide, le nombre de mailles est déterminée dynamiquement. Le tableau cells_infos est parcouru jusqu'à ce qu'on arrive à la fin du tableau ou qu'on rencontre une maille de type IT_NullType.
Si one_alloc est vrai, l'opération endAllocate() est appelée pour indiquer qu'il n'y aura pas d'autres mailles ajoutées. Il est possible d'allouer le maillage en plusieurs étapes en mettant one_alloc à faux et d'appeler à la fin endAllocate().
Implémenté dans Arcane::mesh::DynamicMesh, et Arcane::mesh::EmptyMesh.
Référencé par Arcane::LimaMalippReaderT< ReaderWrapper >::_readMeshPart(), Arcane::VtkMeshIOService::_readStructuredGrid(), et Arcane::XmfMeshReader::readMeshFromFile().
Désalloue le maillage.
Cela supprime toutes les entités et tous les groupes d'entités. Le maillage devra ensuite être alloué à nouveau via l'appel à allocateCells(). Cet appel supprime aussi la dimension du maillage qui devra être repositionné par setDimension(). Il est donc possible de changer la dimension du maillage par la suite.
Cette méthode est collective.
Implémenté dans Arcane::mesh::DynamicMesh, et Arcane::mesh::EmptyMesh.
Indique une fin d'allocation de mailles.
Tant que cette méthode n'a pas été appelée, il n'est pas valide d'utiliser cette instance, sauf pour allouer le maillage (allocateCells()).
Cette méthode est collective.
Implémenté dans Arcane::mesh::DynamicMesh, et Arcane::mesh::EmptyMesh.
Référencé par Arcane::LimaMalippReaderT< ReaderWrapper >::_readMeshPart(), Arcane::VtkMeshIOService::_readStructuredGrid(), et Arcane::XmfMeshReader::readMeshFromFile().
|
pure virtual |
Change les sous-domaines propriétaires des entités.
Cette méthode est appelé lorsqu'on souhaite effectuer un équilibrage de charge et redistribuer le maillage entre processeurs. La méthode suppose que les variables IItemsFamily::itemsOwner() de chaque genre d'entité du maillage (noeud, arête, face et maille) contienne le numéro du nouveau sous-domaine propriétaire de chaque entité. Ces variables doivent être synchronisées.
L'instance se charge ensuite de donner aux autres processeurs les mailles qui lui vont lui appartenir et de recevoir des autres ses nouvelles mailles, puis de faire de même pour les noeuds, arêtes, faces et particules. Les valeurs des variables et des groupes d'entités sont sont aussi échangés.
Après appel à cette méthode, il faut éventuellement appeler les points d'entrées de changement de maillage (ITimeLoopMng::execMeshChangedEntryPoints).
Pour appeler cette méthode, il faut que isDynamic() soit vrai.
L'appel à cette méthode provoque un appel implicite à endUpdate().
Implémenté dans Arcane::mesh::DynamicMesh, et Arcane::mesh::EmptyMesh.
Référencé par Arcane::SplitSDMeshPartitioner::ConnexifieDomaine(), et Arcane::SplitSDMeshPartitioner::Equilibrage().
|
inlinevirtual |
Allocateur initial spécifique.
Si nul, il faut utiliser allocateCells().
Réimplémentée dans Arcane::mesh::DynamicMesh.
Définition à la ligne 105 du fichier IPrimaryMesh.h.
|
pure virtual |
Variable contenant l'identifiant du sous-domaine propriétaire.
Retourne la variable contenant l'identifiant du sous-domaine propriétaire des entités du genre kind.
Implémenté dans Arcane::mesh::DynamicMesh, et Arcane::mesh::EmptyMesh.
Référencé par Arcane::SplitSDMeshPartitioner::ConnexifieDomaine(), Arcane::SplitSDMeshPartitioner::Equil2Dom(), Arcane::SplitSDMeshPartitioner::Equilibrage(), et Arcane::SimpleGridMeshPartitioner::partitionMesh().
|
pure virtual |
Coordonnées des noeuds.
Implémente Arcane::IMesh.
Implémenté dans Arcane::mesh::DynamicMesh, et Arcane::mesh::EmptyMesh.
Référencé par Arcane::LimaMalippReaderT< ReaderWrapper >::_readMeshPart(), Arcane::VtkMeshIOService::_readStructuredGrid(), Arcane::VtkMeshIOService::_readUnstructuredGrid(), Arcane::SimpleGridMeshPartitioner::partitionMesh(), et Arcane::XmfMeshReader::readMeshFromFile().
Recharge le maillage à partir des variables protégées.
Implémenté dans Arcane::mesh::DynamicMesh, et Arcane::mesh::EmptyMesh.
Référencé par Arcane::SubDomain::readOrReloadMeshes().
Positionne la dimension du maillage (1D, 2D ou 3D).
La dimension correspond à la dimension des éléments mailles (Cell). Si des mailles de plusieurs dimensions sont présentes, il faut indiquer la dimension la plus importante.
La dimension doit être positionnée avant d'allouer des mailles si on utilise allocateCells(), et ne doit plus être modifiée ensuite.
Implémenté dans Arcane::mesh::DynamicMesh, et Arcane::mesh::EmptyMesh.
Référencé par Arcane::LegacyMeshBuilder::_readMesh(), Arcane::VtkMeshIOService::_readStructuredGrid(), Arcane::VtkMeshIOService::_readUnstructuredGrid(), et Arcane::XmfMeshReader::readMeshFromFile().
|
pure virtual |
Positionne les informations de partitionnement.
Implémenté dans Arcane::mesh::EmptyMesh, et Arcane::mesh::DynamicMesh.
Positionne les propriétaires des entités à partir du propriétaire des mailles.
Positionne les propriétaires des entités autres que les mailles (Node,Edge et Face) en se basant sur le propriétaire aux mailles. Cette opération n'a d'intéret qu'en parallèle et ne doit être appelée que lors de l'initialisation après la méthode endAllocate().
Cette opération est collective.
Implémenté dans Arcane::mesh::DynamicMesh, et Arcane::mesh::EmptyMesh.
Référencé par Arcane::LimaMalippReaderT< ReaderWrapper >::_readMeshPart(), et Arcane::XmfMeshReader::readMeshFromFile().