qimpy.dft.System

class System(*, lattice, ions=None, symmetries=None, electrons=None, grid=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
  • lattice (Lattice) –

  • ions (Ions) –

  • symmetries (Symmetries) –

  • electrons (Electrons) –

  • grid (Grid) –

  • geometry (Geometry) –

  • export (Export) –

  • checkpoint (Optional[str]) –

  • checkpoint_out (Optional[str]) –

  • comm (Optional[Comm]) –

  • process_grid_shape (Optional[Sequence[int]]) –

__init__(*, lattice, ions=None, symmetries=None, electrons=None, grid=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 (Union[Lattice, dict]) – [Input file] Lattice vectors / unit cell definition.

  • ions (Optional[Union[Ions, dict]]) – [Input file] Ionic positions and pseudopotentials.

  • symmetries (Optional[Union[Symmetries, dict]]) – [Input file] Point and space group symmetries.

  • electrons (Optional[Union[Electrons, dict]]) – [Input file] Electronic sub-system.

  • grid (Optional[Union[Grid, dict]]) – [Input file] Charge-density grid.

  • geometry (Optional[Union[Geometry, dict, str]]) – [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 (Optional[Union[Export, dict]]) – [Input file] Export data for other codes.

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

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

  • comm (Optional[Comm]) – Overall communicator for system. Defaults to qimpy.rc.comm if unspecified.

  • process_grid_shape (Optional[Sequence[int]]) – 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

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: Optional[str]

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