Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::IMesh Class Referenceabstract

Public Member Functions

virtual void build ()=0
virtual String factoryName () const =0
 Name of the factory used to create the mesh.
virtual ItemInternalList itemsInternal (eItemKind)=0
 Internal array of mesh elements of type type.
virtual SharedVariableNodeReal3 sharedNodesCoordinates ()=0
 Node coordinates.
virtual void checkValidMesh ()=0
 Check for the validity of internal mesh structures (internal).
virtual void checkValidMeshFull ()=0
 Mesh validity check.
virtual void synchronizeGroupsAndVariables ()=0
 Synchronizes all mesh groups and variables.
virtual bool isAllocated ()=0
 True if the mesh is allocated.
virtual Int64 timestamp ()=0
 Counter indicating the time of the last mesh modification.
 ARCANE_DEPRECATED_LONG_TERM ("Y2020: Do not use this method. Try to get 'ISubDomain' from another way") virtual ISubDomain *subDomain()=0
 Associated subdomain.
virtual IParallelMngparallelMng ()=0
 Parallelism manager.
virtual VariableScalarInteger connectivity ()=0
 Connectivity descriptor.
virtual CellGroup allActiveCells ()=0
virtual CellGroup ownActiveCells ()=0
 Group of all active cells specific to the domain.
virtual CellGroup allLevelCells (const Integer &level)=0
 Group of all cells of level level.
virtual CellGroup ownLevelCells (const Integer &level)=0
 Group of all cells specific to the domain of level level.
virtual FaceGroup allActiveFaces ()=0
 Group of all active faces.
virtual FaceGroup ownActiveFaces ()=0
 Group of all active faces specific to the domain.
virtual FaceGroup innerActiveFaces ()=0
 Group of all active faces.
virtual FaceGroup outerActiveFaces ()=0
 Group of all active faces on the boundary.
virtual ItemGroupCollection groups ()=0
 List of groups.
virtual ItemGroup findGroup (const String &name)=0
 Returns the group with name name or a null group if none exists.
virtual void destroyGroups ()=0
 Destroys all groups of all families.
virtual MeshItemInternalListmeshItemInternalList ()=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
 Prepares the instance for dumping.
virtual void initializeVariables (const XmlNode &init_node)=0
 Initializes variables with values from the configuration file (internal).
virtual void setCheckLevel (Integer level)=0
 Sets the mesh check level.
virtual Integer checkLevel () const =0
 Current check level.
virtual bool isDynamic () const =0
 Indicates if the mesh is dynamic (can evolve).
virtual bool isAmrActivated () const =0
Management of semi-conforming interfaces
virtual void computeTiedInterfaces (const XmlNode &mesh_node)=0
 Determines the semi-conforming interfaces.
virtual bool hasTiedInterface ()=0
 True if semi-conforming interfaces exist in the mesh.
virtual TiedInterfaceCollection tiedInterfaces ()=0
 List of semi-conforming interfaces.
virtual IMeshPartitionConstraintMngpartitionConstraintMng ()=0
 Manager of partitioning constraints associated with this mesh.
virtual IMeshUtilitiesutilities ()=0
 Associated utility functions interface.
virtual Propertiesproperties ()=0
 Properties associated with this mesh.
virtual IMeshModifiermodifier ()=0
 Associated modifier interface.
virtual VariableNodeReal3nodesCoordinates ()=0
 Node coordinates.
virtual void defineParentForBuild (IMesh *mesh, ItemGroup group)=0
 Defines the parent mesh and group.
virtual IMeshparentMesh () const =0
 Access to the parent mesh.
virtual ItemGroup parentGroup () const =0
 Parent group.
virtual void addChildMesh (IMesh *sub_mesh)=0
 Adds a sub-mesh to the parent mesh.
virtual MeshCollection childMeshes () const =0
 List of sub-meshes of the current mesh.
virtual bool isPrimaryMesh () const =0
 Indicates if the instance is a primary mesh.
virtual IPrimaryMeshtoPrimaryMesh ()=0
 Returns the instance in the form of an IPrimaryMesh.
virtual IUserDataListuserDataList ()=0
 Associated user data manager.
virtual const IUserDataListuserDataList () const =0
 Associated user data manager.
virtual IGhostLayerMngghostLayerMng () const =0
 Associated ghost layer manager.
virtual IMeshUniqueIdMngmeshUniqueIdMng () const =0
 Unique ID numbering manager.
virtual IMeshCheckerchecker () const =0
 Checker interface.
virtual const MeshPartInfomeshPartInfo () const =0
 Mesh part information.
virtual bool useMeshItemFamilyDependencies () const =0
 check if the network itemFamily dependencies is activated
virtual IItemFamilyNetworkitemFamilyNetwork ()=0
 Family network interface (connected families).
virtual IIndexedIncrementalItemConnectivityMngindexedConnectivityMng ()=0
 Interface of the indexed incremental connectivity manager.
virtual const MeshKind meshKind () const =0
 Mesh characteristics.
virtual EventObservable< const MeshEventArgs & > & eventObservable (eMeshEventType type)=0
 Observable for an event.
virtual IMeshCompactMng_compactMng ()=0
virtual InternalConnectivityPolicy _connectivityPolicy () const =0
virtual IMeshMngmeshMng () const =0
 Associated mesh manager.
virtual IVariableMngvariableMng () const =0
 Associated variable manager.
virtual ItemTypeMngitemTypeMng () const =0
 Associated entity type manager.
virtual void computeSynchronizeInfos ()=0
 Recalculates synchronization information.
virtual IMeshInternal * _internalApi ()=0
 Internal Arcane API.
Public Member Functions inherited from Arcane::IMeshBase
virtual MeshHandle handle () const =0
 Handle on this mesh.
virtual String name () const =0
 Mesh name.
virtual Integer nbNode ()=0
 Number of mesh nodes.
virtual Integer nbEdge ()=0
 Number of mesh edges.
virtual Integer nbFace ()=0
 Number of mesh faces.
virtual Integer nbCell ()=0
 Number of mesh cells.
virtual Integer nbItem (eItemKind ik)=0
 Number of elements of type ik.
virtual ITraceMngtraceMng ()=0
 Associated message manager.
virtual Integer dimension ()=0
 Mesh dimension (1D, 2D, or 3D).
virtual NodeGroup allNodes ()=0
 Group of all nodes.
virtual EdgeGroup allEdges ()=0
 Group of all edges.
virtual FaceGroup allFaces ()=0
 Group of all faces.
virtual CellGroup allCells ()=0
 Group of all cells.
virtual NodeGroup ownNodes ()=0
 Group of all domain-specific nodes.
virtual EdgeGroup ownEdges ()=0
 Group of all domain-specific edges.
virtual FaceGroup ownFaces ()=0
 Group of all domain-specific faces.
virtual CellGroup ownCells ()=0
 Group of all domain-specific cells.
virtual FaceGroup outerFaces ()=0
 Group of all faces on the boundary.
virtual IItemFamilycreateItemFamily (eItemKind ik, const String &name)=0
 Create a particle family named name.
virtual IItemFamilyfindItemFamily (eItemKind ik, const String &name, bool create_if_needed=false, bool register_modifier_if_created=false)=0
 Returns the family named name.
virtual IItemFamilyfindItemFamily (const String &name, bool throw_exception=false)=0
 Returns the family named name.
virtual IItemFamilyModifierfindItemFamilyModifier (eItemKind ik, const String &name)=0
 Returns the IItemFamilyModifier interface for the family named name and of type ik.
virtual IItemFamilyitemFamily (eItemKind ik)=0
 Returns the entity family of type ik.
virtual IItemFamilynodeFamily ()=0
 Returns the node family.
virtual IItemFamilyedgeFamily ()=0
 Returns the edge family.
virtual IItemFamilyfaceFamily ()=0
 Returns the face family.
virtual IItemFamilycellFamily ()=0
 Returns the cell family.
virtual IItemFamilyCollection itemFamilies ()=0

Detailed Description

Interface of a mesh.

There are two types of meshes that implement this interface:

  • primary meshes, which also implement the IPrimaryMesh interface and which can be created dynamically or by reading a file
  • secondary meshes which depend on a primary mesh and which represent a subset of the primary mesh.

A mesh is composed of a set of entities (Item), such as nodes (Node), edges (Edge), faces (Face), or cells (Cell). It is also possible to associate other types of entities, such as particles (Particle).

Entities of the same type are managed in a family (IItemFamily).

A mesh has a dimension, retrievable via dimension(), which can be 1, 2, or 3. The dimension is only used to indicate the dimension of Cell elements, i.e., 1D, 2D, or 3D.

To create a mesh, you must refer to the IPrimaryMesh interface.

Definition at line 58 of file IMesh.h.

Member Function Documentation

◆ allActiveCells()

virtual CellGroup Arcane::IMesh::allActiveCells ( )
pure virtual

AMR Group of all active cells

References allActiveCells().

Referenced by allActiveCells().

◆ checkValidMeshFull()

virtual void Arcane::IMesh::checkValidMeshFull ( )
pure virtual

Mesh validity check.

This is a global check across all subdomains.

It notably checks that connectivity is consistent between subdomains.

The check can be quite CPU intensive. This method is collective.

◆ computeSynchronizeInfos()

virtual void Arcane::IMesh::computeSynchronizeInfos ( )
pure virtual

Recalculates synchronization information.

This operation is collective.

Normally this is done automatically by Arcane when it is necessary. However, it can happen following certain internal modifications that the information for synchronization needs to be manually updated.

References computeSynchronizeInfos().

Referenced by computeSynchronizeInfos().

◆ connectivity()

virtual VariableScalarInteger Arcane::IMesh::connectivity ( )
pure virtual

Connectivity descriptor.

This object allows reading/modifying connectivity

References connectivity().

Referenced by connectivity().

◆ defineParentForBuild()

virtual void Arcane::IMesh::defineParentForBuild ( IMesh * mesh,
ItemGroup group )
pure virtual

Defines the parent mesh and group.

Must be set on the mesh being constructed before the build() phase

References defineParentForBuild().

Referenced by defineParentForBuild().

◆ isAllocated()

virtual bool Arcane::IMesh::isAllocated ( )
pure virtual

True if the mesh is allocated.

A mesh is allocated as soon as an entity has been added, by allocateCells(), or reloadMesh()

◆ isPrimaryMesh()

virtual bool Arcane::IMesh::isPrimaryMesh ( ) const
pure virtual

Indicates if the instance is a primary mesh.

To be a primary mesh, the instance must be convertible to an IPrimaryMesh and not be a sub-mesh, meaning it does not have a parent mesh (parentMesh()==nullptr).

References isPrimaryMesh().

Referenced by isPrimaryMesh().

◆ nodesCoordinates()

virtual VariableNodeReal3 & Arcane::IMesh::nodesCoordinates ( )
pure virtual

Node coordinates.

Returns a native array (not shared like SharedVariable) of coordinates. This call is only valid on a primary mesh (not a sub-mesh).

Implemented in Arcane::IPrimaryMesh.

References nodesCoordinates().

Referenced by nodesCoordinates().

◆ parentGroup()

virtual ItemGroup Arcane::IMesh::parentGroup ( ) const
pure virtual

Parent group.

Returns the null group if the mesh has no parent.

References parentGroup().

Referenced by parentGroup().

◆ parentMesh()

virtual IMesh * Arcane::IMesh::parentMesh ( ) const
pure virtual

Access to the parent mesh.

Returns nullptr if the mesh does not have a parent mesh.

References parentMesh().

Referenced by parentMesh().

◆ setCheckLevel()

virtual void Arcane::IMesh::setCheckLevel ( Integer level)
pure virtual

Sets the mesh check level.

0 - tests disabled 1 - partial tests, after endUpdate() 2 - full tests, after endUpdate()

References setCheckLevel().

Referenced by setCheckLevel().

◆ synchronizeGroupsAndVariables()

virtual void Arcane::IMesh::synchronizeGroupsAndVariables ( )
pure virtual

Synchronizes all mesh groups and variables.

This operation is collective

◆ timestamp()

virtual Int64 Arcane::IMesh::timestamp ( )
pure virtual

Counter indicating the time of the last mesh modification.

This counter increases with every call to endUpdate(). It is 0 upon initialization. It allows, for example, checking if the mesh topology has changed between two parts of the code.

Referenced by Arcane::CartesianMeshImpl::computeDirections().

◆ toPrimaryMesh()

virtual IPrimaryMesh * Arcane::IMesh::toPrimaryMesh ( )
pure virtual

Returns the instance in the form of an IPrimaryMesh.

Throws a BadCastException if the instance is not of type IPrimaryMesh and if isPrimaryMesh() is false.

References toPrimaryMesh().

Referenced by Arcane::IMeshPartitioner::primaryMesh(), and toPrimaryMesh().


The documentation for this class was generated from the following file: