|
C++ mpi module for stochmagnet_main Package
|
This class is describes a macro cell network. More...
#include <SM_MacroCellsNetwork.h>


Public Member Functions | |
| virtual tMemSize | getMemorySize () const |
| return the memory size of the class and the memory size of all its attributes/associations More... | |
| virtual tMemSize | getContentsMemorySize () const |
| return the memory size of the included associations More... | |
| virtual CORE_UniquePointer< SM_MacroCellsNetwork > | newInstance () const =0 |
| create a New instance of this More... | |
| void | setMacroCellMargin (const tReal &w) |
| set margin More... | |
| const tReal & | getMacroCellMargin () const |
| get margin More... | |
| void | setMacroCellSize (const std::array< tReal, SM_Constants::DIM > &H) |
| set the macro cell size in angstrom More... | |
| void | setMacroCellSize (const std::vector< tReal > &H) |
| set the macro cell size in angstrom More... | |
| const std::array< tReal, SM_Constants::DIM > & | getMacroCellSize () const |
| get the macro cell size | |
| void | setMacroCellsNumber (const tInteger &n) |
| set the number of macro cells | |
| const tInteger & | getMacroCellsNumber () const |
| get the number of macro cells | |
| const SM_RealField & | getMacroCellsMassCenter () const |
| get the mass center of the macro cells for reading | |
| SM_RealField & | getMacroCellsMassCenter () |
| get the mass center of the macro cells for writing | |
| const std::valarray< tInteger > & | getMacroCellsList () const |
| get the index of macro cell containing each particle p | |
| std::valarray< tInteger > & | getMacroCellsList () |
| get the index of macro cell containing each particle p | |
| const std::valarray< tReal > & | getMacroCellsVolume () const |
| get volume of macro cells in Angstrom | |
| std::valarray< tReal > & | getMacroCellsVolume () |
| get volume of macro cells in Angstrom | |
| const tReal & | getMacroCellVolume (const tInteger &m) const |
| get volume of macro cell at index m in Angstrom More... | |
| const tInteger & | getMacroCellIndex (const tInteger &p) const |
| get the local index of the macro cell containing particle p More... | |
| virtual void | computeMacroCells (const SM_Material &material, const SM_Network &network) |
| compute the macro cells of the network More... | |
| virtual void | computeMacroCellsMassCenter (const SM_Material &material, const SM_Network &network) |
| compute the macro cells of the network More... | |
| virtual tString | toString () const override |
| return string representaton of the operator | |
Public Member Functions inherited from SM_Object | |
| SM_Object (void) | |
| create | |
| virtual | ~SM_Object (void) |
| destroy | |
Public Member Functions inherited from CORE_Object | |
| template<class T > | |
| std::shared_ptr< T > | getSharedPointer () |
| return the shared pointer for this More... | |
| template<class T > | |
| std::shared_ptr< const T > | getConstSharedPointer () const |
| return a const shared pointer for this More... | |
| template<class T > | |
| tBoolean | isInstanceOf () const |
| test if the clas T is an instance of this class More... | |
| tString | getClassName () const |
| return the name of the class More... | |
| tString | getPointerString () const |
| retrun the pointer of the class as a string More... | |
| tString | getIdentityString () const |
| retrun the string identification of the class More... | |
Protected Member Functions | |
| SM_MacroCellsNetwork (void) | |
| create a network class | |
| virtual | ~SM_MacroCellsNetwork (void) |
| destroy | |
| virtual void | computeBoundingBoxMacroCells (const SM_Material &material, const SM_Network &network, const std::array< tReal, SM_Constants::DIM > &P, const std::array< tReal, SM_Constants::DIM > &Q) |
| compute the macro cells of the network More... | |
Protected Member Functions inherited from CORE_Object | |
| CORE_Object () | |
| build an instance of the object | |
| virtual | ~CORE_Object () |
| destroy the instance of object std | |
Static Protected Member Functions | |
| static tInteger | ComputeMacroCells (const SM_Material &material, const SM_Network &network, const std::array< tReal, SM_Constants::DIM > &P, const std::array< tReal, SM_Constants::DIM > &Q, const std::array< tReal, SM_Constants::DIM > ¯oCellSize, const tReal &margin, const tReal &epsVW, std::valarray< tReal > &MCsVolume, std::valarray< tInteger > ¯oCellsList) |
| compute the macro cells points and magnetization More... | |
| static void | EliminateEmptyMacroCells (const tReal &epsVM, std::valarray< tReal > &gMCVolume, std::valarray< tReal > &lMCVolume, std::valarray< tInteger > &gMCLocalIndices) |
| eliminate empty macro cells form lists More... | |
| static void | BuildParticlesListOrderedPerMacroCells (const SM_Network &network, const tInteger &nMacroCells, const std::valarray< tInteger > ¯oCellsPList, std::valarray< tInteger > &particlesMCList, std::valarray< tInteger > &particlesMCListOffset) |
| build the particles list for all not empty macro cells More... | |
| static void | ConvertIndices (const std::valarray< tInteger > &indicesConverter, std::valarray< tInteger > &indicesList) |
| convert indices More... | |
| static void | ConvertIndices (const std::valarray< tInteger > &indicesConverter, const tInteger &n, tInteger *iIndicesList) |
| convert indices More... | |
| static void | ComputeMacroCellX (const tInteger &nParticles, const tReal *iX, const tInteger *iMacroCellsList, SM_RealField &C, std::valarray< tInteger > &nMCParticles) |
| compute the sum of coordinantes of the particles in each macro cell More... | |
| static void | MeanX (const tInteger &n, const tInteger *iNs, tReal *iX) |
| compute the macro cells points and magnetization More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from CORE_Object | |
| static tBoolean | EnableMemoryStack (const tBoolean &isMemoryChecked) |
| enable the memory stack More... | |
| static void | EnableMemoryStack () |
| enable the memory stack | |
| static void | DisableMemoryStack () |
| disable the memory stack | |
| static tBoolean | IsMemoryStackEnabled () |
| return trur if the memory stack is enabled | |
| static tString | MemoryStackToString () |
| get the memory stack in string More... | |
| static tIndex | GetRegisteredClassesNumber () |
| get the memory stack in string More... | |
This class is describes a macro cell network.
|
staticprotected |
build the particles list for all not empty macro cells
| [in] | network | network pof particles |
| [in] | nMacroCells | number of not empty macro cells |
| [in] | macroCellsPList | index of macro cell for each particle |
| [out] | particlesMCList | particles in a list ordred per macro cells |
| [out] | particlesMCListOffset | : index of the first particle of each macro cell within the particlesMCList list |
|
protectedvirtual |
compute the macro cells of the network
| [in] | material | :material data |
| [in] | network | : network of the macro cells |
| [in] | P | min point of the box to compute macro cells |
| [in] | Q | max point of the box to compute macro cells |
It computes the none empty macro cells list
Reimplemented in SMOMPI_OneMasterMacroCellsNetwork, and SMOMPI_AllMasterMacroCellsNetwork.
|
inlinevirtual |
compute the macro cells of the network
| [in] | material | :material data |
| [in] | network | : network of the macro cells |
Reimplemented in SMOMPI_OneMasterMacroCellsNetwork, SMOMPI_NoMasterMacroCellsNetwork, and SMOMPI_AllMasterMacroCellsNetwork.
|
staticprotected |
compute the macro cells points and magnetization
| [in] | material | :material data |
| [in] | network | : network of the particle |
| [in] | P | min point of the bouding box |
| [in] | Q | max point of the bouding box |
| [in] | macroCellSize | size of the macro cells in Angstrom |
| [in] | margin | margin to shift the macro cells grid |
| [in] | epsVW | : minimum volume under which the macro cell is supposed to be empty |
| [out] | MCsVolume | : volume of each macro cells expressed in Angstrom whith global indices \( MCsVolume[mc]=V_a.card{p | p \in mc}, V_a \) is the atomic volume |
| [out] | macroCellsList | list of macro cells for each particles |
|
virtual |
compute the macro cells of the network
| [in] | material | :material data |
| [in] | network | : network of the macro cells |
Reimplemented in SMOMPI_OneMasterMacroCellsNetwork, and SMOMPI_AllMasterMacroCellsNetwork.
|
staticprotected |
compute the sum of coordinantes of the particles in each macro cell
| [in] | nParticles | number of particles |
| [in] | iX | values of coordinates of the nParticles |
| [in] | iMacroCellsList | : index of macro cell per each particle |
| [out] | C | : sum of the coodrinate of p within each macro cell |
| [out] | nMCParticles | number of particles in each macro cell |
|
inlinestaticprotected |
convert indices
| [in] | indicesConverter | : converter map from set E into set F |
| [in] | n | : size of the list |
| [in,out] | iIndicesList | : begin iterator on list of indices into E in input, list of indices into F in input |
|
inlinestaticprotected |
convert indices
| [in] | indicesConverter | : converter map from set E into set F |
| [in,out] | indicesList | : list of indices into E in input, list of indices into F in input |
|
staticprotected |
eliminate empty macro cells form lists
| [in] | epsVM | : minimum volume under which the macro cell is supposed to be empty |
| [in,out] | gMCVolume | : volume of each macro cell with global indice |
| [out] | lMCVolume | : volume of each macro cell with local indice within not empty macro cells |
| [out] | gMCLocalIndices | map betwrn global indices of macro cell in the bouinding box grid to local index of macro cell within not empty macro cells list |
|
inlinevirtual |
return the memory size of the included associations
Reimplemented from CORE_Object.
Reimplemented in SMOMPI_OneMasterMacroCellsNetwork, SMOMPI_NoMasterMacroCellsNetwork, and SMOMPI_AllMasterMacroCellsNetwork.
|
inline |
get the local index of the macro cell containing particle p
| [in] | p | : index of the particle |
|
inline |
get margin
|
inline |
get volume of macro cell at index m in Angstrom
| [in] | m | : idex of the macro cell |
|
inlinevirtual |
return the memory size of the class and the memory size of all its attributes/associations
Reimplemented from SM_Object.
Reimplemented in SMOMPI_OneMasterMacroCellsNetwork, SMOMPI_NoMasterMacroCellsNetwork, and SMOMPI_AllMasterMacroCellsNetwork.
|
inlinestaticprotected |
compute the macro cells points and magnetization
| [in] | n | number of elements |
| [in] | iNs | number of samples per element |
| [in,out] | iX | IN: sum of samples values OUT : mean of samples values |
|
pure virtual |
create a New instance of this
Implemented in SMOMPI_OneMasterMacroCellsNetwork, SMOMPI_NoMasterMacroCellsNetwork, and SMOMPI_AllMasterMacroCellsNetwork.
|
inline |
set margin
| [in] | w | : margin to increase the bounding box to be sure the bounding box of the domain is inside the bouding box of the macro cells |
|
inline |
set the macro cell size in angstrom
| [in] | H | : size of the macro cell in angstrom |
|
inline |
set the macro cell size in angstrom
| [in] | H | : size of the macro cell in angstrom |