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