Specific information for a Cartesian mesh. More...
Classes | |
| class | InternalApi |
Public Member Functions | |
| CartesianMeshImpl (IMesh *mesh) | |
| void | build () override |
| IMesh * | mesh () const override |
| Mesh associated with this Cartesian mesh. | |
| ITraceMng * | traceMng () const override |
| Associated trace manager. | |
| CellDirectionMng | cellDirection (eMeshDirection dir) override |
| List of cells in direction dir. | |
| CellDirectionMng | cellDirection (Integer idir) override |
| List of cells in direction dir (0, 1 or 2). | |
| FaceDirectionMng | faceDirection (eMeshDirection dir) override |
| List of faces in direction dir. | |
| FaceDirectionMng | faceDirection (Integer idir) override |
| List of faces in direction dir (0, 1 or 2). | |
| NodeDirectionMng | nodeDirection (eMeshDirection dir) override |
| List of nodes in direction dir. | |
| NodeDirectionMng | nodeDirection (Integer idir) override |
| List of nodes in direction dir (0, 1 or 2). | |
| void | computeDirections () override |
| Calculates information for directional access. | |
| void | recreateFromDump () override |
| Recalculates Cartesian information after a restart. | |
| CartesianConnectivity | connectivity () override |
| Connectivity information. | |
| Int32 | nbPatch () const override |
| Number of patches in the mesh. | |
| ICartesianMeshPatch * | patch (Int32 index) const override |
| Returns the index-th patch of the mesh. | |
| CartesianPatch | amrPatch (Int32 index) const override |
| Returns the index-th patch of the mesh. | |
| CartesianMeshPatchListView | patches () const override |
| View of the list of patches. | |
| void | refinePatch2D (Real2 position, Real2 length) override |
| Refines a block of the Cartesian mesh in 2D. | |
| void | refinePatch3D (Real3 position, Real3 length) override |
| Refines a block of the Cartesian mesh in 3D. | |
| void | refinePatch (const AMRZonePosition &position) override |
| Refines a block of the Cartesian mesh. | |
| void | coarseZone2D (Real2 position, Real2 length) override |
| Coarsens a block of the Cartesian mesh in 2D. | |
| void | coarseZone3D (Real3 position, Real3 length) override |
| Coarsens a block of the Cartesian mesh in 3D. | |
| void | coarseZone (const AMRZonePosition &position) override |
| Coarsens a block of the Cartesian mesh. | |
| Integer | reduceNbGhostLayers (Integer level, Integer target_nb_ghost_layers) override |
| Method for deleting one or more layers of ghost cells at a defined refinement level. | |
| void | renumberItemsUniqueId (const CartesianMeshRenumberingInfo &v) override |
| Renumbers the uniqueId() of entities. | |
| void | checkValid () const override |
| Performs checks on the validity of the instance. | |
| Ref< CartesianMeshCoarsening > | createCartesianMeshCoarsening () override |
| Creates an instance to manage mesh coarsening. | |
| ICartesianMeshInternal * | _internalApi () override |
| Internal API for Arcane. | |
| void | computeDirectionsPatchV2 (Integer index) override |
| 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 Attributes | |
| InternalApi | m_internal_api |
| Int32 | m_local_face_direction [3] = { -1, -1, -1 } |
| Index in the local numbering of the cell, of the face in. | |
| IMesh * | m_mesh = nullptr |
| Ref< CartesianMeshPatch > | m_all_items_direction_info |
| CartesianConnectivity | m_connectivity |
| UniqueArray< CartesianConnectivity::Index > | m_nodes_to_cell_storage |
| UniqueArray< CartesianConnectivity::Index > | m_cells_to_node_storage |
| UniqueArray< CartesianConnectivity::Permutation > | m_permutation_storage |
| bool | m_is_amr = false |
| CartesianPatchGroup | m_patch_group |
| Group of cells for each AMR patch. | |
| ScopedPtrT< Properties > | m_properties |
| EventObserverPool | m_event_pool |
| bool | m_is_mesh_event_added = false |
| Int64 | m_mesh_timestamp = 0 |
| eMeshAMRKind | m_amr_type |
Additional Inherited Members | |
| Static Public Member Functions inherited from Arcane::ICartesianMesh | |
| static ICartesianMesh * | getReference (const MeshHandleOrMesh &mesh, bool create=true) |
| Retrieves or creates the reference associated with mesh. | |
| Protected Member Functions inherited from Arcane::TraceAccessor | |
| void | _setLocalVerboseLevel (Int32 v) |
| Int32 | _localVerboseLevel () const |
Specific information for a Cartesian mesh.
Definition at line 78 of file CartesianMesh.cc.
|
explicit |
Definition at line 283 of file CartesianMesh.cc.
|
private |
Creates a patch with all children of the group parent_cells.
Definition at line 1071 of file CartesianMesh.cc.
References Arcane::Array< T >::add(), Arcane::Cell::hChild(), Arcane::Item::localId(), m_patch_group, and Arcane::Cell::nbHChildren().
|
private |
Definition at line 1060 of file CartesianMesh.cc.
|
private |
Definition at line 1137 of file CartesianMesh.cc.
|
private |
Definition at line 1093 of file CartesianMesh.cc.
|
private |
Definition at line 593 of file CartesianMesh.cc.
|
inlineprivate |
Definition at line 220 of file CartesianMesh.cc.
|
private |
Definition at line 378 of file CartesianMesh.cc.
|
private |
Definition at line 322 of file CartesianMesh.cc.
|
private |
Definition at line 693 of file CartesianMesh.cc.
|
private |
Definition at line 623 of file CartesianMesh.cc.
|
private |
Definition at line 775 of file CartesianMesh.cc.
|
private |
Definition at line 1251 of file CartesianMesh.cc.
|
inlineoverridevirtual |
Implements Arcane::ICartesianMesh.
Definition at line 211 of file CartesianMesh.cc.
|
private |
Definition at line 335 of file CartesianMesh.cc.
|
inlineoverridevirtual |
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.
Implements Arcane::ICartesianMesh.
Definition at line 191 of file CartesianMesh.cc.
References m_patch_group.
|
overridevirtual |
Implements Arcane::ICartesianMesh.
Definition at line 304 of file CartesianMesh.cc.
|
inlineoverridevirtual |
List of cells in direction dir.
Implements Arcane::ICartesianMesh.
Definition at line 150 of file CartesianMesh.cc.
|
inlineoverridevirtual |
List of cells in direction dir (0, 1 or 2).
Implements Arcane::ICartesianMesh.
Definition at line 155 of file CartesianMesh.cc.
|
overridevirtual |
Performs checks on the validity of the instance.
Implements Arcane::ICartesianMesh.
Definition at line 1182 of file CartesianMesh.cc.
References Arcane::ICartesianMeshPatch::checkValid(), Arcane::TraceAccessor::info(), nbPatch(), and patch().
Referenced by computeDirections().
|
overridevirtual |
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.
Implements Arcane::ICartesianMesh.
Definition at line 893 of file CartesianMesh.cc.
Referenced by coarseZone2D(), and coarseZone3D().
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.
Implements Arcane::ICartesianMesh.
Definition at line 873 of file CartesianMesh.cc.
References coarseZone(), and Arcane::TraceAccessor::info().
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.
Implements Arcane::ICartesianMesh.
Definition at line 883 of file CartesianMesh.cc.
References coarseZone(), and Arcane::TraceAccessor::info().
|
overridevirtual |
Calculates information for directional access.
Currently, the following restrictions exist:
Implements Arcane::ICartesianMesh.
Definition at line 393 of file CartesianMesh.cc.
References Arcane::IItemFamily::allItems(), Arcane::arcaneIsCheck(), checkValid(), ENUMERATE_CELL, ENUMERATE_FACE, Arcane::Cell::face(), Arcane::TraceAccessor::info(), m_local_face_direction, m_patch_group, Arcane::MD_DirX, Arcane::MD_DirY, Arcane::MD_DirZ, mesh(), Arcane::ItemGroup::name(), Arcane::Cell::nbFace(), Arcane::ItemWithNodes::nbNode(), Arcane::ItemWithNodes::node(), Arcane::ItemWithNodes::nodeIds(), patch(), Arcane::PatchCartesianMeshOnly, Arcane::ItemGroup::size(), Arcane::ItemGroup::view(), Arcane::Real3POD::x, Arcane::Real3POD::y, and Arcane::Real3POD::z.
Referenced by recreateFromDump(), reduceNbGhostLayers(), and renumberItemsUniqueId().
|
overridevirtual |
Implements Arcane::ICartesianMesh.
Definition at line 736 of file CartesianMesh.cc.
|
inlineoverridevirtual |
Connectivity information.
Implements Arcane::ICartesianMesh.
Definition at line 184 of file CartesianMesh.cc.
|
overridevirtual |
Creates an instance to manage mesh coarsening.
Implements Arcane::ICartesianMesh.
Definition at line 1242 of file CartesianMesh.cc.
References Arcane::makeRef().
|
inlineoverridevirtual |
List of faces in direction dir.
Implements Arcane::ICartesianMesh.
Definition at line 160 of file CartesianMesh.cc.
|
inlineoverridevirtual |
List of faces in direction dir (0, 1 or 2).
Implements Arcane::ICartesianMesh.
Definition at line 165 of file CartesianMesh.cc.
|
inlineoverridevirtual |
Mesh associated with this Cartesian mesh.
Implements Arcane::ICartesianMesh.
Definition at line 145 of file CartesianMesh.cc.
Referenced by computeDirections().
|
inlineoverridevirtual |
Number of patches in the mesh.
There is always at least one patch that represents the Cartesian mesh
Implements Arcane::ICartesianMesh.
Definition at line 189 of file CartesianMesh.cc.
References m_patch_group.
Referenced by checkValid().
|
inlineoverridevirtual |
List of nodes in direction dir.
Implements Arcane::ICartesianMesh.
Definition at line 170 of file CartesianMesh.cc.
|
inlineoverridevirtual |
List of nodes in direction dir (0, 1 or 2).
Implements Arcane::ICartesianMesh.
Definition at line 175 of file CartesianMesh.cc.
|
inlineoverridevirtual |
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.
Implements Arcane::ICartesianMesh.
Definition at line 190 of file CartesianMesh.cc.
References m_patch_group.
Referenced by checkValid(), and computeDirections().
|
inlineoverridevirtual |
View of the list of patches.
Implements Arcane::ICartesianMesh.
Definition at line 192 of file CartesianMesh.cc.
References m_patch_group.
|
overridevirtual |
Recalculates Cartesian information after a restart.
This method must be called instead of computeDirections() during a restart.
Implements Arcane::ICartesianMesh.
Definition at line 352 of file CartesianMesh.cc.
References ARCANE_FATAL, computeDirections(), Arcane::TraceAccessor::info(), m_patch_group, and Arcane::PatchCartesianMeshOnly.
|
overridevirtual |
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.
| level | The refinement level concerned by the deletion of ghost cells. |
| target_nb_ghost_layers | The desired number of layers after calling this method. ATTENTION: It may be adjusted by the method. |
Implements Arcane::ICartesianMesh.
Definition at line 903 of file CartesianMesh.cc.
References Arcane::Array< T >::add(), ARCANE_FATAL, computeDirections(), ENUMERATE_, Arcane::TraceAccessor::info(), Arcane::Item::isOwn(), Arcane::Cell::level(), Arcane::Item::null(), Arcane::MessagePassing::ReduceMax, Arcane::AbstractArray< T >::size(), and Arcane::Convert::toInt32().
|
overridevirtual |
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.
Implements Arcane::ICartesianMesh.
Definition at line 863 of file CartesianMesh.cc.
Referenced by refinePatch2D(), and refinePatch3D().
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.
Implements Arcane::ICartesianMesh.
Definition at line 843 of file CartesianMesh.cc.
References Arcane::TraceAccessor::info(), and refinePatch().
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.
Implements Arcane::ICartesianMesh.
Definition at line 853 of file CartesianMesh.cc.
References Arcane::TraceAccessor::info(), and refinePatch().
|
overridevirtual |
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.
Implements Arcane::ICartesianMesh.
Definition at line 1196 of file CartesianMesh.cc.
References ARCANE_FATAL, ARCANE_THROW, computeDirections(), Arcane::TraceAccessor::info(), Arcane::PatchCartesianMeshOnly, and Arcane::TraceAccessor::warning().
|
inlineoverridevirtual |
Associated trace manager.
Implements Arcane::ICartesianMesh.
Definition at line 148 of file CartesianMesh.cc.
References Arcane::TraceAccessor::traceMng().
|
private |
Definition at line 230 of file CartesianMesh.cc.
|
private |
Definition at line 243 of file CartesianMesh.cc.
|
private |
Definition at line 233 of file CartesianMesh.cc.
|
private |
Definition at line 231 of file CartesianMesh.cc.
|
private |
Definition at line 240 of file CartesianMesh.cc.
|
private |
Definition at line 225 of file CartesianMesh.cc.
|
private |
Definition at line 235 of file CartesianMesh.cc.
|
private |
Definition at line 241 of file CartesianMesh.cc.
|
private |
Index in the local numbering of the cell, of the face in.
Definition at line 228 of file CartesianMesh.cc.
Referenced by computeDirections().
|
private |
Definition at line 229 of file CartesianMesh.cc.
|
private |
Definition at line 242 of file CartesianMesh.cc.
|
private |
Definition at line 232 of file CartesianMesh.cc.
|
private |
Group of cells for each AMR patch.
Definition at line 237 of file CartesianMesh.cc.
Referenced by _addPatch(), amrPatch(), computeDirections(), nbPatch(), patch(), patches(), and recreateFromDump().
|
private |
Definition at line 234 of file CartesianMesh.cc.
|
private |
Definition at line 238 of file CartesianMesh.cc.