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 79 of file CartesianMesh.cc.
|
explicit |
Definition at line 284 of file CartesianMesh.cc.
|
private |
Creates a patch with all children of the group parent_cells.
Definition at line 1072 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 1061 of file CartesianMesh.cc.
|
private |
Definition at line 1138 of file CartesianMesh.cc.
|
private |
Definition at line 1094 of file CartesianMesh.cc.
|
private |
Definition at line 594 of file CartesianMesh.cc.
|
inlineprivate |
Definition at line 221 of file CartesianMesh.cc.
|
private |
Definition at line 379 of file CartesianMesh.cc.
|
private |
Definition at line 323 of file CartesianMesh.cc.
|
private |
Definition at line 694 of file CartesianMesh.cc.
|
private |
Definition at line 624 of file CartesianMesh.cc.
|
private |
Definition at line 776 of file CartesianMesh.cc.
|
private |
Definition at line 1252 of file CartesianMesh.cc.
|
inlineoverridevirtual |
Implements Arcane::ICartesianMesh.
Definition at line 212 of file CartesianMesh.cc.
|
private |
Definition at line 336 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 192 of file CartesianMesh.cc.
References m_patch_group.
|
overridevirtual |
Implements Arcane::ICartesianMesh.
Definition at line 305 of file CartesianMesh.cc.
|
inlineoverridevirtual |
List of cells in direction dir.
Implements Arcane::ICartesianMesh.
Definition at line 151 of file CartesianMesh.cc.
|
inlineoverridevirtual |
List of cells in direction dir (0, 1 or 2).
Implements Arcane::ICartesianMesh.
Definition at line 156 of file CartesianMesh.cc.
|
overridevirtual |
Performs checks on the validity of the instance.
Implements Arcane::ICartesianMesh.
Definition at line 1183 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 894 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 874 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 884 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 394 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 737 of file CartesianMesh.cc.
|
inlineoverridevirtual |
Connectivity information.
Implements Arcane::ICartesianMesh.
Definition at line 185 of file CartesianMesh.cc.
|
overridevirtual |
Creates an instance to manage mesh coarsening.
Implements Arcane::ICartesianMesh.
Definition at line 1243 of file CartesianMesh.cc.
References Arcane::makeRef().
|
inlineoverridevirtual |
List of faces in direction dir.
Implements Arcane::ICartesianMesh.
Definition at line 161 of file CartesianMesh.cc.
|
inlineoverridevirtual |
List of faces in direction dir (0, 1 or 2).
Implements Arcane::ICartesianMesh.
Definition at line 166 of file CartesianMesh.cc.
|
inlineoverridevirtual |
Mesh associated with this Cartesian mesh.
Implements Arcane::ICartesianMesh.
Definition at line 146 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 190 of file CartesianMesh.cc.
References m_patch_group.
Referenced by checkValid().
|
inlineoverridevirtual |
List of nodes in direction dir.
Implements Arcane::ICartesianMesh.
Definition at line 171 of file CartesianMesh.cc.
|
inlineoverridevirtual |
List of nodes in direction dir (0, 1 or 2).
Implements Arcane::ICartesianMesh.
Definition at line 176 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.
Referenced by checkValid(), and computeDirections().
|
inlineoverridevirtual |
View of the list of patches.
Implements Arcane::ICartesianMesh.
Definition at line 193 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 353 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 904 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 864 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 844 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 854 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 1197 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 149 of file CartesianMesh.cc.
References Arcane::TraceAccessor::traceMng().
|
private |
Definition at line 231 of file CartesianMesh.cc.
|
private |
Definition at line 244 of file CartesianMesh.cc.
|
private |
Definition at line 234 of file CartesianMesh.cc.
|
private |
Definition at line 232 of file CartesianMesh.cc.
|
private |
Definition at line 241 of file CartesianMesh.cc.
|
private |
Definition at line 226 of file CartesianMesh.cc.
|
private |
Definition at line 236 of file CartesianMesh.cc.
|
private |
Definition at line 242 of file CartesianMesh.cc.
|
private |
Index in the local numbering of the cell, of the face in.
Definition at line 229 of file CartesianMesh.cc.
Referenced by computeDirections().
|
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 |
Group of cells for each AMR patch.
Definition at line 238 of file CartesianMesh.cc.
Referenced by _addPatch(), amrPatch(), computeDirections(), nbPatch(), patch(), patches(), and recreateFromDump().
|
private |
Definition at line 235 of file CartesianMesh.cc.
|
private |
Definition at line 239 of file CartesianMesh.cc.