qimpy.dft.System

class System(*, lattice=None, ions=None, symmetries=None, electrons=None, grid=None, coulomb=None, geometry=None, export=None, checkpoint=None, checkpoint_out=None, comm=None, process_grid_shape=None)

Bases: TreeNode

Overall system to calculate within QimPy

Parameters:
__init__(*, lattice=None, ions=None, symmetries=None, electrons=None, grid=None, coulomb=None, geometry=None, export=None, checkpoint=None, checkpoint_out=None, comm=None, process_grid_shape=None)

Compose a System to calculate from its pieces. Each piece could be provided as an object or a dictionary of parameters suitable for initializing that object.

Parameters:
  • lattice (Lattice | dict | None) – [Input file] Lattice vectors / unit cell definition.

  • ions (Ions | dict | None) – [Input file] Ionic positions and pseudopotentials.

  • symmetries (Symmetries | dict | None) – [Input file] Point and space group symmetries.

  • electrons (Electrons | dict | None) – [Input file] Electronic sub-system.

  • grid (Grid | dict | None) – [Input file] Charge-density grid.

  • coulomb (Coulomb | dict | None) – [Input file] Coulomb interactions.

  • geometry (Geometry | dict | str | None) – [Input file] Geometry actions such as relaxation and dynamics. Specify name of geometry action eg. ‘relax’ if using default options for that action, and if not, specify an explicit dictionary of parameters.

  • export (Export | dict | None) – [Input file] Export data for other codes.

  • checkpoint (str | None) – [Input file] Checkpoint file to read at start-up.

  • checkpoint_out (str | None) – [Input file] Checkpoint file to write. Defaults to checkpoint if unspecified.

  • comm (Comm | None) – Overall communicator for system. Defaults to qimpy.rc.comm if unspecified.

  • process_grid_shape (Sequence[int] | None) – Parallelization dimensions over replicas, k-points and bands/basis, used to initialize a qimpy.mpi.ProcessGrid. Dimensions that are -1 will be auto-determined based on number of tasks available to split along them. Default: all process grid dimensions are auto-determined.

Methods

__init__

Compose a System to calculate from its pieces.

add_child

Construct child object self.`attr_name` of type cls.

add_child_one_of

Invoke add_child on one of several child options in args.

geometry_grad

Update geometric gradients i.e. forces and optionally, stresses.

run

Run any actions specified in the input.

save_checkpoint

Save self and all children in hierarchy to cp_path.

Attributes

lattice

Lattice vectors / unit cell definition

ions

Ionic positions and pseudopotentials

symmetries

Point and space group symmetries

electrons

Electronic sub-system

grid

Charge-density grid

coulomb

Coulomb interactions on charge-density grid

geometry

Geometry actions, e.g., relaxation / dynamics

export

Exporters to interface with other codes

energy

Energy components

checkpoint_in

Input checkpoint

checkpoint_out

Filename for output checkpoint

process_grid

Process grid for parallelization

child_names

Names of attributes with child objects.

variant_name

Version of children having variants (if any)

geometry_grad()

Update geometric gradients i.e. forces and optionally, stresses.

Return type:

None

run()

Run any actions specified in the input.

Return type:

None

checkpoint_in: CheckpointPath

Input checkpoint

checkpoint_out: str | None

Filename for output checkpoint

coulomb: Coulomb

Coulomb interactions on charge-density grid

electrons: Electrons

Electronic sub-system

energy: Energy

Energy components

export: Export

Exporters to interface with other codes

geometry: Geometry

Geometry actions, e.g., relaxation / dynamics

grid: Grid

Charge-density grid

ions: Ions

Ionic positions and pseudopotentials

lattice: Lattice

Lattice vectors / unit cell definition

process_grid: ProcessGrid

Process grid for parallelization

symmetries: Symmetries

Point and space group symmetries