Class for managing patch signatures. More...
#include <arcane/cartesianmesh/internal/AMRPatchPositionSignature.h>
Public Member Functions | |
| AMRPatchPositionSignature (const AMRPatchPosition &patch, ICartesianMesh *cmesh) | |
| AMRPatchPositionSignature (const AMRPatchPositionSignature &)=default | |
| AMRPatchPositionSignature & | operator= (const AMRPatchPositionSignature &)=default |
| void | compress () |
| Method for removing zeros at the beginning and end of the signatures. | |
| void | fillSig () |
| Method for calculating the signatures. | |
| bool | isValid () const |
| Method for determining if the signatures are valid. | |
| bool | canBeCut () const |
| Method for determining if the patch can be cut into two via the cut() method. | |
| void | compute () |
| Method for calculating the signatures of a patch. This method must be called after construction. | |
| Real | efficacity () const |
| Method to determine the patch's efficiency. | |
| std::pair< AMRPatchPositionSignature, AMRPatchPositionSignature > | cut (Integer dim, CartCoord cut_point) const |
| Method for cutting the patch. The patch is not modified. | |
| ConstArrayView< CartCoord > | sigX () const |
| Method for retrieving the X signature. | |
| ConstArrayView< CartCoord > | sigY () const |
| Method for retrieving the Y signature. | |
| ConstArrayView< CartCoord > | sigZ () const |
| Method for retrieving the Z signature. | |
| AMRPatchPosition | patch () const |
| Method for retrieving a copy of the patch. | |
| ICartesianMesh * | mesh () const |
| bool | stopCut () const |
| Method for determining if the patch can still be cut. | |
| void | setStopCut (bool stop_cut) |
| Method for defining whether the patch can still be cut. | |
| bool | isComputed () const |
| Method for determining whether the compute() method has already been called. | |
Private Member Functions | |
| AMRPatchPositionSignature (const AMRPatchPosition &patch, ICartesianMesh *cmesh, Int32 nb_cut) | |
Private Attributes | |
| bool | m_is_null |
| AMRPatchPosition | m_patch |
| ICartesianMesh * | m_mesh |
| Int32 | m_nb_cut |
| bool | m_stop_cut |
| ICartesianMeshNumberingMngInternal * | m_numbering |
| bool | m_have_cells |
| bool | m_is_computed |
| UniqueArray< CartCoord > | m_sig_x |
| UniqueArray< CartCoord > | m_sig_y |
| UniqueArray< CartCoord > | m_sig_z |
Class for managing patch signatures.
The signature of a patch in one dimension corresponds to the number of cells to refine in the other dimension (or in the other two dimensions in 3D). Example: for the X signature, for each Xn, for all Yn and for all Zn, we count the number of cells to refine at (Xn, Yn, Zn).
Definition at line 41 of file AMRPatchPositionSignature.h.
| Arcane::AMRPatchPositionSignature::AMRPatchPositionSignature | ( | ) |
Definition at line 53 of file AMRPatchPositionSignature.cc.
| Arcane::AMRPatchPositionSignature::AMRPatchPositionSignature | ( | const AMRPatchPosition & | patch, |
| ICartesianMesh * | cmesh ) |
Definition at line 65 of file AMRPatchPositionSignature.cc.
|
private |
Definition at line 80 of file AMRPatchPositionSignature.cc.
| bool Arcane::AMRPatchPositionSignature::canBeCut | ( | ) | const |
Method for determining if the patch can be cut into two via the cut() method.
Definition at line 266 of file AMRPatchPositionSignature.cc.
References efficacity(), and isValid().
| void Arcane::AMRPatchPositionSignature::compress | ( | ) |
Method for removing zeros at the beginning and end of the signatures.
Definition at line 98 of file AMRPatchPositionSignature.cc.
References ARCANE_FATAL, and Arcane::Array< T >::subView().
Referenced by compute().
| void Arcane::AMRPatchPositionSignature::compute | ( | ) |
Method for calculating the signatures of a patch. This method must be called after construction.
Definition at line 300 of file AMRPatchPositionSignature.cc.
References compress(), and fillSig().
| std::pair< AMRPatchPositionSignature, AMRPatchPositionSignature > Arcane::AMRPatchPositionSignature::cut | ( | Integer | dim, |
| CartCoord | cut_point ) const |
Method for cutting the patch. The patch is not modified.
| dim | The dimension of the cut_point. |
| cut_point | The position of the cut. |
Definition at line 380 of file AMRPatchPositionSignature.cc.
Referenced by Arcane::AMRPatchPositionSignatureCut::cut().
| Real Arcane::AMRPatchPositionSignature::efficacity | ( | ) | const |
Method to determine the patch's efficiency.
Definition at line 316 of file AMRPatchPositionSignature.cc.
Referenced by canBeCut(), and Arcane::AMRPatchPositionSignatureCut::cut().
| void Arcane::AMRPatchPositionSignature::fillSig | ( | ) |
Method for calculating the signatures.
Definition at line 209 of file AMRPatchPositionSignature.cc.
References ENUMERATE_, Arcane::ItemFlags::II_Refine, Arcane::MessagePassing::ReduceMax, and Arcane::MessagePassing::ReduceSum.
Referenced by compute().
| bool Arcane::AMRPatchPositionSignature::isComputed | ( | ) | const |
Method for determining whether the compute() method has already been called.
Definition at line 453 of file AMRPatchPositionSignature.cc.
| bool Arcane::AMRPatchPositionSignature::isValid | ( | ) | const |
Method for determining if the signatures are valid.
Definition at line 248 of file AMRPatchPositionSignature.cc.
Referenced by canBeCut().
| ICartesianMesh * Arcane::AMRPatchPositionSignature::mesh | ( | ) | const |
Definition at line 426 of file AMRPatchPositionSignature.cc.
| AMRPatchPosition Arcane::AMRPatchPositionSignature::patch | ( | ) | const |
Method for retrieving a copy of the patch.
Definition at line 417 of file AMRPatchPositionSignature.cc.
Referenced by Arcane::AMRPatchPositionSignatureCut::cut().
| void Arcane::AMRPatchPositionSignature::setStopCut | ( | bool | stop_cut | ) |
Method for defining whether the patch can still be cut.
Definition at line 444 of file AMRPatchPositionSignature.cc.
| ConstArrayView< CartCoord > Arcane::AMRPatchPositionSignature::sigX | ( | ) | const |
Method for retrieving the X signature.
Definition at line 390 of file AMRPatchPositionSignature.cc.
Referenced by Arcane::AMRPatchPositionSignatureCut::cut().
| ConstArrayView< CartCoord > Arcane::AMRPatchPositionSignature::sigY | ( | ) | const |
Method for retrieving the Y signature.
Definition at line 399 of file AMRPatchPositionSignature.cc.
Referenced by Arcane::AMRPatchPositionSignatureCut::cut().
| ConstArrayView< CartCoord > Arcane::AMRPatchPositionSignature::sigZ | ( | ) | const |
Method for retrieving the Z signature.
Definition at line 408 of file AMRPatchPositionSignature.cc.
Referenced by Arcane::AMRPatchPositionSignatureCut::cut().
| bool Arcane::AMRPatchPositionSignature::stopCut | ( | ) | const |
Method for determining if the patch can still be cut.
Definition at line 435 of file AMRPatchPositionSignature.cc.
|
private |
Definition at line 153 of file AMRPatchPositionSignature.h.
|
private |
Definition at line 154 of file AMRPatchPositionSignature.h.
|
private |
Definition at line 145 of file AMRPatchPositionSignature.h.
|
private |
Definition at line 147 of file AMRPatchPositionSignature.h.
|
private |
Definition at line 148 of file AMRPatchPositionSignature.h.
|
private |
Definition at line 151 of file AMRPatchPositionSignature.h.
|
private |
Definition at line 146 of file AMRPatchPositionSignature.h.
|
private |
Definition at line 156 of file AMRPatchPositionSignature.h.
|
private |
Definition at line 157 of file AMRPatchPositionSignature.h.
|
private |
Definition at line 158 of file AMRPatchPositionSignature.h.
|
private |
Definition at line 149 of file AMRPatchPositionSignature.h.