The program is launch as follow:
emicrom_main.exe [options] [cmd] [args]
Version:VERSION
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
make arguments:
==============
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
Options:
========
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:limit condition for displacement field in (DIRICHLET,NEUMANN)
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-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)
Examples:
=========
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