|
C++ main module for emicrom Package
1.0
|
E-MicroM sofwtare compute equilibrium magnetism state or hysteresis cycles for landau lifschitz system (see Execution of the program)
Some test cases are explained in the examples section (see Examples).
The installation code instructions are given in the installation section (see Installation)
The modules of the libraries are:

The purpose of the program is explained in the Core Package for E-MicroM
The version releases are explained in the releases section (see Releases)
The future developpement are forseen in the to do section (see To Do)
The protection of the software is explained in the legal section (see Legal).
for any help run the command: exe/emicrom_main.exe make help :
emicrom_main.exe [options] [cmd] [args] Version:0.20 options={–optionName=optionValue} cmd= [ make | save | help ] args= when cmd=make, args= [help | type | tests | validation | run | performance ] when cmd=save, args= the name of the file to save the options when cmd=help, args="empty" to print this help
help: to print the man type: to print the used types of the code tests: to run the tests performance: to run the performance tests validation: to validate the code run: to run the code
args:
args:name of the file of the arguments
backup:
backup-step:the step to generate backup files
backups-number:the max number of backups per relaxation
restore:{true|false} to restore from backup files
debug:
check-memory:{true|false} print the object not destroyed at exit
eps:admissive error for code validation
file-computed:computation file for code validation
file-validated:validated file for code validation
profiling:{true|false} print the time spent into each methods
reference-path:the path to store reference file for code validation
domain:
anisotropy:file to indicate the anisotropy directions. The format of the file is: {#,!} are comment lines
N (number of cells)
1 (mesh type cubic)
1 (0 or "false" if uniform, 1 or "true" otherwise)
crystalType (0,1,2) ignored.
Ux Uy Uz Vx Vy Vz Wx Wy Wz: anisotropy directions of the matter in each cell. 9 values per line
matters:file to indicate the property of the matter. The format of the file is: {'--',} are comment lines. All the line must contains a ! explaining the variable value.
I NAME (I: index of the material NAME: name of the material)
Ms ! magnetization at saturation
A ! exchange value
crystal ! anisotropy type 0:uniaxial 1:planar 2: cubic
K1 ! main anisotropy constant
K2 ! secund anisotropy constant
alpha ! absorption parameter
Ux Uy Uz Vx Vy Vz Wx Wy Wz ! anisotropy directions
Lij ! magnetostriction elastic tensor of size 9x9
Mij ! magnetostriction magnetic tensor of size 9x9
matters-location:file to indicate the matter associated to the cell. The format of the file is:
N (number of cells)
1 (mesh type cubic)
1 (0 or "false" if uniform, 1 or "true" otherwise)
crystalType (0,1,2) ignored.
i: index of the matter (-1 if no matter). One value per line.
mesh:file to indicate the neighbors of each cell. The format of the file is:
N
P
Nx
Ny
Nz
dx dy dz
b.. one value per line
N: is the number of magnetized elements
P: is the number of elements
Nx,Ny,Nz is the number of segments in each direction
dx dy dz is the length of the cell in each direction
b: is the value of neighbor for each cell in 7 bits : b=IzZyYxX
I={0 if the cell in magnetized,0 otherwise}
X={1 if the cell has a neighbor in the direction x, 0 otherwise}
x={1 if the cell has a neighbor in the direction -x, 0 otherwise}...
periodicity:periodicity of the mesh. vector of size 3 ie.[true,false,true]
hysteresis:
hysteresis-H0:the first value of the external magnetic field (a vector [Hx,Hy,Hz] or a file)
hysteresis-H1:the last value of the external magnetic field (a vector [Hx,Hy,Hz] or a file)
hysteresis-Hext:the external magnetic field at each step in a file)
hysteresis-file:the hysteresis file to read/write from the output-path
hysteresis-flow-size:size of the flow for wrinting the hysteresis file
hysteresis-ncycles:the number of cycles
hysteresis-nsteps:the number of step between [H0,H1]
hysteresis-restore:true to restore an old hysteresis file
hysteresis-vtksteps:the steps number for vtk generation (0: no vtk files generated
io:
data-path:the path to read the data
output-path:the path to generate files
prefix:the default prefix for reading/writing file
log:
log:{no,screen,file,string,all} outut for message
log-file:the name of the log file
log-file-mode:{create|append} create or append to a new file for log printing
verbose:{error,warning,comment,all} type of message to print
operators:
displacement:adimensionized displacement field defined on points
displacement-limit-condition:the dirichlet limit condition at each points (true|false| text file)
displacement-method:method for displacement fields computing in (FDM,FEM)
exchange:{full|minimal} to indicates the type of storage for exchange operator
h-ext:values of the external magnetic excitation in a file or in the form [Bx,By,Bz]. The file format is
N
D
x y z
N: the number of points
D: the dimension of the field
x,y,z : the value of the field at each coordinates for all points. 3 values per line.
multiscale:name of the multi scale grid in (RP,SDX,SDXL,"")
nlevels:number of levels in case of periodicity domain for the demagnetized operator. -1 if the level is automatically computed.
solver-iterations-number:max number of iterations in [0,N[ for the iterative linear system solver method. 0:automaically set the the rows number of the matrix denoted by N
solver-tolerance:convergence criterium in [0,1.e-6[ for the iterative linear system solver
toeplitz:{GP|LP|LC|LT} to indicates the type of Toeplitz Matrix vector product for demagnetized operator:
GP: global dense storage with vector product based on polynomial product
LP: local packed storage with vector product based on polynomial product
LC: local packed storage with vector product based on circular matrix product
LT: local packed storage with vector product based on multi-levels tensor circular matrix product
use-anisotropy:{true|false} to indicates if the anisotropy operator is used
use-demagnetized:{true|false} to indicates if the demagnetized operator is used
use-exchange:{true|false} to indicates if the exchange operator is used
use-magnetostriction:{true|false} to indicates if the magnetostriction operator is used
use-zeeman:{true|false} to indicates if the zeeman operator is used
velocity:adimensionized velocity field defined on points
system:
m-init:initial values of the magnetic moment in a field or in the form [Mx,My,Mz]. The file format is
N
D
x y z
N: the number of points
D: the dimension of the field
x,y,z : the value of the field at each coordinates for all points. 3 values per line.
relaxation:the type of relaxation in {te,gl,ggl}:
- te : for using the taylor expansion of order 2 of the landau lischitz function,
- gl : for using the 4 order Gauss-Lagrange integration of the landau lishitz function
- ggl : for using the 4 order Gauss-Lagrange integration of the landau lishitz function and the computing of its grad function.
relaxation-rate:the min value for variation of energy among time to detect relaxation
threads-number:the number of threads to compute relaxation with openmp module
test:
test:type of test to run in {primary|elementary|case|all}
time:
time:{regular|optimal|golden|quadratic|gradient} the type of time step computation
time-evaluations:the max number of evaluations for finding the best dt
time-factor:the multiply factor for time step computing
time-initial-type:{regular|linear} the initial type when time evolution is considered as regular or as linear H
time-order:the order of time function evaluation
time-steps:the number of the time steps
time-target:end time step
time-zoom-in:the multiply factor for the min time step (<0.1)
time-zoom-out:the multiply factor for time step increasing (>1)
vtk:
is-vtk32bit-enabled:set if the 32 bit is enabled in VTK file
emicrom_main.exe make test : run the tests emicrom_main.exe make run : run the program with command line options emicrom_main.exe –help : print this help
1.8.13