C++ mpi module for stochmagnet_main Package
SM_CrystalStructuresGridBuilder.h
1 #ifndef SM_CrystalStructuresGridBuilder_H
2 #define SM_CrystalStructuresGridBuilder_H
3 
4 //super class header
5 #include "SM_NetworkGridBuilder.h"
6 
7 
8 //crystal structure header
9 #include "SM_CrystalStructuresBuilder.h"
10 
18 
19  //attributes
20 private :
23 
24 
25  CORE_UniquePointer<SM_CrystalStructuresBuilder> mCSBuilder;
26 
27 protected:
28 
29  // CONSTRUCTORS
33 
34 
35 
36  }
37 
38  // DESTRUCTORS
42  }
43 
44 public :
45 
46  //Instance building
47  //=================
48 
49 
50 
51 
52  //MEMORY
53 
67  virtual tMemSize getMemorySize() const {
68  return sizeof(*this)+getContentsMemorySize();
69  }
70 
79  virtual tMemSize getContentsMemorySize() const {
80  tMemSize mem=SuperClass::getContentsMemorySize();
81 
82  return mem;
83  }
84 
85  //SET & GET methods
86 
89  inline void setCrystalStructuresBuilder(CORE_UniquePointer<SM_CrystalStructuresBuilder> builder) {
90  mCSBuilder=std::move(builder);
91  }
95 
99  return *mCSBuilder.get();
100  }
101 
102  //buidler grid methods
103  //=================
104 
111  virtual tBoolean buildDomainNetwork(const SM_CrystalStructure& cStructure,
112  const std::array<tBoolean,SM_Constants::DIM>& isPeriodic,
113  const tString& domainExpression,
114  SM_Network& network) final;
115 };
116 
117 #endif
This class decribe a crystal structure.
Definition: SM_CrystalStructure.h:30
This class is an interface class for method for building a grid of crystal structure.
Definition: SM_CrystalStructuresBuilder.h:17
This class build a grid of structure.
Definition: SM_CrystalStructuresGridBuilder.h:17
void setCrystalStructuresBuilder(CORE_UniquePointer< SM_CrystalStructuresBuilder > builder)
set the crystal structures builder
Definition: SM_CrystalStructuresGridBuilder.h:89
virtual ~SM_CrystalStructuresGridBuilder(void)
destroy
Definition: SM_CrystalStructuresGridBuilder.h:41
const SM_CrystalStructuresBuilder & getCrystalStructuresBuilder() const
set the crystal structures builder
Definition: SM_CrystalStructuresGridBuilder.h:98
virtual tMemSize getMemorySize() const
return the memory size of the class and the memory size of all its attributes/associations
Definition: SM_CrystalStructuresGridBuilder.h:67
virtual tMemSize getContentsMemorySize() const
return the memory size of the included associations
Definition: SM_CrystalStructuresGridBuilder.h:79
virtual tBoolean buildDomainNetwork(const SM_CrystalStructure &cStructure, const std::array< tBoolean, SM_Constants::DIM > &isPeriodic, const tString &domainExpression, SM_Network &network) final
build the network from domain expression
Definition: SM_CrystalStructuresGridBuilder.cpp:25
SM_CrystalStructuresGridBuilder(void)
create a network class
Definition: SM_CrystalStructuresGridBuilder.h:32
This class build a network from unit cells defined on grid.
Definition: SM_NetworkGridBuilder.h:21
virtual tMemSize getContentsMemorySize() const
return the memory size of the included associations
Definition: SM_NetworkGridBuilder.h:117
This class is describes a network composed by.
Definition: SM_Network.h:66