Settings
********

The Settings class provides a general-purpose data container for
various kinds of information that need to be stored and processed by
the pyZacros and PLAMS environment. It is formally identical that the
Settings class in PLAMS. Please, see all details here PLAMS.Settings.

For our example (see use case system), the following lines create the
conditions we need for our calculation like e.g., the temperature (500
K) and pressure (1.0 atm.):

   # Settings:
   sett = pz.Settings()
   sett.random_seed = 953129
   sett.temperature = 500.0
   sett.pressure = 1.0
   sett.snapshots = ('time', 0.1)
   sett.process_statistics = ('time', 0.1)
   sett.species_numbers = ('time', 0.1)
   sett.event_report = 'off'
   sett.max_steps = 'infinity'
   sett.max_time = 1.0

   sett.molar_fraction.CO = 0.45
   sett.molar_fraction.O2 = 0.55

   print(sett)

As in the other pyZacros objects, the function "print()" (see line 16)
shows the Settings object as it is going to be used in the Zacros
input files. The previous lines produce the following output:

   random_seed         953129
   temperature          500.0
   pressure               1.0

   snapshots                 on time       0.1
   process_statistics        on time       0.1
   species_numbers           on time       0.1
   event_report      off
   max_steps         infinity
   max_time          1.0

Notice that the CO and O_2 molar fractions (keywords
"sett.molar_fraction.CO" and "sett.molar_fraction.O2") are not printed
out in the previous configuration block. This is because information
about species involved in the mechanism and clusters is needed to
generate the corresponding block in the "simulation_input.dat" zacros
file. This information is going to print out from the ZacrosJob
object. Please consult Zacros' user guide
("$AMSHOME/scripting/scm/pyzacros/doc/ZacrosManual.pdf") for more
details about the specific meaning of the keywords used above.


API
===

class Settings(*args, **kwargs)

   Automatic multi-level dictionary. Subclass of the PLAMS class
   scm.plams.Settings. This dictionary can contain any kind of
   information stored in key-value pairs. Be aware that no check of
   the rightness of the key/values is done at this level. This object
   is used just as a container. The verification of the physical
   meaning of the key-value pairs is done at the ZacrosJob class. The
   following is an example of use adapted to zacros:

      sett = Settings()
      sett.random_seed = 953129
      sett.temperature = 500.0
      sett.pressure = 1.0
      sett.snapshots = ('time', 0.1)
      sett.process_statistics = ('time', 0.1)
      sett.species_numbers = ('time', 0.1)
      sett.event_report = 'off'
      sett.max_steps = 'infinity'
      sett.max_time = 1.0
