8 #include "SM_Constants.h"
11 #include "functions_array.h"
14 #include "SM_CrystalStructure.h"
80 std::array<tReal,SM_Constants::DIM> mD;
93 std::valarray<tReal> mU;
100 CORE_UniquePointer<SM_CrystalStructure> mCrystalStructure;
116 std::array<tReal,SM_Constants::DIM> mCD;
173 mem+=mU.size()*
sizeof(tReal);
174 mem+=mCD.size()*
sizeof(tReal);
175 mem+=mD.size()*
sizeof(tReal);
184 inline static CORE_UniquePointer<SM_Material>
New() {
193 mCrystalStructure=std::move(cStructure);
199 return *mCrystalStructure.get();
205 return *mCrystalStructure.get();
211 return (mCrystalStructure.get()!=
null);
256 mCrystalType=crystalType;
283 const tReal *iU=U.data();
295 for(
const auto& Uk:U) {
411 virtual tString
toString()
const override;
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:113
virtual tMemSize getContentsMemorySize() const
return nthe memory size of the included associations
Definition: CORE_Object.h:278
This class decribe a crystal structure.
Definition: SM_CrystalStructure.h:30
This class describes a materials defined by state attributes:
Definition: SM_Material.h:61
virtual ~SM_Material(void)
destroy
Definition: SM_Material.cpp:40
const tReal & getExchangeEnergyFactor() const
get the exchange energy
Definition: SM_Material.h:316
const tReal & getSpinWaveMFCorrection() const
get the spin wave MF correction
Definition: SM_Material.h:340
const std::valarray< tReal > & getAnisotropyDirections() const
get the anisotropy directions
Definition: SM_Material.h:303
void setName(const tString &name)
set the name of the material
Definition: SM_Material.h:220
static CORE_UniquePointer< SM_Material > New()
build a new instance of a Grid3D
Definition: SM_Material.h:184
void setAnisotropyDirections(const std::array< tReal, SM_Constants::DIM *SM_Constants::DIM > &U)
set the anisotropy directions
Definition: SM_Material.h:281
void setAnisotropyDirections(const std::vector< tReal > &U)
set the anisotropy directions
Definition: SM_Material.h:292
const tReal & getCharacteristicField() const
get the characteristic field in T
Definition: SM_Material.h:367
virtual tString toString() const override
turn the class into a string representation
Definition: SM_Material.cpp:138
SM_Material(void)
create a materialclass
Definition: SM_Material.cpp:3
const tReal & getAtomicSpinMoment() const
get the atomic spin moment in unit of Bohr magneton
Definition: SM_Material.h:242
const tReal & getAdimensionizedDerivativeEnergyFactor() const
get the characteristic dipolar energy factor
Definition: SM_Material.h:401
void setExchangeEnergyFactor(const tReal &J)
set the exchange energy
Definition: SM_Material.h:310
const SM_CrystalStructure & getCrystalStructure() const
get the crystal structure
Definition: SM_Material.h:198
const tReal & getAnisotropyEnergyFactor() const
get the anisotropy energy
Definition: SM_Material.h:274
const std::array< tReal, SM_Constants::DIM > & getAdimensionizedDMIEnergyFactor() const
get the characteristic DMI energy factor
Definition: SM_Material.h:382
void setSpinWaveMFCorrection(const tReal &eps)
set the spin wave MF correction
Definition: SM_Material.h:335
const tString & getName() const
get the name of the material
Definition: SM_Material.h:226
void setAtomicSpinMoment(const tReal &mu_s)
set the atomic spin moment in unit of Bohr magneton
Definition: SM_Material.h:236
const tReal & getCharacteristicTime() const
get the characteristic time in s
Definition: SM_Material.h:355
const tReal & getCharacteristicEnergy() const
get the characteristic energy in J
Definition: SM_Material.h:361
const tReal & getAdimensionizedDipolarEnergyFactor() const
get the characteristic dipolar energy factor
Definition: SM_Material.h:395
virtual tMemSize getContentsMemorySize() const
return the memory size of the included associations
Definition: SM_Material.h:171
void setAnisotropyType(const tFlag &crystalType)
set anisotropy type
Definition: SM_Material.h:255
const std::array< tReal, SM_Constants::DIM > & getDMIEnergyFactor() const
get the DMI energy
Definition: SM_Material.h:329
tBoolean hasCrystalStructure() const
return true if the material has a crystal structure
Definition: SM_Material.h:210
void setDMIEnergyFactor(const std::array< tReal, SM_Constants::DIM > &D)
set the DMI energy
Definition: SM_Material.h:323
const tReal & getAdimensionizedExchangeEnergyFactor() const
get the characteristic exchange energy factor
Definition: SM_Material.h:375
void computeCharacteristicValues(const tBoolean &isAdimensionized)
compute the characteristic values
Definition: SM_Material.cpp:43
virtual tMemSize getMemorySize() const
return the memory size of the class and the memory size of all its attributes/associations
Definition: SM_Material.h:159
const tFlag & getAnisotropyType() const
get anisotropy type
Definition: SM_Material.h:261
void setAnisotropyEnergyFactor(const tReal &k)
set the anisotropy energy
Definition: SM_Material.h:268
const tReal & getAdimensionizedAnisotropyEnergyFactor() const
get the characteristic anisotropy energy factor
Definition: SM_Material.h:389
SM_CrystalStructure & getCrystalStructure()
get the crystal structure
Definition: SM_Material.h:204
void setCrystalStructure(CORE_UniquePointer< SM_CrystalStructure > cStructure)
set the crystal structure
Definition: SM_Material.h:192
const tReal & getAtomicSpinMoment_SIU() const
get the atomic moment in international sytem unit : J.T^{-1}
Definition: SM_Material.h:248
This class is a base class for Stoch Microm package.
Definition: SM_Object.h:36