/*! @file
@brief Description of the NLCC pseudopotentiel egneration for the oxygen atom

@dir ./pseudo/tests/tutorials
@brief Contains the tutorials about the pseudo and atom programs

@dir
@brief
Some Instructions for fitting of pseudo potentials with Nonlinear Core Corrections

@details
- Take a closer look at the input file "atom.dat". It gives two configurations, one in closed shell, one is polarized.
- Run the program "atom". It will write out some files, that include all needed input files for pseudo.
- Existing Input files for pseudo, such as "weights.par" and "psppar" are not overwritten. atom just appends some lines.
- Take a look at "input.dat". Verify that the keyword "-fit" is not present, as we want to run pseudo without fitting first.
- Run "pseudo" in serial to test for the accuracy of the GTH fit in closed shell (deviations to all electron data in "atom.00.ae")
- Compare the output with "GTH.closedshell.out.ref" in the ref subdirectory - it should be identical.
- Note: The accuracies are relatively poor here because we have a weaker confinement (larger rprb) than the one used for the fit.
- Run "pseudo" in parallel using two MPI processes. One process will treat the system from "atom.00.ae", the other one "atom.01.ae"
- The output file should hold the same output for eigenvalues, charges, etc. as it did in serial.
- The file "process.01.out" gives the corresponding output for configuration "atom.01.ae".
- You can compare the accuracies in "process.01.ae" with "GTH.polarized.out.ref".


- Add the keyword -fit to the file "input.dat". The keyword -maxiter 100 is used to keep the fits short. See input.dat.short.fit
- Run "pseudo" with two MPI processes
- The output should behave in a similar way as "fit.withoutNLCC.out.ref" (with deviations from random seeds ...)
- The file "fit.withoutNLCC.proc.01.ref" corresponds to process.01.out.
- The file "psppar.inputNLCC" contains the result of "fit.withoutNLCC.out.ref" AND some input guess for the NLCC
- The NLCC coefficients here have been obtained using gnuplot - the pseudopotential does not match them yet!
- Either replace your "psppar" with "psppar.inputNLCC" or edit your file to add the same NLCC parameters
- Do another fit - notice the initial inaccuracy and how the polarization energy improves quickly
- Again, you can compare your results with a reference, "fit.short.NLCC.out.ref" 
- The resulting psppar and nlcc files to compare are given as psppar.NLCC.short.ref and nlcc.short.ref
- Since we made only few iterations, these files are not useful yet.


- For simplicity, the file FITPAR contained nothing but the keyword for automatic assignment.
- In practice, some parameters from psppar should be freed, while other parameters preferrably remain constant.
- For example, it makes sense to first fit psppar at constant NLCC, and thereafter allow the core charge to change.
- Remove the file FITPAR and rerun pseudo. Pseudo will print a message with hints about the file FITPAR. 
- Now take a look at FITPAR.custom. It frees all params from the GTH file, but contains no NLCC keywords.
- Replace your psppar with psppar.input.NLCC and remove nlcc to start another fit with NLCC.
- This time, use the custom FITPAR and remove the -maxiter flag from input.dat.
- Compare your result with fit.fixed.NLCC.out.ref.
- Then add the auto keyword to FITPAR and run another fitting cycle.

- Notice how the polarized configuration and polarization energy improves.
- The corresponding results are given in fit.free.NLCC.proc.01.ref, psppar.ref and nlcc.ref 

*/
