Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::ICartesianMesh Class Referenceabstract

Interface of a Cartesian mesh. More...

#include <arcane/cartesianmesh/ICartesianMesh.h>

Inheritance diagram for Arcane::ICartesianMesh:
Collaboration diagram for Arcane::ICartesianMesh:

Public Member Functions

virtual void build ()=0
virtual IMeshmesh () const =0
 Mesh associated with this Cartesian mesh.
virtual ITraceMngtraceMng () const =0
 Associated trace manager.
virtual CellDirectionMng cellDirection (eMeshDirection dir)=0
 List of cells in direction dir.
virtual CellDirectionMng cellDirection (Integer idir)=0
 List of cells in direction dir (0, 1 or 2).
virtual FaceDirectionMng faceDirection (eMeshDirection dir)=0
 List of faces in direction dir.
virtual FaceDirectionMng faceDirection (Integer idir)=0
 List of faces in direction dir (0, 1 or 2).
virtual NodeDirectionMng nodeDirection (eMeshDirection dir)=0
 List of nodes in direction dir.
virtual NodeDirectionMng nodeDirection (Integer idir)=0
 List of nodes in direction dir (0, 1 or 2).
virtual void computeDirections ()=0
 Calculates information for directional access.
virtual void recreateFromDump ()=0
 Recalculates Cartesian information after a restart.
virtual CartesianConnectivity connectivity ()=0
 Connectivity information.
virtual Int32 nbPatch () const =0
 Number of patches in the mesh.
virtual ICartesianMeshPatchpatch (Int32 index) const =0
 Returns the index-th patch of the mesh.
virtual CartesianPatch amrPatch (Int32 index) const =0
 Returns the index-th patch of the mesh.
virtual CartesianMeshPatchListView patches () const =0
 View of the list of patches.
virtual void refinePatch2D (Real2 position, Real2 length)=0
 Refines a block of the Cartesian mesh in 2D.
virtual void refinePatch3D (Real3 position, Real3 length)=0
 Refines a block of the Cartesian mesh in 3D.
virtual void refinePatch (const AMRZonePosition &position)=0
 Refines a block of the Cartesian mesh.
virtual void coarseZone2D (Real2 position, Real2 length)=0
 Coarsens a block of the Cartesian mesh in 2D.
virtual void coarseZone3D (Real3 position, Real3 length)=0
 Coarsens a block of the Cartesian mesh in 3D.
virtual void coarseZone (const AMRZonePosition &position)=0
 Coarsens a block of the Cartesian mesh.
virtual Integer reduceNbGhostLayers (Integer level, Integer target_nb_ghost_layers)=0
 Method for deleting one or more layers of ghost cells at a defined refinement level.
virtual void renumberItemsUniqueId (const CartesianMeshRenumberingInfo &v)=0
 Renumbers the uniqueId() of entities.
virtual void checkValid () const =0
 Performs checks on the validity of the instance.
virtual Ref< CartesianMeshCoarseningcreateCartesianMeshCoarsening ()=0
 Creates an instance to manage mesh coarsening.
virtual void computeDirectionsPatchV2 (Integer index)=0
virtual ICartesianMeshInternal_internalApi ()=0
 Internal Arcane API.

Static Public Member Functions

static ICartesianMeshgetReference (const MeshHandleOrMesh &mesh, bool create=true)
 Retrieves or creates the reference associated with mesh.

Detailed Description

Interface of a Cartesian mesh.

Definition at line 35 of file src/arcane/cartesianmesh/ICartesianMesh.h.

Constructor & Destructor Documentation

◆ ~ICartesianMesh()

virtual Arcane::ICartesianMesh::~ICartesianMesh ( )
inlinevirtual

Definition at line 39 of file src/arcane/cartesianmesh/ICartesianMesh.h.

Member Function Documentation

◆ _internalApi()

virtual ICartesianMeshInternal * Arcane::ICartesianMesh::_internalApi ( )
pure virtual

Internal Arcane API.

Implemented in Arcane::CartesianMeshImpl.

References _internalApi(), Arcane::arcaneCreateCartesianMesh(), and mesh().

Referenced by _internalApi(), and Arcane::CartesianMeshUtils::createCartesianMeshCoarsening2().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ amrPatch()

virtual CartesianPatch Arcane::ICartesianMesh::amrPatch ( Int32 index) const
pure virtual

Returns the index-th patch of the mesh.

If the mesh is Cartesian, there is only one patch.

The returned instance remains valid as long as this instance is not destroyed.

Deprecated
Use CartesianMeshAMRMng::amrPatch() instead.

Implemented in Arcane::CartesianMeshImpl.

◆ cellDirection() [1/2]

virtual CellDirectionMng Arcane::ICartesianMesh::cellDirection ( eMeshDirection dir)
pure virtual

List of cells in direction dir.

Implemented in Arcane::CartesianMeshImpl.

◆ cellDirection() [2/2]

virtual CellDirectionMng Arcane::ICartesianMesh::cellDirection ( Integer idir)
pure virtual

List of cells in direction dir (0, 1 or 2).

Implemented in Arcane::CartesianMeshImpl.

◆ checkValid()

virtual void Arcane::ICartesianMesh::checkValid ( ) const
pure virtual

Performs checks on the validity of the instance.

Implemented in Arcane::CartesianMeshImpl.

◆ coarseZone()

virtual void Arcane::ICartesianMesh::coarseZone ( const AMRZonePosition & position)
pure virtual

Coarsens a block of the Cartesian mesh.

This method can only be called if the mesh is an AMR mesh (IMesh::isAmrActivated()==true).

The cells whose center positions are between position and (position+length) are coarsened and the corresponding connectivity information is updated.

All cells in the coarsening zone must be of the same level.

Patches that no longer contain cells after calling this method will be deleted.

This operation is collective.

Deprecated
Use CartesianMeshAMRMng::coarseZone2D() instead.

Implemented in Arcane::CartesianMeshImpl.

◆ coarseZone2D()

virtual void Arcane::ICartesianMesh::coarseZone2D ( Real2 position,
Real2 length )
pure virtual

Coarsens a block of the Cartesian mesh in 2D.

This method can only be called if the mesh is an AMR mesh (IMesh::isAmrActivated()==true).

The cells whose center positions are between position and (position+length) are coarsened and the corresponding connectivity information is updated.

All cells in the coarsening zone must be of the same level.

Patches that no longer contain cells after calling this method will be deleted.

This operation is collective.

Deprecated
Use CartesianMeshAMRMng::coarseZone2D() instead.

Implemented in Arcane::CartesianMeshImpl.

◆ coarseZone3D()

virtual void Arcane::ICartesianMesh::coarseZone3D ( Real3 position,
Real3 length )
pure virtual

Coarsens a block of the Cartesian mesh in 3D.

This method can only be called if the mesh is an AMR mesh (IMesh::isAmrActivated()==true).

The cells whose center positions are between position and (position+length) are coarsened and the corresponding connectivity information is updated.

All cells in the coarsening zone must be of the same level.

Patches that no longer contain cells after calling this method will be deleted.

This operation is collective.

Deprecated
Use CartesianMeshAMRMng::coarseZone2D() instead.

Implemented in Arcane::CartesianMeshImpl.

◆ computeDirections()

virtual void Arcane::ICartesianMesh::computeDirections ( )
pure virtual

Calculates information for directional access.

Currently, the following restrictions exist:

  • only calculates information on cell entities.
  • assumes that cell 0 is in a corner (only works for the meshgenerator).
  • directional information is invalidated if the mesh changes.

Implemented in Arcane::CartesianMeshImpl.

◆ connectivity()

virtual CartesianConnectivity Arcane::ICartesianMesh::connectivity ( )
pure virtual

Connectivity information.

Implemented in Arcane::CartesianMeshImpl.

◆ createCartesianMeshCoarsening()

virtual Ref< CartesianMeshCoarsening > Arcane::ICartesianMesh::createCartesianMeshCoarsening ( )
pure virtual

Creates an instance to manage mesh coarsening.

Deprecated
Use Arcane::CartesianMeshUtils::createCartesianMeshCoarsening2() instead.

Implemented in Arcane::CartesianMeshImpl.

References createCartesianMeshCoarsening().

Referenced by createCartesianMeshCoarsening().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ faceDirection() [1/2]

virtual FaceDirectionMng Arcane::ICartesianMesh::faceDirection ( eMeshDirection dir)
pure virtual

List of faces in direction dir.

Implemented in Arcane::CartesianMeshImpl.

◆ faceDirection() [2/2]

virtual FaceDirectionMng Arcane::ICartesianMesh::faceDirection ( Integer idir)
pure virtual

List of faces in direction dir (0, 1 or 2).

Implemented in Arcane::CartesianMeshImpl.

◆ getReference()

ICartesianMesh * Arcane::ICartesianMesh::getReference ( const MeshHandleOrMesh & mesh,
bool create = true )
static

Retrieves or creates the reference associated with mesh.

If no material manager is associated with mesh, it will be created when this method is called if create is true. If create is false, no manager is associated to the mesh, a null pointer is returned. The returned instance remains valid as long as the mesh mesh exists.

Definition at line 1263 of file CartesianMesh.cc.

References ARCANE_FATAL, Arcane::arcaneCreateCartesianMesh(), Arcane::Cartesian, Arcane::IUserDataList::data(), Arcane::MeshHandleOrMesh::handle(), mesh(), Arcane::MeshHandle::meshOrNull(), Arcane::MeshHandle::meshUserDataList(), and Arcane::IUserDataList::setData().

Here is the call graph for this function:

◆ mesh()

virtual IMesh * Arcane::ICartesianMesh::mesh ( ) const
pure virtual

Mesh associated with this Cartesian mesh.

Implemented in Arcane::CartesianMeshImpl.

Referenced by _internalApi(), Arcane::NodeDirectionMng::_internalInit(), and getReference().

Here is the caller graph for this function:

◆ nbPatch()

virtual Int32 Arcane::ICartesianMesh::nbPatch ( ) const
pure virtual

Number of patches in the mesh.

There is always at least one patch that represents the Cartesian mesh

Deprecated
Use CartesianMeshAMRMng instead.

Implemented in Arcane::CartesianMeshImpl.

◆ nodeDirection() [1/2]

virtual NodeDirectionMng Arcane::ICartesianMesh::nodeDirection ( eMeshDirection dir)
pure virtual

List of nodes in direction dir.

Implemented in Arcane::CartesianMeshImpl.

◆ nodeDirection() [2/2]

virtual NodeDirectionMng Arcane::ICartesianMesh::nodeDirection ( Integer idir)
pure virtual

List of nodes in direction dir (0, 1 or 2).

Implemented in Arcane::CartesianMeshImpl.

◆ patch()

virtual ICartesianMeshPatch * Arcane::ICartesianMesh::patch ( Int32 index) const
pure virtual

Returns the index-th patch of the mesh.

If the mesh is Cartesian, there is only one patch.

The returned instance remains valid as long as this instance is not destroyed.

Implemented in Arcane::CartesianMeshImpl.

◆ patches()

virtual CartesianMeshPatchListView Arcane::ICartesianMesh::patches ( ) const
pure virtual

View of the list of patches.

Deprecated
Use CartesianMeshAMRMng::amrPatch() instead.

Implemented in Arcane::CartesianMeshImpl.

◆ recreateFromDump()

virtual void Arcane::ICartesianMesh::recreateFromDump ( )
pure virtual

Recalculates Cartesian information after a restart.

This method must be called instead of computeDirections() during a restart.

Implemented in Arcane::CartesianMeshImpl.

◆ reduceNbGhostLayers()

virtual Integer Arcane::ICartesianMesh::reduceNbGhostLayers ( Integer level,
Integer target_nb_ghost_layers )
pure virtual

Method for deleting one or more layers of ghost cells at a defined refinement level.

The desired number of ghost cell layers may be increased by the method. It is necessary to retrieve the returned value to get the final number of ghost cell layers.

Parameters
levelThe refinement level concerned by the deletion of ghost cells.
target_nb_ghost_layersThe desired number of layers after calling this method. ATTENTION: It may be adjusted by the method.
Returns
The final number of ghost cell layers.
Deprecated
Use CartesianMeshAMRMng::reduceNbGhostLayers() instead.

Implemented in Arcane::CartesianMeshImpl.

◆ refinePatch()

virtual void Arcane::ICartesianMesh::refinePatch ( const AMRZonePosition & position)
pure virtual

Refines a block of the Cartesian mesh.

This method can only be called if the mesh is an AMR mesh (IMesh::isAmrActivated()==true).

The cells whose center positions are between position and (position+length) are refined and the corresponding connectivity information is updated.

This operation is collective.

Deprecated
Use CartesianMeshAMRMng::refineZone() instead.

Implemented in Arcane::CartesianMeshImpl.

◆ refinePatch2D()

virtual void Arcane::ICartesianMesh::refinePatch2D ( Real2 position,
Real2 length )
pure virtual

Refines a block of the Cartesian mesh in 2D.

This method can only be called if the mesh is an AMR mesh (IMesh::isAmrActivated()==true).

The cells whose center positions are between position and (position+length) are refined and the corresponding connectivity information is updated.

This operation is collective.

Deprecated
Use CartesianMeshAMRMng::refineZone() instead.

Implemented in Arcane::CartesianMeshImpl.

◆ refinePatch3D()

virtual void Arcane::ICartesianMesh::refinePatch3D ( Real3 position,
Real3 length )
pure virtual

Refines a block of the Cartesian mesh in 3D.

This method can only be called if the mesh is an AMR mesh (IMesh::isAmrActivated()==true).

The cells whose center positions are between position and (position+length) are refined and the corresponding connectivity information is updated.

This operation is collective.

Deprecated
Use CartesianMeshAMRMng::refineZone() instead.

Implemented in Arcane::CartesianMeshImpl.

◆ renumberItemsUniqueId()

virtual void Arcane::ICartesianMesh::renumberItemsUniqueId ( const CartesianMeshRenumberingInfo & v)
pure virtual

Renumbers the uniqueId() of entities.

Based on the values of v, the uniqueId() of faces and/or entities of the patches is renumbered to have the same numbering regardless of the decomposition.

Implemented in Arcane::CartesianMeshImpl.

◆ traceMng()

virtual ITraceMng * Arcane::ICartesianMesh::traceMng ( ) const
pure virtual

Associated trace manager.

Implemented in Arcane::CartesianMeshImpl.


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