--help
option for an overview of command line arguments.
An overview of all arguments is given in the table below.
> DAMASK_spectral --help
comand line argument | Meaning |
---|---|
--geom / -g / --geometry |
Specifies the location of the geometry definition file |
--load / -l / --loadcase |
Specifies the location of the load case definition file |
--workingdir / -w / --wd / --workingdirectory |
Specifies the working directory |
--restart / -r / --rs XX |
Reads in total increment No. XX and continues to calculate total increment No. XX+1 Appends to existing results file |
--help / -h |
Prints help message and exits |
> DAMASK_spectral --geom PathToGeomFile/NameOfGeomFile.geom --load PathToLoadFile/FileNameOfLoad.load
--workingdir
can be used to specify another working directory:
> DAMASK_spectral --geom PathToGeomFile/NameOfGeomFile.geom --load PathToLoadFile/NameOfLoadFile.load --workingdir PathToWorkingDir
> DAMASK_spectral --geom PathToGeomFile/NameOfGeomFile.geom --load PathToLoadFile/NameOfLoadFile.loadthe solver job name will be NameOfGeomFile_NameOfLoadFile.* and placed in PathToGeomFile. All output files, i.e. result files, restart information and DAMASK files.
Spectral solver variant | ||||
---|---|---|---|---|
keyword | default value | meaning | ||
spectralsolver | basic | type of spectral solver | ||
basic | basic scheme (direct variational with single field) | |||
Polarisation | Polarisation (mixed variational with dual fields) | |||
Convergence criteria | ||||
keyword | default value | meaning | ||
err_stress_tolrel | 0.001 | relative tolerance for fulfillment of stress BC | ||
err_stress_tolabs | 1000.0 | absolute tolerance for fulfillment of stress BC | ||
err_div_tolAbs | 1.0e-10 | absolute tolerance for equilibrium | ||
err_div_tolRel | 5.0e-4 | relative tolerance for equilibrium | ||
divergence_correction | 2 | scaling of divergence calculation | ||
0 | no correction | |||
1 | dimension correction | |||
2 | dimension and resolution correction | |||
tolerances for polarisation | ||||
err_curl_tolAbs | 1.0e-10 | absolute tolerance for compatibility | ||
err_curl_tolRel | 5.0e-4 | relative tolerance for compatibility | ||
FFTW | ||||
keyword | default value | meaning | ||
fftw_timelimit | -1.0 | time limit for plan creation for FFTW. -1.0 disables time limit | ||
fftw_plan_mode | FFTW_PATIENT | reads the planning-rigor flag, see manual on www.fftw.org | ||
Iteration controlling | ||||
keyword | default value | meaning | ||
itmax | 250 | maximum iteration number | ||
itmin | 2 | minimum iteration number | ||
maxCutBack | 3 | maximum cutback level | ||
continueCalculation | 0 | if spectral solver doesn't converge | ||
0 | exit | |||
1 | continue | |||
Miscellaneous | ||||
keyword | default value | meaning | ||
memory_efficient | 1 | precalculate Gamma-operator (requires 81 floating point values per FP) | ||
update_gamma | 0 | update Gamma-operator with current tangent stiffness | ||
rotation_tol | 1.0e-12 | tolerance of rotation specified in load case | ||
(spectral | my)filter | none | type of filtering method to mitigate Gibbs phenomenon | ||
none | no filter | |||
cosine | cosine decay | |||
petsc_options | -snes_type ngmres -snes_ngmres_anderson |
PETSc solver options see manual on www.mcs.anl.gov/petsc |
bash> export DAMASK_NUM_THREADS=4 ; echo $DAMASK_NUM_THREADS csh> setenv DAMASK_NUM_THREADS 4 ; echo $DAMASK_NUM_THREADS
for using four cores.
> mpiexec -np 4 DAMASK_spectral --load loadcase --geom geometry > mpirun -np 4 DAMASK_spectral --load loadcase --geom geometry
SolverJobName.F | field of current deformation gradients |
SolverJobName.F_lastInc | field of previous deformation gradients |
SolverJobName.F_aimDot | average deformation rate |
SolverJobName.C | current stiffness matrix |
SolverJobName.C_lastInc | previous stiffness matrix |
SolverJobName.C_ref | reference stiffness matrix |
SolverJobName.F_lambda | field of current Lagrange multipliers |
SolverJobName.F_lambda_lastInc | field of previous Lagrange multipliers |
Additionally, the files needed by DAMASK for restart are required
To restart an simulation aborted after increment XX-1, tell the spectral solver to start with calculation at step XX> DAMASK_spectral --geom PathToGeomFile/NameOfGeomFile.geom --load PathToLoadFile/NameOfLoadFile.load --workingdir PathToWorkingDir --restart XXThe output results will be appended to SolverJobName.spectralOut, if results where written to that file after writing the restart information, they will appear double. It works only if the restart information for total increment No. XX-1 and the usual configuration files are available in the working directory. Please Note: The solver cannot determine to which increment the restart information belongs. It is highly recommended to backup the output file (*.spectralOut) before restarting the calculation.
> cd $DAMASK_ROOT/examples/SpectralMethod/PolycrystalInvoke the spectral solver to run a tensile test in x-direction on the low-resolution example
> DAMASK_spectral --load tensionX.load --geom 20grains16x16x16.geom
> postResults --cr f,p --split --separation x,y,z 20grains16x16x16_tensionX.spectralOutswitch to the output directory postProc and check the header information of the last increment (100). It should contain 9 values for F and P plus geometric information.
> cd postProc > viewTable -a 20grains16x16x16_tensionX_inc100.txt
> addCauchy 20grains16x16x16_tensionX_inc100.txt > addMises -s Cauchy 20grains16x16x16_tensionX_inc100.txt > viewTable -a 20grains16x16x16_tensionX_inc100.txtAdd a logarithmic strain and its scalar equivalent:
> addStrainTensors --left --logarithmic 20grains16x16x16_tensionX_inc100.txt > addMises -e 'ln(V)' 20grains16x16x16_tensionX_inc100.txt > viewTable -a 20grains16x16x16_tensionX_inc100.txt
> vtk_rectilinearGrid 20grains16x16x16_tensionX_inc100.txt > vtk_addRectilinearGridData \ --data 'Mises(Cauchy)',1_p,'1_ln(V)',1_Cauchy \ --vtk '20grains16x16x16_tensionX_inc100_pos(cell).vtr' \ 20grains16x16x16_tensionX_inc100.txtOpen the file 20grains16x16x16_tensionX_inc100_pos(cell).vtr in ParaView. To view a time series showing the evolution of the quantities, repeat the last two steps for all files in postProc using the scripting facilities of your shell.
> addDisplacement --nodal 20grains16x16x16_tensionX_inc100.txtThis will create a new file as the displacements will be interpolated to the nodes of the voxels (due to the --nodal option) resulting in a grid of 17x17x17. Now, add the data to the VTK file.
vtk_addRectilinearGridData \ --data 'fluct(f).pos','avg(f).pos' \ --vtk '20grains16x16x16_tensionX_inc100_pos(cell).vtr' \ 20grains16x16x16_tensionX_inc100_nodal.txtReopen the file 20grains16x16x16_tensionX_inc100_pos(cell).vtr in ParaView. Choose Filters > Common > Warp By Vector from the menu and select first "avg(f).pos". Select the new entry in the pipeline to visualize the uniformly deformed geometry. Similarly, choose Filters > Common > Warp By Vector from the menu and select first "fluct(f).pos" to also see the fluctuations resulting from the solution of static mechanical equilibrium.