Domaine_IJK#

#include <Domaine_IJK.h>

This class encapsulates all the information related to the eulerian mesh for TrioIJK.

How to cite this class in this doc#

:ref:`Domaine\_IJK <class-domaine-ijk>`
[Domaine\_IJK](#class-domaine-ijk)

Detailed description#

Multiples methods regarding how to navigates through it, volume of the each cells, etc…

Inherits from#

List of Public Methods#

List of Public Static Methods#

List of Protected Methods#

Complete Member Function Documentation#

convert_ijk_cell_to_packed
int Domaine_IJK::convert_ijk_cell_to_packed(const FixedVector< int, 3 > ijk) const

Converts the ijk index of an element to a cell index.

Adapted from Maillage_FT_IJK.h

References
Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::convert_ijk_cell_to_packed(const FixedVector< int, 3 > ijk) const <public-int-domaine-ijk-convert-ijk-cell-to-packed-const-fixedvector-int-3-ijk-const>`
[int Domaine_IJK::convert_ijk_cell_to_packed(const FixedVector< int, 3 > ijk) const](#public-int-domaine-ijk-convert-ijk-cell-to-packed-const-fixedvector-int-3-ijk-const)
convert_ijk_cell_to_packed
int Domaine_IJK::convert_ijk_cell_to_packed(int i, int j, int k) const

With three indices, find the local index of an element.

References
How to cite in this doc:
:ref:`int Domaine_IJK::convert_ijk_cell_to_packed(int i, int j, int k) const <public-int-domaine-ijk-convert-ijk-cell-to-packed-int-i-int-j-int-k-const>`
[int Domaine_IJK::convert_ijk_cell_to_packed(int i, int j, int k) const](#public-int-domaine-ijk-convert-ijk-cell-to-packed-int-i-int-j-int-k-const)
convert_packed_to_ijk_cell
FixedVector<int, 3> Domaine_IJK::convert_packed_to_ijk_cell(int index) const

Convert the local index of an element to a vector with IJK indices.

Adapted from Maillage_FT_IJK.h

References
Referenced By
How to cite in this doc:
:ref:`FixedVector<int, 3> Domaine_IJK::convert_packed_to_ijk_cell(int index) const <public-fixedvector-int-3-domaine-ijk-convert-packed-to-ijk-cell-int-index-const>`
[FixedVector<int, 3> Domaine_IJK::convert_packed_to_ijk_cell(int index) const](#public-fixedvector-int-3-domaine-ijk-convert-packed-to-ijk-cell-int-index-const)
correct_perio_i_local
int Domaine_IJK::correct_perio_i_local(int direction, int i) const
References
Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::correct_perio_i_local(int direction, int i) const <public-int-domaine-ijk-correct-perio-i-local-int-direction-int-i-const>`
[int Domaine_IJK::correct_perio_i_local(int direction, int i) const](#public-int-domaine-ijk-correct-perio-i-local-int-direction-int-i-const)
creer_faces
Faces * Domaine_IJK::creer_faces()

renvoie new(Faces) ! elle est surchargee par Domaine_VDF par ex.

How to cite in this doc:
:ref:`Faces * Domaine_IJK::creer_faces() <public-faces-ptr-domaine-ijk-creer-faces>`
[Faces * Domaine_IJK::creer_faces()](#public-faces-ptr-domaine-ijk-creer-faces)
Domaine_IJK
Domaine_IJK::Domaine_IJK()
References
How to cite in this doc:
:ref:`Domaine_IJK::Domaine_IJK() <public-domaine-ijk-domaine-ijk>`
[Domaine_IJK::Domaine_IJK()](#public-domaine-ijk-domaine-ijk)
duplique
int Domaine_IJK::duplique() const override

Reimplements:

How to cite in this doc:
:ref:`int Domaine_IJK::duplique() const override <public-int-domaine-ijk-duplique-const-override>`
[int Domaine_IJK::duplique() const override](#public-int-domaine-ijk-duplique-const-override)
ft_extension
int Domaine_IJK::ft_extension() const
Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::ft_extension() const <public-int-domaine-ijk-ft-extension-const>`
[int Domaine_IJK::ft_extension() const](#public-int-domaine-ijk-ft-extension-const)
get_constant_delta
double Domaine_IJK::get_constant_delta(int direction) const

Returns the size of cells in a direction.

This requires the size of all cells in this direction to be the same, Which means is_uniform(direction) has to be true.

References
Referenced By
How to cite in this doc:
:ref:`double Domaine_IJK::get_constant_delta(int direction) const <public-double-domaine-ijk-get-constant-delta-int-direction-const>`
[double Domaine_IJK::get_constant_delta(int direction) const](#public-double-domaine-ijk-get-constant-delta-int-direction-const)
get_coord_of_dof_along_dir
double Domaine_IJK::get_coord_of_dof_along_dir(int dir, int i, Localisation loc) const
References
Referenced By
How to cite in this doc:
:ref:`double Domaine_IJK::get_coord_of_dof_along_dir(int dir, int i, Localisation loc) const <public-double-domaine-ijk-get-coord-of-dof-along-dir-int-dir-int-i-localisation-loc-const>`
[double Domaine_IJK::get_coord_of_dof_along_dir(int dir, int i, Localisation loc) const](#public-double-domaine-ijk-get-coord-of-dof-along-dir-int-dir-int-i-localisation-loc-const)
get_coords_of_dof
Vecteur3 Domaine_IJK::get_coords_of_dof(int i, int j, int k, Localisation loc) const

Determines the dof of an element along a localisation.

TODO: Not sure about the brief?

References
Referenced By
How to cite in this doc:
:ref:`Vecteur3 Domaine_IJK::get_coords_of_dof(int i, int j, int k, Localisation loc) const <public-vecteur3-domaine-ijk-get-coords-of-dof-int-i-int-j-int-k-localisation-loc-const>`
[Vecteur3 Domaine_IJK::get_coords_of_dof(int i, int j, int k, Localisation loc) const](#public-vecteur3-domaine-ijk-get-coords-of-dof-int-i-int-j-int-k-localisation-loc-const)
get_i_along_dir_no_perio
int Domaine_IJK::get_i_along_dir_no_perio(int direction, double coord_dir, Localisation loc) const
References
Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_i_along_dir_no_perio(int direction, double coord_dir, Localisation loc) const <public-int-domaine-ijk-get-i-along-dir-no-perio-int-direction-double-coord-dir-localisation-loc-const>`
[int Domaine_IJK::get_i_along_dir_no_perio(int direction, double coord_dir, Localisation loc) const](#public-int-domaine-ijk-get-i-along-dir-no-perio-int-direction-double-coord-dir-localisation-loc-const)
get_i_along_dir_perio
int Domaine_IJK::get_i_along_dir_perio(int direction, double coord_dir, Localisation loc) const
References
Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_i_along_dir_perio(int direction, double coord_dir, Localisation loc) const <public-int-domaine-ijk-get-i-along-dir-perio-int-direction-double-coord-dir-localisation-loc-const>`
[int Domaine_IJK::get_i_along_dir_perio(int direction, double coord_dir, Localisation loc) const](#public-int-domaine-ijk-get-i-along-dir-perio-int-direction-double-coord-dir-localisation-loc-const)
get_ijk_from_coord
Int3 Domaine_IJK::get_ijk_from_coord(double coord_x, double coord_y, double coord_z, Localisation loc) const
References
How to cite in this doc:
:ref:`Int3 Domaine_IJK::get_ijk_from_coord(double coord_x, double coord_y, double coord_z, Localisation loc) const <public-int3-domaine-ijk-get-ijk-from-coord-double-coord-x-double-coord-y-double-coord-z-localisation-loc-const>`
[Int3 Domaine_IJK::get_ijk_from_coord(double coord_x, double coord_y, double coord_z, Localisation loc) const](#public-int3-domaine-ijk-get-ijk-from-coord-double-coord-x-double-coord-y-double-coord-z-localisation-loc-const)
get_ijk_from_independent_index
Int3 Domaine_IJK::get_ijk_from_independent_index(int independent_index) const
References
How to cite in this doc:
:ref:`Int3 Domaine_IJK::get_ijk_from_independent_index(int independent_index) const <public-int3-domaine-ijk-get-ijk-from-independent-index-int-independent-index-const>`
[Int3 Domaine_IJK::get_ijk_from_independent_index(int independent_index) const](#public-int3-domaine-ijk-get-ijk-from-independent-index-int-independent-index-const)
get_independent_index
int Domaine_IJK::get_independent_index(int i, int j, int k) const

independent_index adds a ghost_size to the packed index. It is similar to the linear_index defined in IJK_Field_local_template , but with a universal, predefined ghost_size of 256 instead of a field - dependent ghost_size. Since the ghost_size_ value is larger than any ghost_size expected to be used in practice, any virtual cell can be represented by the independent index.

References
Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_independent_index(int i, int j, int k) const <public-int-domaine-ijk-get-independent-index-int-i-int-j-int-k-const>`
[int Domaine_IJK::get_independent_index(int i, int j, int k) const](#public-int-domaine-ijk-get-independent-index-int-i-int-j-int-k-const)
get_independent_index_from_signed_independent_index
int Domaine_IJK::get_independent_index_from_signed_independent_index(int signed_independent_index) const
How to cite in this doc:
:ref:`int Domaine_IJK::get_independent_index_from_signed_independent_index(int signed_independent_index) const <public-int-domaine-ijk-get-independent-index-from-signed-independent-index-int-signed-independent-index-const>`
[int Domaine_IJK::get_independent_index_from_signed_independent_index(int signed_independent_index) const](#public-int-domaine-ijk-get-independent-index-from-signed-independent-index-int-signed-independent-index-const)
get_info
const Type_info * Domaine_IJK::get_info() const override

Donne des informations sur le type de l’ Objet_U .

Reimplements:

How to cite in this doc:
:ref:`const Type_info * Domaine_IJK::get_info() const override <public-const-type-info-ptr-domaine-ijk-get-info-const-override>`
[const Type_info * Domaine_IJK::get_info() const override](#public-const-type-info-ptr-domaine-ijk-get-info-const-override)
get_local_mesh_delta
void Domaine_IJK::get_local_mesh_delta(int direction, int ghost_cells, ArrOfDouble_with_ghost &delta) const

Fills the “delta” array with the size of the cells owned by the processor in the requested direction.

“delta” is redimensionned with the specified number of ghost cells and filled. If domain is periodic, takes periodic mesh size in ghost cells on first and last subdomain, if domain is not periodic, copy the size of the first and last cell into ghost cells in the walls.

References
Referenced By
How to cite in this doc:
:ref:`void Domaine_IJK::get_local_mesh_delta(int direction, int ghost_cells, ArrOfDouble_with_ghost &delta) const <public-void-domaine-ijk-get-local-mesh-delta-int-direction-int-ghost-cells-arrofdouble-with-ghost-ref-delta-const>`
[void Domaine_IJK::get_local_mesh_delta(int direction, int ghost_cells, ArrOfDouble_with_ghost &delta) const](#public-void-domaine-ijk-get-local-mesh-delta-int-direction-int-ghost-cells-arrofdouble-with-ghost-ref-delta-const)
get_local_slice_index
int Domaine_IJK::get_local_slice_index(int direction) const

Returns the position of the local subdomain in the requested direction.

Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_local_slice_index(int direction) const <public-int-domaine-ijk-get-local-slice-index-int-direction-const>`
[int Domaine_IJK::get_local_slice_index(int direction) const](#public-int-domaine-ijk-get-local-slice-index-int-direction-const)
get_nb_elem_local
int Domaine_IJK::get_nb_elem_local() const

Returns the number of element owned by this processor.

References
Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_nb_elem_local() const <public-int-domaine-ijk-get-nb-elem-local-const>`
[int Domaine_IJK::get_nb_elem_local() const](#public-int-domaine-ijk-get-nb-elem-local-const)
get_nb_elem_tot
int Domaine_IJK::get_nb_elem_tot() const

Returns the total (global) number of mesh cells.

References
Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_nb_elem_tot() const <public-int-domaine-ijk-get-nb-elem-tot-const>`
[int Domaine_IJK::get_nb_elem_tot() const](#public-int-domaine-ijk-get-nb-elem-tot-const)
get_nb_elem_tot
int Domaine_IJK::get_nb_elem_tot(int direction) const

Returns the total (global) number of mesh cells in requested direction.

References
Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_nb_elem_tot(int direction) const <public-int-domaine-ijk-get-nb-elem-tot-int-direction-const>`
[int Domaine_IJK::get_nb_elem_tot(int direction) const](#public-int-domaine-ijk-get-nb-elem-tot-int-direction-const)
get_nb_faces_local
int Domaine_IJK::get_nb_faces_local(int compo, int direction) const

Returns the number, in requested direction, of faces that are oriented in direction of “compo”.

The last face of the last element is owned by the next processor.

Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_nb_faces_local(int compo, int direction) const <public-int-domaine-ijk-get-nb-faces-local-int-compo-int-direction-const>`
[int Domaine_IJK::get_nb_faces_local(int compo, int direction) const](#public-int-domaine-ijk-get-nb-faces-local-int-compo-int-direction-const)
get_nb_items_global
int Domaine_IJK::get_nb_items_global(Localisation loc, int direction) const

Returns the number of local items (on this processor) for the given localisation in the requested direction.

If periodic along requested direction, need to add the last item for nodes and faces.

References
Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_nb_items_global(Localisation loc, int direction) const <public-int-domaine-ijk-get-nb-items-global-localisation-loc-int-direction-const>`
[int Domaine_IJK::get_nb_items_global(Localisation loc, int direction) const](#public-int-domaine-ijk-get-nb-items-global-localisation-loc-int-direction-const)
get_nb_items_local
int Domaine_IJK::get_nb_items_local(Localisation loc, int direction) const

Returns the number of local items (on this processor) for the given localisation in the requested direction.

References
Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_nb_items_local(Localisation loc, int direction) const <public-int-domaine-ijk-get-nb-items-local-localisation-loc-int-direction-const>`
[int Domaine_IJK::get_nb_items_local(Localisation loc, int direction) const](#public-int-domaine-ijk-get-nb-items-local-localisation-loc-int-direction-const)
get_nb_nodes_local
int Domaine_IJK::get_nb_nodes_local(int direction) const

Returns the number of nodes owned by this processor (generally equal to nb_elem_local())

The last node of the last element is owned by the next processor.

Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_nb_nodes_local(int direction) const <public-int-domaine-ijk-get-nb-nodes-local-int-direction-const>`
[int Domaine_IJK::get_nb_nodes_local(int direction) const](#public-int-domaine-ijk-get-nb-nodes-local-int-direction-const)
get_neighbour_processor
int Domaine_IJK::get_neighbour_processor(int previous_or_next, int direction) const

Returns the index of the requested neighbour processor ( - 1 if no neighbour).

previous_or_next = 0 = > get processor at left (in the direction of smaller indices). previous_or_next = 1 = > get processor at right (in the direction of the larger indices).

Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_neighbour_processor(int previous_or_next, int direction) const <public-int-domaine-ijk-get-neighbour-processor-int-previous-or-next-int-direction-const>`
[int Domaine_IJK::get_neighbour_processor(int previous_or_next, int direction) const](#public-int-domaine-ijk-get-neighbour-processor-int-previous-or-next-int-direction-const)
get_node_coordinates
const ArrOfDouble & Domaine_IJK::get_node_coordinates(int direction) const

Returns an array with the coordinates of all nodes in the mesh in requested direction.

Referenced By
How to cite in this doc:
:ref:`const ArrOfDouble & Domaine_IJK::get_node_coordinates(int direction) const <public-const-arrofdouble-ref-domaine-ijk-get-node-coordinates-int-direction-const>`
[const ArrOfDouble & Domaine_IJK::get_node_coordinates(int direction) const](#public-const-arrofdouble-ref-domaine-ijk-get-node-coordinates-int-direction-const)
get_nprocessor_per_direction
int Domaine_IJK::get_nprocessor_per_direction(int direction) const

Returns the number of slices in the given direction.

Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_nprocessor_per_direction(int direction) const <public-int-domaine-ijk-get-nprocessor-per-direction-int-direction-const>`
[int Domaine_IJK::get_nprocessor_per_direction(int direction) const](#public-int-domaine-ijk-get-nprocessor-per-direction-int-direction-const)
get_offset_local
int Domaine_IJK::get_offset_local(int direction) const

Returns the local offset in requested direction.

Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_offset_local(int direction) const <public-int-domaine-ijk-get-offset-local-int-direction-const>`
[int Domaine_IJK::get_offset_local(int direction) const](#public-int-domaine-ijk-get-offset-local-int-direction-const)
get_phase_from_signed_independent_index
int Domaine_IJK::get_phase_from_signed_independent_index(int signed_independent_index) const
How to cite in this doc:
:ref:`int Domaine_IJK::get_phase_from_signed_independent_index(int signed_independent_index) const <public-int-domaine-ijk-get-phase-from-signed-independent-index-int-signed-independent-index-const>`
[int Domaine_IJK::get_phase_from_signed_independent_index(int signed_independent_index) const](#public-int-domaine-ijk-get-phase-from-signed-independent-index-int-signed-independent-index-const)
get_processor_by_ijk
int Domaine_IJK::get_processor_by_ijk(const FixedVector< int, 3 > &slice) const

Return the global index of the processor according to its position.

Referenced By
How to cite in this doc:
:ref:`int Domaine_IJK::get_processor_by_ijk(const FixedVector< int, 3 > &slice) const <public-int-domaine-ijk-get-processor-by-ijk-const-fixedvector-int-3-ref-slice-const>`
[int Domaine_IJK::get_processor_by_ijk(const FixedVector< int, 3 > &slice) const](#public-int-domaine-ijk-get-processor-by-ijk-const-fixedvector-int-3-ref-slice-const)
get_processor_by_ijk
int Domaine_IJK::get_processor_by_ijk(int slice_i, int slice_j, int slice_k) const

Return the global index of the processor according to its position.

How to cite in this doc:
:ref:`int Domaine_IJK::get_processor_by_ijk(int slice_i, int slice_j, int slice_k) const <public-int-domaine-ijk-get-processor-by-ijk-int-slice-i-int-slice-j-int-slice-k-const>`
[int Domaine_IJK::get_processor_by_ijk(int slice_i, int slice_j, int slice_k) const](#public-int-domaine-ijk-get-processor-by-ijk-int-slice-i-int-slice-j-int-slice-k-const)
get_processor_mapping
void Domaine_IJK::get_processor_mapping(IntTab &mapping) const

Fills an array containing the mapping of processors.

For 3 slices indices i,j,k, the processor that owns the intersection of these slices is mapping(i,j,k).

Referenced By
How to cite in this doc:
:ref:`void Domaine_IJK::get_processor_mapping(IntTab &mapping) const <public-void-domaine-ijk-get-processor-mapping-inttab-ref-mapping-const>`
[void Domaine_IJK::get_processor_mapping(IntTab &mapping) const](#public-void-domaine-ijk-get-processor-mapping-inttab-ref-mapping-const)
get_signed_independent_index
int Domaine_IJK::get_signed_independent_index(int phase, int i, int j, int k) const

signed_independent_index: encodes in the sign the phase of the cell in a two - phase flow: positive sign for phase 0, and negative sign for phase 1. With a cut - cell method, this can be used to disambiguate the sub - cell.

References
How to cite in this doc:
:ref:`int Domaine_IJK::get_signed_independent_index(int phase, int i, int j, int k) const <public-int-domaine-ijk-get-signed-independent-index-int-phase-int-i-int-j-int-k-const>`
[int Domaine_IJK::get_signed_independent_index(int phase, int i, int j, int k) const](#public-int-domaine-ijk-get-signed-independent-index-int-phase-int-i-int-j-int-k-const)
get_slice_offsets
void Domaine_IJK::get_slice_offsets(int direction, ArrOfInt &tab) const

Returns the indices of the first cell in requested direction of every slices in this direction.

Referenced By
How to cite in this doc:
:ref:`void Domaine_IJK::get_slice_offsets(int direction, ArrOfInt &tab) const <public-void-domaine-ijk-get-slice-offsets-int-direction-arrofint-ref-tab-const>`
[void Domaine_IJK::get_slice_offsets(int direction, ArrOfInt &tab) const](#public-void-domaine-ijk-get-slice-offsets-int-direction-arrofint-ref-tab-const)
get_slice_size
void Domaine_IJK::get_slice_size(int direction, Localisation loc, ArrOfInt &tab) const

Returns the number of items of given location (elements, nodes, faces…) for all slices in the requested direction.

References
Referenced By
How to cite in this doc:
:ref:`void Domaine_IJK::get_slice_size(int direction, Localisation loc, ArrOfInt &tab) const <public-void-domaine-ijk-get-slice-size-int-direction-localisation-loc-arrofint-ref-tab-const>`
[void Domaine_IJK::get_slice_size(int direction, Localisation loc, ArrOfInt &tab) const](#public-void-domaine-ijk-get-slice-size-int-direction-localisation-loc-arrofint-ref-tab-const)
get_volume_elem
const DoubleVect & Domaine_IJK::get_volume_elem() const

Returns volume_elem_.

References
How to cite in this doc:
:ref:`const DoubleVect & Domaine_IJK::get_volume_elem() const <public-const-doublevect-ref-domaine-ijk-get-volume-elem-const>`
[const DoubleVect & Domaine_IJK::get_volume_elem() const](#public-const-doublevect-ref-domaine-ijk-get-volume-elem-const)
init_subregion
void Domaine_IJK::init_subregion(const Domaine_IJK &src, int ni, int nj, int nk, int offset_i, int offset_j, int offset_k, const Nom &subregion, bool perio_x=false, bool perio_y=false, bool perio_z=false)

Builds the geometry, parallel splitting and DOF correspondance between a “father” region and a “son” region which is a subpart of the father region.

Only conformal subregion is supported for now, with ELEMENT types. Missing features: be able to build a subregion which is the boundary of another, eg: father is “3D elements”, son is “2D faces”. Only conformal subregion is supported for now, with ELEMENT types. Missing features: be able to build a subregion which is the boundary of another, eg: father is “3D elements”, son is “2D faces”.

References
How to cite in this doc:
:ref:`void Domaine_IJK::init_subregion(const Domaine_IJK &src, int ni, int nj, int nk, int offset_i, int offset_j, int offset_k, const Nom &subregion, bool perio_x=false, bool perio_y=false, bool perio_z=false) <public-void-domaine-ijk-init-subregion-const-domaine-ijk-ref-src-int-ni-int-nj-int-nk-int-offset-i-int-offset-j-int-offset-k-const-nom-ref-subregion-bool-perio-x-equal-false-bool-perio-y-equal-false-bool-perio-z-equal-false>`
[void Domaine_IJK::init_subregion(const Domaine_IJK &src, int ni, int nj, int nk, int offset_i, int offset_j, int offset_k, const Nom &subregion, bool perio_x=false, bool perio_y=false, bool perio_z=false)](#public-void-domaine-ijk-init-subregion-const-domaine-ijk-ref-src-int-ni-int-nj-int-nk-int-offset-i-int-offset-j-int-offset-k-const-nom-ref-subregion-bool-perio-x-equal-false-bool-perio-y-equal-false-bool-perio-z-equal-false)
initialize_from_unstructured
void Domaine_IJK::initialize_from_unstructured(const Domaine &, int direction_for_x, int direction_for_y, int direction_for_z, bool perio_x, bool perio_y, bool perio_z)
References
Referenced By
How to cite in this doc:
:ref:`void Domaine_IJK::initialize_from_unstructured(const Domaine &, int direction_for_x, int direction_for_y, int direction_for_z, bool perio_x, bool perio_y, bool perio_z) <public-void-domaine-ijk-initialize-from-unstructured-const-domaine-ref-int-direction-for-x-int-direction-for-y-int-direction-for-z-bool-perio-x-bool-perio-y-bool-perio-z>`
[void Domaine_IJK::initialize_from_unstructured(const Domaine &, int direction_for_x, int direction_for_y, int direction_for_z, bool perio_x, bool perio_y, bool perio_z)](#public-void-domaine-ijk-initialize-from-unstructured-const-domaine-ref-int-direction-for-x-int-direction-for-y-int-direction-for-z-bool-perio-x-bool-perio-y-bool-perio-z)
initialize_mapping
void Domaine_IJK::initialize_mapping(Domaine_IJK &dom, const ArrOfInt &slice_size_i, const ArrOfInt &slice_size_j, const ArrOfInt &slice_size_k, const IntTab &processor_mapping)

Creates a splitting of the domain by specifying the slice sizes and the processor mapping.

The total cell number in directions i, j, and k must match the total number of cells in the whole geometry for each direction. The number of slices in each direction must match each corresponding dimensions of the mapping array. All processors do not have to be used! The total cell number in directions i, j, and k must match the total number of cells in the whole geometry for each direction. The number of slices in each direction must match each corresponding dimensions of the mapping array. All processors do not have to be used!

References
Referenced By
How to cite in this doc:
:ref:`void Domaine_IJK::initialize_mapping(Domaine_IJK &dom, const ArrOfInt &slice_size_i, const ArrOfInt &slice_size_j, const ArrOfInt &slice_size_k, const IntTab &processor_mapping) <public-void-domaine-ijk-initialize-mapping-domaine-ijk-ref-dom-const-arrofint-ref-slice-size-i-const-arrofint-ref-slice-size-j-const-arrofint-ref-slice-size-k-const-inttab-ref-processor-mapping>`
[void Domaine_IJK::initialize_mapping(Domaine_IJK &dom, const ArrOfInt &slice_size_i, const ArrOfInt &slice_size_j, const ArrOfInt &slice_size_k, const IntTab &processor_mapping)](#public-void-domaine-ijk-initialize-mapping-domaine-ijk-ref-dom-const-arrofint-ref-slice-size-i-const-arrofint-ref-slice-size-j-const-arrofint-ref-slice-size-k-const-inttab-ref-processor-mapping)
initialize_origin_deltas
void Domaine_IJK::initialize_origin_deltas(double x0, double y0, double z0, const ArrOfDouble &delta_x, const ArrOfDouble &delta_y, const ArrOfDouble &delta_z, bool perio_x, bool perio_y, bool perio_z)

Initializes class elements given dataset’s parameters.

References
Referenced By
How to cite in this doc:
:ref:`void Domaine_IJK::initialize_origin_deltas(double x0, double y0, double z0, const ArrOfDouble &delta_x, const ArrOfDouble &delta_y, const ArrOfDouble &delta_z, bool perio_x, bool perio_y, bool perio_z) <public-void-domaine-ijk-initialize-origin-deltas-double-x0-double-y0-double-z0-const-arrofdouble-ref-delta-x-const-arrofdouble-ref-delta-y-const-arrofdouble-ref-delta-z-bool-perio-x-bool-perio-y-bool-perio-z>`
[void Domaine_IJK::initialize_origin_deltas(double x0, double y0, double z0, const ArrOfDouble &delta_x, const ArrOfDouble &delta_y, const ArrOfDouble &delta_z, bool perio_x, bool perio_y, bool perio_z)](#public-void-domaine-ijk-initialize-origin-deltas-double-x0-double-y0-double-z0-const-arrofdouble-ref-delta-x-const-arrofdouble-ref-delta-y-const-arrofdouble-ref-delta-z-bool-perio-x-bool-perio-y-bool-perio-z)
initialize_splitting
void Domaine_IJK::initialize_splitting(Domaine_IJK &dom, int nproc_i, int nproc_j, int nproc_k, int process_grouping_i=1, int process_grouping_j=1, int process_grouping_k=1)

Buils a splitting of the given deometry on the requested number of processors in each direction.

Process_grouping allows to rearrange process ranks by packets of ni*nj*nk processes to matc the topology of the cluster/node. ex: 8 cores node/machine = > use groups of size 2x2x2 to minimize extra - node messages. Process_grouping allows to rearrange process ranks by packets of ni*nj*nk processes to matc the topology of the cluster/node. ex: 8 cores node/machine = > use groups of size 2x2x2 to minimize extra - node messages.

References
Referenced By
How to cite in this doc:
:ref:`void Domaine_IJK::initialize_splitting(Domaine_IJK &dom, int nproc_i, int nproc_j, int nproc_k, int process_grouping_i=1, int process_grouping_j=1, int process_grouping_k=1) <public-void-domaine-ijk-initialize-splitting-domaine-ijk-ref-dom-int-nproc-i-int-nproc-j-int-nproc-k-int-process-grouping-i-equal-1-int-process-grouping-j-equal-1-int-process-grouping-k-equal-1>`
[void Domaine_IJK::initialize_splitting(Domaine_IJK &dom, int nproc_i, int nproc_j, int nproc_k, int process_grouping_i=1, int process_grouping_j=1, int process_grouping_k=1)](#public-void-domaine-ijk-initialize-splitting-domaine-ijk-ref-dom-int-nproc-i-int-nproc-j-int-nproc-k-int-process-grouping-i-equal-1-int-process-grouping-j-equal-1-int-process-grouping-k-equal-1)
initialize_with_mapping
void Domaine_IJK::initialize_with_mapping(const ArrOfInt &slice_size_i, const ArrOfInt &slice_size_j, const ArrOfInt &slice_size_k, const IntTab &processor_mapping)

Creates a splitting of the domain by specifying the mapping.

The total cell number in directions i,j,k must match the total number of cells in each direction. The number of slices in direction i, j , k must match dimensions 0,1 and 2 of the processor_mapping() array.

References
How to cite in this doc:
:ref:`void Domaine_IJK::initialize_with_mapping(const ArrOfInt &slice_size_i, const ArrOfInt &slice_size_j, const ArrOfInt &slice_size_k, const IntTab &processor_mapping) <public-void-domaine-ijk-initialize-with-mapping-const-arrofint-ref-slice-size-i-const-arrofint-ref-slice-size-j-const-arrofint-ref-slice-size-k-const-inttab-ref-processor-mapping>`
[void Domaine_IJK::initialize_with_mapping(const ArrOfInt &slice_size_i, const ArrOfInt &slice_size_j, const ArrOfInt &slice_size_k, const IntTab &processor_mapping)](#public-void-domaine-ijk-initialize-with-mapping-const-arrofint-ref-slice-size-i-const-arrofint-ref-slice-size-j-const-arrofint-ref-slice-size-k-const-inttab-ref-processor-mapping)
is_uniform
bool Domaine_IJK::is_uniform(int direction) const

Method returns true if uniform in this direction.

Referenced By
How to cite in this doc:
:ref:`bool Domaine_IJK::is_uniform(int direction) const <public-bool-domaine-ijk-is-uniform-int-direction-const>`
[bool Domaine_IJK::is_uniform(int direction) const](#public-bool-domaine-ijk-is-uniform-int-direction-const)
periodic_get_processor_by_ijk
int Domaine_IJK::periodic_get_processor_by_ijk(int slice_i, int slice_j, int slice_k) const

Returns the processor associated with slice indices i,j,k accounting for periodicity e.g. a slice index - 1 can refer to the last slice along a periodic direction.

References
How to cite in this doc:
:ref:`int Domaine_IJK::periodic_get_processor_by_ijk(int slice_i, int slice_j, int slice_k) const <public-int-domaine-ijk-periodic-get-processor-by-ijk-int-slice-i-int-slice-j-int-slice-k-const>`
[int Domaine_IJK::periodic_get_processor_by_ijk(int slice_i, int slice_j, int slice_k) const](#public-int-domaine-ijk-periodic-get-processor-by-ijk-int-slice-i-int-slice-j-int-slice-k-const)
search_elem
void Domaine_IJK::search_elem(const double &x, const double &y, const double &z, FixedVector< int, 3 > &ijk_global, FixedVector< int, 3 > &ijk_local, FixedVector< int, 3 > &ijk_me) const

Find the element which contains the item’s coodirnates.

The element’s coordinates can be outside of this processor’s subdomain.

References
Referenced By
How to cite in this doc:
:ref:`void Domaine_IJK::search_elem(const double &x, const double &y, const double &z, FixedVector< int, 3 > &ijk_global, FixedVector< int, 3 > &ijk_local, FixedVector< int, 3 > &ijk_me) const <public-void-domaine-ijk-search-elem-const-double-ref-x-const-double-ref-y-const-double-ref-z-fixedvector-int-3-ref-ijk-global-fixedvector-int-3-ref-ijk-local-fixedvector-int-3-ref-ijk-me-const>`
[void Domaine_IJK::search_elem(const double &x, const double &y, const double &z, FixedVector< int, 3 > &ijk_global, FixedVector< int, 3 > &ijk_local, FixedVector< int, 3 > &ijk_me) const](#public-void-domaine-ijk-search-elem-const-double-ref-x-const-double-ref-y-const-double-ref-z-fixedvector-int-3-ref-ijk-global-fixedvector-int-3-ref-ijk-local-fixedvector-int-3-ref-ijk-me-const)
set_extension_from_bulle_param
void Domaine_IJK::set_extension_from_bulle_param(double vol_bulle, double diam_bulle)
References
Referenced By
How to cite in this doc:
:ref:`void Domaine_IJK::set_extension_from_bulle_param(double vol_bulle, double diam_bulle) <public-void-domaine-ijk-set-extension-from-bulle-param-double-vol-bulle-double-diam-bulle>`
[void Domaine_IJK::set_extension_from_bulle_param(double vol_bulle, double diam_bulle)](#public-void-domaine-ijk-set-extension-from-bulle-param-double-vol-bulle-double-diam-bulle)
taille_memoire
unsigned Domaine_IJK::taille_memoire() const override

Reimplements:

How to cite in this doc:
:ref:`unsigned Domaine_IJK::taille_memoire() const override <public-unsigned-domaine-ijk-taille-memoire-const-override>`
[unsigned Domaine_IJK::taille_memoire() const override](#public-unsigned-domaine-ijk-taille-memoire-const-override)
update_volume_elem
void Domaine_IJK::update_volume_elem()

Updates volume_elem_ / ! If the grid changes, this needs to be called again!

References
Referenced By
How to cite in this doc:
:ref:`void Domaine_IJK::update_volume_elem() <public-void-domaine-ijk-update-volume-elem>`
[void Domaine_IJK::update_volume_elem()](#public-void-domaine-ijk-update-volume-elem)
within_ghost
bool Domaine_IJK::within_ghost(int i, int j, int k, int negative_ghost_size, int positive_ghost_size) const

Check whether the cell (i,j,k) is contained within the specified ghost along any direction.

References
Referenced By
How to cite in this doc:
:ref:`bool Domaine_IJK::within_ghost(int i, int j, int k, int negative_ghost_size, int positive_ghost_size) const <public-bool-domaine-ijk-within-ghost-int-i-int-j-int-k-int-negative-ghost-size-int-positive-ghost-size-const>`
[bool Domaine_IJK::within_ghost(int i, int j, int k, int negative_ghost_size, int positive_ghost_size) const](#public-bool-domaine-ijk-within-ghost-int-i-int-j-int-k-int-negative-ghost-size-int-positive-ghost-size-const)
within_ghost_
bool Domaine_IJK::within_ghost_(int i, int j, int k, int negative_ghost_size, int positive_ghost_size) const
References
How to cite in this doc:
:ref:`bool Domaine_IJK::within_ghost_(int i, int j, int k, int negative_ghost_size, int positive_ghost_size) const <public-bool-domaine-ijk-within-ghost-underscore-int-i-int-j-int-k-int-negative-ghost-size-int-positive-ghost-size-const>`
[bool Domaine_IJK::within_ghost_(int i, int j, int k, int negative_ghost_size, int positive_ghost_size) const](#public-bool-domaine-ijk-within-ghost-underscore-int-i-int-j-int-k-int-negative-ghost-size-int-positive-ghost-size-const)
within_ghost_along_dir
bool Domaine_IJK::within_ghost_along_dir(int dir, int i, int j, int k, int negative_ghost_size, int positive_ghost_size) const

Check whether the cell (i,j,k) is contained within the specified ghost along a specific direction.

References
Referenced By
How to cite in this doc:
:ref:`bool Domaine_IJK::within_ghost_along_dir(int dir, int i, int j, int k, int negative_ghost_size, int positive_ghost_size) const <public-bool-domaine-ijk-within-ghost-along-dir-int-dir-int-i-int-j-int-k-int-negative-ghost-size-int-positive-ghost-size-const>`
[bool Domaine_IJK::within_ghost_along_dir(int dir, int i, int j, int k, int negative_ghost_size, int positive_ghost_size) const](#public-bool-domaine-ijk-within-ghost-along-dir-int-dir-int-i-int-j-int-k-int-negative-ghost-size-int-positive-ghost-size-const)
~Domaine_IJK
Domaine_IJK::~Domaine_IJK()
How to cite in this doc:
:ref:`Domaine_IJK::~Domaine_IJK() <public-domaine-ijk-dtor-domaine-ijk>`
[Domaine_IJK::~Domaine_IJK()](#public-domaine-ijk-dtor-domaine-ijk)
cree_instance
Objet_U * Domaine_IJK::cree_instance()
How to cite in this doc:
:ref:`Objet_U * Domaine_IJK::cree_instance() <public-static-objet-u-ptr-domaine-ijk-cree-instance>`
[Objet_U * Domaine_IJK::cree_instance()](#public-static-objet-u-ptr-domaine-ijk-cree-instance)
Faces_Dir_To_Localisation
static Localisation Domaine_IJK::Faces_Dir_To_Localisation(int direction)

Returns the face according to the direction.

References
How to cite in this doc:
:ref:`static Localisation Domaine_IJK::Faces_Dir_To_Localisation(int direction) <public-static-static-localisation-domaine-ijk-faces-dir-to-localisation-int-direction>`
[static Localisation Domaine_IJK::Faces_Dir_To_Localisation(int direction)](#public-static-static-localisation-domaine-ijk-faces-dir-to-localisation-int-direction)
info
const Type_info * Domaine_IJK::info()
How to cite in this doc:
:ref:`const Type_info * Domaine_IJK::info() <public-static-const-type-info-ptr-domaine-ijk-info>`
[const Type_info * Domaine_IJK::info()](#public-static-const-type-info-ptr-domaine-ijk-info)
self_cast
const Domaine_IJK & Domaine_IJK::self_cast(const Objet_U &)
How to cite in this doc:
:ref:`const Domaine_IJK & Domaine_IJK::self_cast(const Objet_U &) <public-static-const-domaine-ijk-ref-domaine-ijk-self-cast-const-objet-u-ref>`
[const Domaine_IJK & Domaine_IJK::self_cast(const Objet_U &)](#public-static-const-domaine-ijk-ref-domaine-ijk-self-cast-const-objet-u-ref)
self_cast
Domaine_IJK & Domaine_IJK::self_cast(Objet_U &)
How to cite in this doc:
:ref:`Domaine_IJK & Domaine_IJK::self_cast(Objet_U &) <public-static-domaine-ijk-ref-domaine-ijk-self-cast-objet-u-ref>`
[Domaine_IJK & Domaine_IJK::self_cast(Objet_U &)](#public-static-domaine-ijk-ref-domaine-ijk-self-cast-objet-u-ref)
printOn
Sortie & Domaine_IJK::printOn(Sortie &x) const override

Ecriture de l’objet sur un flot de sortie Methode a surcharger.

Reimplements:

How to cite in this doc:
:ref:`Sortie & Domaine_IJK::printOn(Sortie &x) const override <protected-sortie-ref-domaine-ijk-printon-sortie-ref-x-const-override>`
[Sortie & Domaine_IJK::printOn(Sortie &x) const override](#protected-sortie-ref-domaine-ijk-printon-sortie-ref-x-const-override)
readOn
Entree & Domaine_IJK::readOn(Entree &) override

Lecture d’un Objet_U sur un flot d’entree Methode a surcharger.

Reimplements:

References
How to cite in this doc:
:ref:`Entree & Domaine_IJK::readOn(Entree &) override <protected-entree-ref-domaine-ijk-readon-entree-ref-override>`
[Entree & Domaine_IJK::readOn(Entree &) override](#protected-entree-ref-domaine-ijk-readon-entree-ref-override)

Attributes Documentation#

info_obj (public)
const Type_info Domaine_IJK::info_obj
delta_xyz_ (private)
TRUST_Vector<ArrOfDouble> Domaine_IJK::delta_xyz_

Mesh cell sizes for the entire mesh.

The size of each array is equal to the total number of cells in each direction. If possible, this data is not computed from nodes (less truncation errors for uniform meshes)

ft_extension_ (private)
int Domaine_IJK::ft_extension_ = 0

Number of element used to extend the computational domain at each side of periodic boundary to accommodate for bubble evolution.

mapping_ (private)
IntTab Domaine_IJK::mapping_

Global processor mapping: for each subdomain, which processor has it (indexed like this: mapping_(i, j, k))

nb_elem_local_ (private)
FixedVector<int, 3> Domaine_IJK::nb_elem_local_

Number of element in requested direction. If the current processor has an empty subdomain, the number of elements, nodes, faces is zero.

nb_faces_local_ (private)
FixedVector<FixedVector<int, 3>, 3> Domaine_IJK::nb_faces_local_

indexing is nb_faces_local_[for orientation i][number of faces in direction j]

nb_nodes_local_ (private)
FixedVector<int, 3> Domaine_IJK::nb_nodes_local_

Number of nodes in requested direction. If the current processor has an empty subdomain, the number of elements, nodes, faces is zero.

neighbour_processors_ (private)
FixedVector<FixedVector<int, 3>, 2> Domaine_IJK::neighbour_processors_

MPI ranks of the processors that hold the neighbour domains. Indexing is neighbour_processors_[previous = 0, next = 1][direction]. Contains - 1 if no neighbour. Wraps if periodic domain, if there is only one processor in a direction, the neighbour might be myself.

node_coordinates_xyz_ (private)
TRUST_Vector<ArrOfDouble> Domaine_IJK::node_coordinates_xyz_

Coordinates of all nodes (when cell size is needed, take delta_xyz_ which is more accurate) in directions i, j and k.

We have: node_coordinates_xyz_.size() = = 3 (3 directions in space) node_coordinates_xyz_[DIRECTION_I/J/K] = = number of cells in direction i,j,k plus one The coordinate of the last node is the end coordinate of the mesh: if mesh is periodic, the last node coordinate is not equal to the first one.

nproc_per_direction_ (private)
FixedVector<int, 3> Domaine_IJK::nproc_per_direction_

Number of processors in each direction

offset_ (private)
FixedVector<int, 3> Domaine_IJK::offset_

Index in the global mesh of the first (non ghost) element on this processor, in each direction

offsets_all_slices_ (private)
TRUST_Vector<ArrOfInt> Domaine_IJK::offsets_all_slices_

For each direction, offsets of all slices

periodic_ (private)
bool Domaine_IJK::periodic_[3]

Stores the periodic flag for each direction.

processor_position_ (private)
FixedVector<int, 3> Domaine_IJK::processor_position_

Where is this processor in the global domain (slice number in each direction, - 1 if processor has no data)

sizes_all_slices_ (private)
TRUST_Vector<ArrOfInt> Domaine_IJK::sizes_all_slices_

For each direction, size of all slices.

uniform_ (private)
bool Domaine_IJK::uniform_[3]

Stores the uniform flag for each direction.

volume_elem_ (private)
DoubleVect Domaine_IJK::volume_elem_

Volume of each element on this processor

volume_elem_status_ (private)
grid_status Domaine_IJK::volume_elem_status_

State of volume_elem_ on this processor

Enums#

Domaine_IJK::grid_status#

Location: trust-code/src/Kernel/IJK/Framework/Domaine_IJK.h:57

How to cite in this doc:

:ref:`Domaine\_IJK::grid\_status <enum-none-domaine-ijk-grid-status>`
[Domaine\_IJK::grid\_status](#enum-none-domaine-ijk-grid-status)
  • DEFAULT

  • INITIALIZED

  • DONE

Domaine_IJK::Localisation#

Location: trust-code/src/Kernel/IJK/Framework/Domaine_IJK.h:53

How to cite in this doc:

:ref:`Domaine\_IJK::Localisation <enum-none-domaine-ijk-localisation>`
[Domaine\_IJK::Localisation](#enum-none-domaine-ijk-localisation)
  • ELEM

  • NODES

  • FACES_I

  • FACES_J

  • FACES_K