5 #include "CORE_Options.h"
63 static inline CORE_UniquePointer<SM_Options>
New() {
64 return CORE_UniquePointer<SM_Options>(
new SM_Options(),
83 tString tab=
"\n\t\t\t";
86 options.
setManOption(
"beam",
"simulations-number",
"number of simulations");
87 options.
setManOption(
"beam",
"beam",
" beam in {'laudau-lifschitz', 'monte-carlo'}");
92 options.
setManOption(
"stochastic",
"seed",
"seed of the random number generator at the begining of the beam simulations running. If negative seed is set to times(null)");
93 options.
setManOption(
"stochastic",
"random-distribution",
"random distribution function in {'','boost','std','trng','mt'}");
94 options.
setManOption(
"stochastic",
"random-generator",
"random number generator in {'','mt19937','lcg64','yarn2','mrg2','mrg3','mrg4','mrg5','mrg3s','mrg5s'}");
97 options.
setManOption(
"material",
"material-name",
"name of the material");
98 options.
setManOption(
"material",
"mu_s",
"Atomic magnetic moment (x Mu_B ) Mu_B=9.2740e−24");
99 options.
setManOption(
"material",
"J",
"exhange energy factor J/link)");
100 options.
setManOption(
"material",
"D",
"DMI energy factor in RxRxR in J/link)");
101 options.
setManOption(
"material",
"MF-correction",
"spin wave MF correction)");
102 options.
setManOption(
"material",
"Ku",
"anisotropy energy factor (J/atom)");
103 options.
setManOption(
"material",
"U",
"anisotropy directions ");
104 options.
setManOption(
"material",
"crystal-type",
"anisotropy type in {uniaxial,planar,cubic} ");
105 options.
setManOption(
"material",
"adimensionize",
"true to adimensionize");
109 options.
setManOption(
"crystal structure",
"crystal-structure",
"bame of the structure in {bcc,fcc,line,grid2d,cgrid2d,grid3d,cgrid3d}");
110 options.
setManOption(
"crystal structure",
"crystal-cell-size",
"[Hx,Hy,Hz] cell size in unit Angstroms of the structure");
115 options.
setManOption(
"network",
"network-file",
"absolute/data path relative name of the network file ");
116 options.
setManOption(
"network",
"network-size",
"[Nx,Ny,Nz] size of the network");
117 options.
setManOption(
"network",
"network-periodicity",
"[Tx,Ty,Tz] periodicity on periodic cells");
118 options.
setManOption(
"network",
"network-domain",
"domain definition of the network file");;
121 options.
setManOption(
"system",
"S0",
"initial direction of magnetic moment in file or vector [S0.x,S0.y,S0.z]");
122 options.
setManOption(
"system",
"is-S-saved",
"true to save the S at end of simulations");
123 options.
setManOption(
"system",
"preconditioning-steps-number",
"number of steps for the system to reach the equilibrium");
124 options.
setManOption(
"system",
"steps-number",
"number of steps for the system after the equilibrium is reached");
128 options.
setManOption(
"operator",
"use-zeeman",
"true to use zeeman operator");
130 options.
setManOption(
"operator",
"use-exchange",
"true to use exchange operator");
132 options.
setManOption(
"operator",
"use-dmi",
"true to use DMI operator");
135 options.
setManOption(
"operator",
"use-dipolar",
"true to use dipolar operator");
136 options.
setManOption(
"operator",
"use-macro-cell-dipolar",
"true to use macro cell dipolar operator instead of dipolar operator");
139 options.
setManOption(
"operator",
"use-anisotropy",
"true to use anisotropy operator");
142 options.
setManOption(
"operator/zeeman",
"Hext",
"external field in Tesla (T)");
145 options.
setManOption(
"operator/macroCellDipolar",
"macro-cell-demagnetized-type",
"in {'as-external','continuous'}");
146 options.
setManOption(
"operator/macroCellDipolar",
"macro-cell-demagnetized-updating-steps-number",
"steps number for updating demagnetized field");
147 options.
setManOption(
"operator/macroCellDipolar",
"macro-cell-size",
"size of the macro cell in Angstrom ");
148 options.
setManOption(
"operator/macroCellDipolar",
"macro-cell-margin",
"margin to build the macro cells in Angstrom");
149 options.
setManOption(
"operator/macroCellDipolar",
"macro-cell-matrix",
"type of storage of the matrix={'packed-storage','','no-storage'}");
150 options.
setManOption(
"operator/macroCellDipolar",
"macro-cell-core-type",
"type of core for macro cell computing in {'','master-<id>','all-master','no-master'}");
153 options.
setManOption(
"noise",
"temperature",
"temperature in Kelvin");
156 options.
setManOption(
"noise",
"stochastic-noise",
"the stochastic noise");
160 std::stringstream drawnsMan;
161 drawnsMan<<
"number of steps to make a drawn for computing stochastic data"<<
"\n";
162 drawnsMan<<
"\t\t\t 0: stochastic output is not called for each loop's stepper \n";
163 drawnsMan<<
"\t\t\t s: stochastic output is called each s loop's steppers \n";
164 drawnsMan<<
"\t\t\t the stochastic output is called at";
165 drawnsMan<<
"\t\t\t\t - begining & ending of the beam simulations running \n";
166 drawnsMan<<
"\t\t\t\t - begining & ending of one simulation of the beam \n";
167 options.
setManOption(
"stochastic-output",
"stochastic-drawn-steps-number",drawnsMan.str());
168 options.
setManOption(
"stochastic-output",
"stochastic-outputs",
"stochastic outputs list in {'trajectory','xdmf'}");
173 options.
setManOption(
"runner",
"is-templated-run",
"true to run the templated run method for beam");
176 options.
setManOption(
"cycle",
"is-step-cycle-seed-updated",
"true|false to update seed at each step of cycle");
177 options.
setManOption(
"cycle",
"is-cycle-restoring",
"true to restore the cycle");
178 options.
setManOption(
"cycle",
"is-stochastic-output-saved-at-each-cycle-step",
"true to save stochastic output at each cyle step");
180 options.
setManOption(
"cycle",
"hysteresis-Hext-range",
"hext ranges [Hext_0,Hext_1,nHexts] Hext_i a 3D vector in Tesla");
181 options.
setManOption(
"cycle",
"hysteresis-backups-number",
"number of backups");
182 options.
setManOption(
"cycle",
"hysteresis-backup-steps-number",
"number of cycle steps between 2 backups");
183 options.
setManOption(
"cycle",
"hysteresis-are-critical-points-saved",
"true to save spin directions at critical points");
184 options.
setManOption(
"cycle",
"temperature-range",
"temperature ranges [T_0,T_1,DT] in Kelvin");
185 options.
setManOption(
"cycle",
"stochastic-range",
"stochastic range for J");
186 options.
setManOption(
"cycle",
"time-step-range",
"log of time step in ps ranges [dt_0,dt_1,ddt]");
191 v<<
"[\"xdmf\",\"trajectory\"] \n";
192 v<<
"\t xdmf: save in an xdmf file at any time the direction of magnetic moments for epsilon=stochastic-noise-rate and simulation=stochastic-simulations \n";
193 v<<
"\t trajectory: save in a text fiml at any time the direction of magnetic moments at stochastic-particles for epsilon=stochastic-noise-rate and simulation=stochastic-simulations \n";
195 options.
setManOption(
"stochastic-output",
"stochastic-outputs",v.str());
196 options.
setManOption(
"stochastic-output",
"stochastic-simulations",
"simulation array indices to save trajectories in txt/xdmf files ");
197 options.
setManOption(
"stochastic-output",
"stochastic-particles",
"particles array indices to save trajectories in txt files");
198 options.
setManOption(
"stochastic-output",
"stochastic-JFunction",
"JFunctionName in {increase,decrease,cubic-decrease}");
264 options.
setOptionValue(
"macro-cell-demagnetized-type",
"external");
265 options.
setOptionValue(
"macro-cell-demagnetized-updating-steps-number",10);
281 options.
setOptionValue(
"is-stochastic-output-saved-at-each-cycle-step",
true);
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 is an list of options.
Definition: CORE_OptionsList.h:36
void setOptionValue(const tString &optName, const tBoolean &value)
set option
Definition: CORE_OptionsList.h:194
void setManOption(const tString &category, const tString &optName, const tString &man)
set man option
Definition: CORE_OptionsList.h:187
This class is the options of the runner.
Definition: CORE_Options.h:21
virtual void initManOptions(CORE_OptionsList &options) const
init the man of the options
Definition: CORE_Options.h:83
virtual void initOptions(CORE_OptionsList &options) const
default initialization of the options
Definition: CORE_Options.h:123
This class is the options of the package.
Definition: SM_Options.h:14
virtual void initManOptions(CORE_OptionsList &options) const override
init the man of the options
Definition: SM_Options.h:79
SM_Options(void)
create class instance
Definition: SM_Options.h:25
virtual ~SM_Options(void)
destroy class instance
Definition: SM_Options.h:31
virtual void initOptions(CORE_OptionsList &options) const override
default initialization of the options
Definition: SM_Options.h:205
static CORE_UniquePointer< SM_Options > New()
return a new unique pointer of this
Definition: SM_Options.h:63
virtual tMemSize getMemorySize() const override
return the memory size of the class and the memory size of all its attributes/associations
Definition: SM_Options.h:52