G+Smo
25.01.0
Geometry + Simulation Modules
|
Struct which represents a certain component (interior, face, egde, corner) of a particular patch.
This struct is a generalization of patchSide and of patchCorner.
Public Types | |
enum | location { interior , begin , end } |
Represents a location. More... | |
Public Member Functions | |
patchCorner | asCorner () const |
Converts to patchCorner and fails if the component is not a corner. | |
patchSide | asSide () const |
Converts to patchSide and fails if the component is not a corner. | |
std::vector< patchCorner > | containedCorners () const |
Returns a vector of all patchCorner s that are contained in the component. | |
std::vector< patchSide > | containingSides () const |
Returns a vector of all patchSide s that contain the component. | |
short_t | dim () const |
Dimension of the component. | |
index_t | index () const |
Returns the index. | |
location | locationForDirection (index_t direction) const |
patchComponent | opposite () const |
Returns the opposite boxCorner. | |
index_t | patch () const |
Returns the patch number. | |
patchComponent (index_t p, boxComponent b) | |
Constructor converting boxComponent to a patchComponent. | |
patchComponent (index_t p, index_t b, short_t total_dim) | |
Constructor. | |
patchComponent (index_t p, short_t total_dim) | |
Constructor creating patchComponent representing the interior. | |
patchComponent (patchCorner p, short_t total_dim) | |
Constructor converting patchCorner to a patchComponent. | |
patchComponent (patchSide p, short_t total_dim) | |
Constructor converting patchSide to a patchComponent. | |
void | setLocationForDirection (index_t direction, location par) |
short_t | totalDim () const |
Dimension of the computational domain (the box itself) | |
Private Attributes | |
index_t | m_index |
The index defines the component. | |
index_t | m_patch |
The particular patch. | |
short_t | m_total_dim |
The dimension of the box itself. | |
|
inherited |
|
inline |
Constructor.
p | The patch index |
b | The index that defines the component |
total_dim | The dimension of the box itself |
|
inline |
Constructor creating patchComponent representing the interior.
p | The patch index |
total_dim | The dimension of the box itself |
|
inline |
Constructor converting boxComponent to a patchComponent.
p | The patch index |
b | The box component |
|
inline |
Constructor converting patchSide to a patchComponent.
p | The patch side |
total_dim | The dimension of the box itself |
|
inline |
Constructor converting patchCorner to a patchComponent.
p | The patch corner |
total_dim | The dimension of the box itself |
|
inherited |
Gets the location for the direction
If the result value is begin, then the component is characterized by \( x_i = 0 \) If the result value is end, then the component is characterized by \( x_i = 1 \) If the result value is begin, then the component is characterized by \( x_i \in (0,1) \)
direction | The index \( i \) from above |
|
inherited |
Sets the location for the direction
See locationForDirection
direction | The index \( i \) from above |
par | See locationForDirection |
|
privateinherited |
The index defines the component.
If the index is written as trinary number with digits 0, 1, 2 each position names one of the spatial dimensions and values are: 0=interior, 1=begin, 2=end (cf location)
So, in 2D (m_total_dim=2), we have indeces [00]=0 to [22]=8
[00] = 0 ... interior [01] = 1 ... left edge [02] = 2 ... right edge [10] = 3 ... lower edge [20] = 6 ... upper edge [11] = 4 ... lower-left corner etc., where [ab]=3*a+b
In 3D (m_total_dim=3), we have indeces [000]=0 to [222]=26
[000] = 0 ... interior [001] = 1 ... west face [002] = 2 ... east face [010] = 3 ... south face [020] = 6 ... north face [100] = 9 ... front face [200] = 18 ... back face [011] = 4 ... south-west edge [222] = 26 ... back-north-east corner etc., where [abc]=9*a+3*b+c