Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::AMRPatchPositionSignature Class Reference

Class for managing patch signatures. More...

#include <arcane/cartesianmesh/internal/AMRPatchPositionSignature.h>

Collaboration diagram for Arcane::AMRPatchPositionSignature:

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< CartCoordsigX () const
 Method for retrieving the X signature.
ConstArrayView< CartCoordsigY () const
 Method for retrieving the Y signature.
ConstArrayView< CartCoordsigZ () const
 Method for retrieving the Z signature.
AMRPatchPosition patch () const
 Method for retrieving a copy of the patch.
ICartesianMeshmesh () 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
ICartesianMeshm_mesh
Int32 m_nb_cut
bool m_stop_cut
ICartesianMeshNumberingMngInternalm_numbering
bool m_have_cells
bool m_is_computed
UniqueArray< CartCoordm_sig_x
UniqueArray< CartCoordm_sig_y
UniqueArray< CartCoordm_sig_z

Detailed Description

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.

Constructor & Destructor Documentation

◆ AMRPatchPositionSignature() [1/3]

Arcane::AMRPatchPositionSignature::AMRPatchPositionSignature ( )

Definition at line 53 of file AMRPatchPositionSignature.cc.

◆ AMRPatchPositionSignature() [2/3]

Arcane::AMRPatchPositionSignature::AMRPatchPositionSignature ( const AMRPatchPosition & patch,
ICartesianMesh * cmesh )

Definition at line 65 of file AMRPatchPositionSignature.cc.

◆ AMRPatchPositionSignature() [3/3]

Arcane::AMRPatchPositionSignature::AMRPatchPositionSignature ( const AMRPatchPosition & patch,
ICartesianMesh * cmesh,
Int32 nb_cut )
private

Definition at line 80 of file AMRPatchPositionSignature.cc.

Member Function Documentation

◆ canBeCut()

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().

Here is the call graph for this function:

◆ compress()

void Arcane::AMRPatchPositionSignature::compress ( )

Method for removing zeros at the beginning and end of the signatures.

Note
Method called by compute().
Warning
The method fillSig() must have been called before.

Definition at line 98 of file AMRPatchPositionSignature.cc.

References ARCANE_FATAL, and Arcane::Array< T >::subView().

Referenced by compute().

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

◆ 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().

Here is the call graph for this function:

◆ cut()

std::pair< AMRPatchPositionSignature, AMRPatchPositionSignature > Arcane::AMRPatchPositionSignature::cut ( Integer dim,
CartCoord cut_point ) const

Method for cutting the patch. The patch is not modified.

Parameters
dimThe dimension of the cut_point.
cut_pointThe position of the cut.
Returns
The two patches resulting from the cut.

Definition at line 380 of file AMRPatchPositionSignature.cc.

Referenced by Arcane::AMRPatchPositionSignatureCut::cut().

Here is the caller graph for this function:

◆ efficacity()

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().

Here is the caller graph for this function:

◆ fillSig()

void Arcane::AMRPatchPositionSignature::fillSig ( )

Method for calculating the signatures.

Note
Method called by compute(). Collective method.

Definition at line 209 of file AMRPatchPositionSignature.cc.

References ENUMERATE_, Arcane::ItemFlags::II_Refine, Arcane::MessagePassing::ReduceMax, and Arcane::MessagePassing::ReduceSum.

Referenced by compute().

Here is the caller graph for this function:

◆ isComputed()

bool Arcane::AMRPatchPositionSignature::isComputed ( ) const

Method for determining whether the compute() method has already been called.

Definition at line 453 of file AMRPatchPositionSignature.cc.

◆ isValid()

bool Arcane::AMRPatchPositionSignature::isValid ( ) const

Method for determining if the signatures are valid.

Definition at line 248 of file AMRPatchPositionSignature.cc.

Referenced by canBeCut().

Here is the caller graph for this function:

◆ mesh()

ICartesianMesh * Arcane::AMRPatchPositionSignature::mesh ( ) const

Definition at line 426 of file AMRPatchPositionSignature.cc.

◆ patch()

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().

Here is the caller graph for this function:

◆ setStopCut()

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.

◆ sigX()

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().

Here is the caller graph for this function:

◆ sigY()

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().

Here is the caller graph for this function:

◆ sigZ()

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().

Here is the caller graph for this function:

◆ stopCut()

bool Arcane::AMRPatchPositionSignature::stopCut ( ) const

Method for determining if the patch can still be cut.

Definition at line 435 of file AMRPatchPositionSignature.cc.

Member Data Documentation

◆ m_have_cells

bool Arcane::AMRPatchPositionSignature::m_have_cells
private

Definition at line 153 of file AMRPatchPositionSignature.h.

◆ m_is_computed

bool Arcane::AMRPatchPositionSignature::m_is_computed
private

Definition at line 154 of file AMRPatchPositionSignature.h.

◆ m_is_null

bool Arcane::AMRPatchPositionSignature::m_is_null
private

Definition at line 145 of file AMRPatchPositionSignature.h.

◆ m_mesh

ICartesianMesh* Arcane::AMRPatchPositionSignature::m_mesh
private

Definition at line 147 of file AMRPatchPositionSignature.h.

◆ m_nb_cut

Int32 Arcane::AMRPatchPositionSignature::m_nb_cut
private

Definition at line 148 of file AMRPatchPositionSignature.h.

◆ m_numbering

ICartesianMeshNumberingMngInternal* Arcane::AMRPatchPositionSignature::m_numbering
private

Definition at line 151 of file AMRPatchPositionSignature.h.

◆ m_patch

AMRPatchPosition Arcane::AMRPatchPositionSignature::m_patch
private

Definition at line 146 of file AMRPatchPositionSignature.h.

◆ m_sig_x

UniqueArray<CartCoord> Arcane::AMRPatchPositionSignature::m_sig_x
private

Definition at line 156 of file AMRPatchPositionSignature.h.

◆ m_sig_y

UniqueArray<CartCoord> Arcane::AMRPatchPositionSignature::m_sig_y
private

Definition at line 157 of file AMRPatchPositionSignature.h.

◆ m_sig_z

UniqueArray<CartCoord> Arcane::AMRPatchPositionSignature::m_sig_z
private

Definition at line 158 of file AMRPatchPositionSignature.h.

◆ m_stop_cut

bool Arcane::AMRPatchPositionSignature::m_stop_cut
private

Definition at line 149 of file AMRPatchPositionSignature.h.


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