Configuration
-------------

Input data is validated against a Pydantic model, in the `NbedConfig` class. This is then passed to the `NbedDriver`.

Example Configuration File
==========================

For the command-line interface to Nbed, you'll need to provide a path to a config file. This should contain a Json dictionary of input values.

.. code-block:: json

   {
   "geometry":"1\\n\\nH\\t0.0\\t0.0\\t0.0",
   "n_active_atoms":1,
   "basis":"sto-3g",
   "xc_functional":"b3lyp",
   "projector":"mu",
   "localization":"spade",
   "convergence":1e-6,
   "charge":0,
   "spin":0,
   "unit":"angstrom",
   "symmetry":false,
   "mu_level_shift":1000000.0,
   "run_ccsd_emb":false,
   "run_fci_emb":false,
   "run_virtual_localization":true,
   "run_dft_in_dft":false,
   "n_mo_overwrite":[null,null],
   "max_ram_memory":4000,
   "occupied_threshold":0.95,
   "virtual_threshold":0.95,
   "max_shells":4,
   "init_huzinaga_rhf_with_mu":false,
   "max_hf_cycles":50,
   "max_dft_cycles":50,
   "force_unrestricted":false,
   "mm_coords":null,
   "mm_charges":null,
   "mm_radii":null
   }

Config Model
============

.. automodule:: nbed.config
   :members:
   :undoc-members:
   :show-inheritance:
