C++ main module for emicrom Package  1.0
E-MicroM main page

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).

Execution of the program

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

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: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

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