Source code for scm.input_classes.drivers.densf

from __future__ import annotations
from pathlib import Path
from typing import Iterable, Literal, Sequence
from scm.pisa.block import DriverBlock,EngineBlock,FixedBlock,FreeBlock,InputBlock
from scm.pisa.key import BoolKey,FloatKey,FloatListKey,IntKey,IntListKey,MultipleChoiceKey,PathStringKey,StringKey,BoolType

[docs]class DENSF(DriverBlock): r""" :ivar ADFFile: Path to the TAPE21 file from which densf reads the input data :vartype ADFFile: str | StringKey :ivar AOResponse: :vartype AOResponse: str | StringKey :ivar COSMO: :vartype COSMO: BoolType | BoolKey :ivar Convert: :vartype Convert: BoolType | BoolKey :ivar CubInput: If the CubInput keyword is present then the grid as specified in the file is used to calculate all requested quantities. Any volume data found in the cube file is also saved in the output file. NOTE: CUBINPUT option cannot be used with a pre-existing TAPE41 file because they both specify the grid, which may lead to a conflict. :vartype CubInput: str | StringKey :ivar CubOutput: Presence of the CubOutput keyword tells densf to save all computed quantities as cube files using file as filename prefix. The prefix can also contain a complete path including directories. For example, specifying the following in the densf input :vartype CubOutput: str | StringKey :ivar DEBUGRISM: :vartype DEBUGRISM: BoolType | BoolKey :ivar DenGrad: :vartype DenGrad: str | StringKey :ivar DenHess: :vartype DenHess: str | StringKey :ivar Density: :vartype Density: str | StringKey :ivar DualDescriptor: :vartype DualDescriptor: BoolType | BoolKey :ivar Extend: Extend grid? :vartype Extend: float | FloatKey :ivar FOD: :vartype FOD: BoolType | BoolKey :ivar InputFile: Path to the TAPE21 file from which densf reads the input data :vartype InputFile: str | StringKey :ivar KinDens: :vartype KinDens: str | StringKey :ivar Laplacian: :vartype Laplacian: str | StringKey :ivar NCI: :vartype NCI: str | StringKey :ivar NEBImage: :vartype NEBImage: int | IntKey :ivar OutputFile: Path to the (possibly existing) TAPE41 file. If the file exists, densf will read grid specifications from it ignoring GRID keyword in the input. Computed quantities are saved in the file overwriting existing data with the same name, if any :vartype OutputFile: str | StringKey :ivar POLTDDFT: Frequency point for transition density :vartype POLTDDFT: int | IntKey :ivar Potential: :vartype Potential: str | StringKey :ivar QP: :vartype QP: BoolType | BoolKey :ivar RISM: :vartype RISM: BoolType | BoolKey :ivar Ridge: :vartype Ridge: BoolType | BoolKey :ivar SEDD: :vartype SEDD: BoolType | BoolKey :ivar TAPE16File: Path to the TAPE16 file from which densf reads the input data :vartype TAPE16File: str | StringKey :ivar VTKFile: Specifies path to a file in the format readable by VTK directly. This option exists primarily for better integration with AMS-GUI and the user should not specify it. :vartype VTKFile: str | StringKey :ivar GenFit: :vartype GenFit: str | Sequence[str] | FreeBlock :ivar Grid: :vartype Grid: str | Sequence[str] | FreeBlock :ivar IrrepDensity: Select particular symmetry to compute the electron density for. :vartype IrrepDensity: str | Sequence[str] | FreeBlock :ivar Line: :vartype Line: str | Sequence[str] | FreeBlock :ivar NOCV: :vartype NOCV: str | Sequence[str] | FreeBlock :ivar Orbitals: :vartype Orbitals: str | Sequence[str] | FreeBlock :ivar Spinor: :vartype Spinor: str | Sequence[str] | FreeBlock :ivar StericInteraction: :vartype StericInteraction: str | Sequence[str] | FreeBlock :ivar TransitionDensity: Select particular excitations to calculate the transition density for. Format: SS|ST SymLabel Index :vartype TransitionDensity: str | Sequence[str] | FreeBlock :ivar Units: Definitions of the units. :vartype Units: DENSF._Units """
[docs] class _GenFit(FreeBlock): r""" """ def __post_init__(self): pass
[docs] class _Grid(FreeBlock): r""" """ def __post_init__(self): pass
[docs] class _IrrepDensity(FreeBlock): r""" Select particular symmetry to compute the electron density for. """ def __post_init__(self): pass
[docs] class _Line(FreeBlock): r""" """ def __post_init__(self): pass
[docs] class _NOCV(FreeBlock): r""" """ def __post_init__(self): pass
[docs] class _Orbitals(FreeBlock): r""" """ def __post_init__(self): pass
[docs] class _Spinor(FreeBlock): r""" """ def __post_init__(self): pass
[docs] class _StericInteraction(FreeBlock): r""" """ def __post_init__(self): pass
[docs] class _TransitionDensity(FreeBlock): r""" Select particular excitations to calculate the transition density for. Format: SS|ST SymLabel Index """ def __post_init__(self): pass
[docs] class _Units(FixedBlock): r""" Definitions of the units. :ivar length: Units of length :vartype length: Literal["bohr", "angstrom"] """ def __post_init__(self): self.length: Literal["bohr", "angstrom"] = MultipleChoiceKey(name='length', comment='Units of length', default='angstrom', choices=['bohr', 'angstrom'])
def __post_init__(self): self.ADFFile: str | StringKey = StringKey(name='ADFFile', comment='Path to the TAPE21 file from which densf reads the input data', default='TAPE21') self.AOResponse: str | StringKey = StringKey(name='AOResponse') self.COSMO: BoolType | BoolKey = BoolKey(name='COSMO', default=False) self.Convert: BoolType | BoolKey = BoolKey(name='Convert', default=False) self.CubInput: str | StringKey = StringKey(name='CubInput', comment='If the CubInput keyword is present then the grid as specified in the file is used to calculate all requested quantities. Any volume data found in the cube file is also saved in the output file. NOTE: CUBINPUT option cannot be used with a pre-existing TAPE41 file because they both specify the grid, which may lead to a conflict.') self.CubOutput: str | StringKey = StringKey(name='CubOutput', comment='Presence of the CubOutput keyword tells densf to save all computed quantities as cube files using file as filename prefix. The prefix can also contain a complete path including directories. For example, specifying the following in the densf input') self.DEBUGRISM: BoolType | BoolKey = BoolKey(name='DEBUGRISM', hidden=True, default=False) self.DenGrad: str | StringKey = StringKey(name='DenGrad', unique=False) self.DenHess: str | StringKey = StringKey(name='DenHess', unique=False) self.Density: str | StringKey = StringKey(name='Density', unique=False) self.DualDescriptor: BoolType | BoolKey = BoolKey(name='DualDescriptor', default=False) self.Extend: float | FloatKey = FloatKey(name='Extend', comment='Extend grid?') self.FOD: BoolType | BoolKey = BoolKey(name='FOD', default=False) self.InputFile: str | StringKey = StringKey(name='InputFile', comment='Path to the TAPE21 file from which densf reads the input data', hidden=True, default='TAPE21') self.KinDens: str | StringKey = StringKey(name='KinDens', unique=False) self.Laplacian: str | StringKey = StringKey(name='Laplacian', unique=False) self.NCI: str | StringKey = StringKey(name='NCI') self.NEBImage: int | IntKey = IntKey(name='NEBImage') self.OutputFile: str | StringKey = StringKey(name='OutputFile', comment='Path to the (possibly existing) TAPE41 file. If the file exists, densf will read grid specifications from it ignoring GRID keyword in the input. Computed quantities are saved in the file overwriting existing data with the same name, if any', default='TAPE41') self.POLTDDFT: int | IntKey = IntKey(name='POLTDDFT', comment='Frequency point for transition density', default=0) self.Potential: str | StringKey = StringKey(name='Potential', unique=False) self.QP: BoolType | BoolKey = BoolKey(name='QP', default=False) self.RISM: BoolType | BoolKey = BoolKey(name='RISM', default=False) self.Ridge: BoolType | BoolKey = BoolKey(name='Ridge', default=False) self.SEDD: BoolType | BoolKey = BoolKey(name='SEDD', default=False) self.TAPE16File: str | StringKey = StringKey(name='TAPE16File', comment='Path to the TAPE16 file from which densf reads the input data', default='TAPE16') self.VTKFile: str | StringKey = StringKey(name='VTKFile', comment='Specifies path to a file in the format readable by VTK directly. This option exists primarily for better integration with AMS-GUI and the user should not specify it.') self.GenFit: str | Sequence[str] | FreeBlock = self._GenFit(name='GenFit') self.Grid: str | Sequence[str] | FreeBlock = self._Grid(name='Grid', header=True) self.IrrepDensity: str | Sequence[str] | FreeBlock = self._IrrepDensity(name='IrrepDensity', comment='Select particular symmetry to compute the electron density for.') self.Line: str | Sequence[str] | FreeBlock = self._Line(name='Line') self.NOCV: str | Sequence[str] | FreeBlock = self._NOCV(name='NOCV') self.Orbitals: str | Sequence[str] | FreeBlock = self._Orbitals(name='Orbitals', unique=False, header=True) self.Spinor: str | Sequence[str] | FreeBlock = self._Spinor(name='Spinor') self.StericInteraction: str | Sequence[str] | FreeBlock = self._StericInteraction(name='StericInteraction') self.TransitionDensity: str | Sequence[str] | FreeBlock = self._TransitionDensity(name='TransitionDensity', comment='Select particular excitations to calculate the transition density for. Format: SS|ST SymLabel Index') self.Units: DENSF._Units = self._Units(name='Units', comment='Definitions of the units.')