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 CPL(DriverBlock):
r"""
:ivar ADFFile: Path to TAPE21 file from which cpl reads data and to which cpl writes data
:vartype ADFFile: str | StringKey
:ivar ALTRHOF:
:vartype ALTRHOF: BoolType | BoolKey
:ivar Allow:
:vartype Allow: str | StringKey
:ivar CALCV2007: compatibility with older versions of CPL that did not use the SAPA approximation but always calculated the potential during the CPL run, which is inconsistent with SAPA settings in ADF
:vartype CALCV2007: BoolType | BoolKey
:ivar CPLDebug:
:vartype CPLDebug: int | IntKey
:ivar Debug:
:vartype Debug: str | StringKey
:ivar Diagonal:
:vartype Diagonal: BoolType | BoolKey
:ivar Diffuse:
:vartype Diffuse: BoolType | BoolKey
:ivar FORCECONVERGE:
:vartype FORCECONVERGE: BoolType | BoolKey
:ivar FULLNBO:
:vartype FULLNBO: BoolType | BoolKey
:ivar Fractional: Allow Fractional occupations
:vartype Fractional: BoolType | BoolKey
:ivar GGA: Use first-order GGA potential instead of the first-order VWN potential
:vartype GGA: BoolType | BoolKey
:ivar LinearScaling:
:vartype LinearScaling: BoolType | BoolKey
:ivar MODEBUG:
:vartype MODEBUG: BoolType | BoolKey
:ivar NBODEBUG:
:vartype NBODEBUG: BoolType | BoolKey
:ivar NEWCPKS:
:vartype NEWCPKS: BoolType | BoolKey
:ivar NoFDKERN:
:vartype NoFDKERN: BoolType | BoolKey
:ivar NoGGAPot:
:vartype NoGGAPot: BoolType | BoolKey
:ivar NoKMat:
:vartype NoKMat: BoolType | BoolKey
:ivar NoPrint:
:vartype NoPrint: str | StringKey
:ivar NoTKINFDKERN:
:vartype NoTKINFDKERN: BoolType | BoolKey
:ivar NoXCFDKERN:
:vartype NoXCFDKERN: BoolType | BoolKey
:ivar OLDCPKS:
:vartype OLDCPKS: BoolType | BoolKey
:ivar OldCode: Use old code
:vartype OldCode: BoolType | BoolKey
:ivar PSOFirst:
:vartype PSOFirst: BoolType | BoolKey
:ivar Print:
:vartype Print: str | StringKey
:ivar Restart:
:vartype Restart: str | StringKey
:ivar SPINCURRENTS:
:vartype SPINCURRENTS: BoolType | BoolKey
:ivar Save:
:vartype Save: str | StringKey
:ivar Skip:
:vartype Skip: str | StringKey
:ivar TAPE10File: Path to the TAPE10 file from which cpl reads data
:vartype TAPE10File: str | StringKey
:ivar Hyperfine: control the computation of the NSSCCs
:vartype Hyperfine: CPL._Hyperfine
:ivar NMRCoupling: control the computation of the NSSCCs
:vartype NMRCoupling: CPL._NMRCoupling
:ivar ZFS: ZFS branch of the code
:vartype ZFS: CPL._ZFS
"""
[docs] class _Hyperfine(FixedBlock):
r"""
control the computation of the NSSCCs
:ivar ADFGUI:
:vartype ADFGUI: BoolType | BoolKey
:ivar Atoms:
:vartype Atoms: Iterable[int] | IntListKey
:ivar Enabled:
:vartype Enabled: BoolType | BoolKey
:ivar FC:
:vartype FC: BoolType | BoolKey
:ivar NOFC:
:vartype NOFC: BoolType | BoolKey
:ivar NOPSOSO:
:vartype NOPSOSO: BoolType | BoolKey
:ivar NOSD:
:vartype NOSD: BoolType | BoolKey
:ivar Nuclei:
:vartype Nuclei: Iterable[int] | IntListKey
:ivar PSOSO:
:vartype PSOSO: BoolType | BoolKey
:ivar SD:
:vartype SD: BoolType | BoolKey
:ivar SCF:
:vartype SCF: CPL._Hyperfine._SCF
"""
[docs] class _SCF(FixedBlock):
r"""
:ivar Converge: maximum number of iterations
:vartype Converge: float | FloatKey
:ivar Iterations: maximum number of iterations
:vartype Iterations: int | IntKey
:ivar Mix:
:vartype Mix: float | FloatKey
:ivar NOACCEL:
:vartype NOACCEL: BoolType | BoolKey
:ivar NOCYC:
:vartype NOCYC: BoolType | BoolKey
"""
def __post_init__(self):
self.Converge: float | FloatKey = FloatKey(name='Converge', comment='maximum number of iterations', default=0.0001)
self.Iterations: int | IntKey = IntKey(name='Iterations', comment='maximum number of iterations', default=25)
self.Mix: float | FloatKey = FloatKey(name='Mix', hidden=True, default=1.0)
self.NOACCEL: BoolType | BoolKey = BoolKey(name='NOACCEL', hidden=True, default=False)
self.NOCYC: BoolType | BoolKey = BoolKey(name='NOCYC', default=False)
def __post_init__(self):
self.ADFGUI: BoolType | BoolKey = BoolKey(name='ADFGUI')
self.Atoms: Iterable[int] | IntListKey = IntListKey(name='Atoms', unique=False)
self.Enabled: BoolType | BoolKey = BoolKey(name='Enabled', default=False)
self.FC: BoolType | BoolKey = BoolKey(name='FC', default=False)
self.NOFC: BoolType | BoolKey = BoolKey(name='NOFC', default=False)
self.NOPSOSO: BoolType | BoolKey = BoolKey(name='NOPSOSO', default=False)
self.NOSD: BoolType | BoolKey = BoolKey(name='NOSD', default=False)
self.Nuclei: Iterable[int] | IntListKey = IntListKey(name='Nuclei', unique=False)
self.PSOSO: BoolType | BoolKey = BoolKey(name='PSOSO', default=False)
self.SD: BoolType | BoolKey = BoolKey(name='SD', default=False)
self.SCF: CPL._Hyperfine._SCF = self._SCF(name='SCF')
[docs] class _NMRCoupling(FixedBlock):
r"""
control the computation of the NSSCCs
:ivar ADFGUI:
:vartype ADFGUI: BoolType | BoolKey
:ivar ALDA:
:vartype ALDA: BoolType | BoolKey
:ivar AtomPert:
:vartype AtomPert: Iterable[int] | IntListKey
:ivar AtomResp:
:vartype AtomResp: Iterable[int] | IntListKey
:ivar Contributions: Analyze orbital contributions
:vartype Contributions: str | StringKey
:ivar DSO:
:vartype DSO: BoolType | BoolKey
:ivar FC:
:vartype FC: BoolType | BoolKey
:ivar Gamma:
:vartype Gamma: str | StringKey
:ivar Internal:
:vartype Internal: BoolType | BoolKey
:ivar NOFC:
:vartype NOFC: BoolType | BoolKey
:ivar NOSD:
:vartype NOSD: BoolType | BoolKey
:ivar Nuclei:
:vartype Nuclei: Iterable[int] | IntListKey
:ivar PSO:
:vartype PSO: BoolType | BoolKey
:ivar PertAllAtomsOfType: Space separated list of type of perturbing nuclei (like H, C, P) for which the NMR spin-spin coupling should be calculated.
:vartype PertAllAtomsOfType: str | StringKey
:ivar RespAllAtomsOfType: Space separated list of type of responding nuclei (like H, C, P) for which the NMR spin-spin coupling should be calculated.
:vartype RespAllAtomsOfType: str | StringKey
:ivar SD:
:vartype SD: BoolType | BoolKey
:ivar XAlpha:
:vartype XAlpha: BoolType | BoolKey
:ivar SCF:
:vartype SCF: CPL._NMRCoupling._SCF
"""
[docs] class _SCF(FixedBlock):
r"""
:ivar Converge: maximum number of iterations
:vartype Converge: float | FloatKey
:ivar DELTAE: apply energy denominator correction
:vartype DELTAE: BoolType | BoolKey
:ivar DiskMO: store MO's on disk
:vartype DiskMO: BoolType | BoolKey
:ivar ERange:
:vartype ERange: str | StringKey
:ivar Iterations: maximum number of iterations
:vartype Iterations: int | IntKey
:ivar Mix:
:vartype Mix: float | FloatKey
:ivar NOACCEL:
:vartype NOACCEL: BoolType | BoolKey
:ivar NOCYC:
:vartype NOCYC: BoolType | BoolKey
"""
def __post_init__(self):
self.Converge: float | FloatKey = FloatKey(name='Converge', comment='maximum number of iterations', default=0.0001)
self.DELTAE: BoolType | BoolKey = BoolKey(name='DELTAE', comment='apply energy denominator correction', hidden=True, default=False)
self.DiskMO: BoolType | BoolKey = BoolKey(name='DiskMO', comment="store MO's on disk", hidden=True, default=False)
self.ERange: str | StringKey = StringKey(name='ERange', hidden=True)
self.Iterations: int | IntKey = IntKey(name='Iterations', comment='maximum number of iterations', default=25)
self.Mix: float | FloatKey = FloatKey(name='Mix', hidden=True, default=1.0)
self.NOACCEL: BoolType | BoolKey = BoolKey(name='NOACCEL', hidden=True, default=False)
self.NOCYC: BoolType | BoolKey = BoolKey(name='NOCYC', default=False)
def __post_init__(self):
self.ADFGUI: BoolType | BoolKey = BoolKey(name='ADFGUI')
self.ALDA: BoolType | BoolKey = BoolKey(name='ALDA', default=False)
self.AtomPert: Iterable[int] | IntListKey = IntListKey(name='AtomPert', unique=False)
self.AtomResp: Iterable[int] | IntListKey = IntListKey(name='AtomResp', unique=False)
self.Contributions: str | StringKey = StringKey(name='Contributions', comment='Analyze orbital contributions')
self.DSO: BoolType | BoolKey = BoolKey(name='DSO', default=False)
self.FC: BoolType | BoolKey = BoolKey(name='FC', default=False)
self.Gamma: str | StringKey = StringKey(name='Gamma', unique=False)
self.Internal: BoolType | BoolKey = BoolKey(name='Internal', hidden=True, default=False)
self.NOFC: BoolType | BoolKey = BoolKey(name='NOFC', default=False)
self.NOSD: BoolType | BoolKey = BoolKey(name='NOSD', default=False)
self.Nuclei: Iterable[int] | IntListKey = IntListKey(name='Nuclei', unique=False)
self.PSO: BoolType | BoolKey = BoolKey(name='PSO', default=False)
self.PertAllAtomsOfType: str | StringKey = StringKey(name='PertAllAtomsOfType', comment='Space separated list of type of perturbing nuclei (like H, C, P) for which the NMR spin-spin coupling should be calculated.')
self.RespAllAtomsOfType: str | StringKey = StringKey(name='RespAllAtomsOfType', comment='Space separated list of type of responding nuclei (like H, C, P) for which the NMR spin-spin coupling should be calculated.')
self.SD: BoolType | BoolKey = BoolKey(name='SD', default=False)
self.XAlpha: BoolType | BoolKey = BoolKey(name='XAlpha', default=False)
self.SCF: CPL._NMRCoupling._SCF = self._SCF(name='SCF')
[docs] class _ZFS(FixedBlock):
r"""
ZFS branch of the code
:ivar ADFGUI:
:vartype ADFGUI: BoolType | BoolKey
:ivar GAUGE:
:vartype GAUGE: BoolType | BoolKey
:ivar NOGAUGE:
:vartype NOGAUGE: BoolType | BoolKey
:ivar NOSOSO:
:vartype NOSOSO: BoolType | BoolKey
:ivar SOSO:
:vartype SOSO: BoolType | BoolKey
:ivar SCF:
:vartype SCF: CPL._ZFS._SCF
"""
[docs] class _SCF(FixedBlock):
r"""
:ivar Converge: maximum number of iterations
:vartype Converge: float | FloatKey
:ivar Iterations: maximum number of iterations
:vartype Iterations: int | IntKey
:ivar Mix:
:vartype Mix: float | FloatKey
:ivar NOACCEL:
:vartype NOACCEL: BoolType | BoolKey
:ivar NOCYC:
:vartype NOCYC: BoolType | BoolKey
"""
def __post_init__(self):
self.Converge: float | FloatKey = FloatKey(name='Converge', comment='maximum number of iterations', default=0.0001)
self.Iterations: int | IntKey = IntKey(name='Iterations', comment='maximum number of iterations', default=25)
self.Mix: float | FloatKey = FloatKey(name='Mix', hidden=True, default=1.0)
self.NOACCEL: BoolType | BoolKey = BoolKey(name='NOACCEL', hidden=True, default=False)
self.NOCYC: BoolType | BoolKey = BoolKey(name='NOCYC', hidden=True, default=False)
def __post_init__(self):
self.ADFGUI: BoolType | BoolKey = BoolKey(name='ADFGUI')
self.GAUGE: BoolType | BoolKey = BoolKey(name='GAUGE')
self.NOGAUGE: BoolType | BoolKey = BoolKey(name='NOGAUGE')
self.NOSOSO: BoolType | BoolKey = BoolKey(name='NOSOSO')
self.SOSO: BoolType | BoolKey = BoolKey(name='SOSO')
self.SCF: CPL._ZFS._SCF = self._SCF(name='SCF')
def __post_init__(self):
self.ADFFile: str | StringKey = StringKey(name='ADFFile', comment='Path to TAPE21 file from which cpl reads data and to which cpl writes data', default='TAPE21')
self.ALTRHOF: BoolType | BoolKey = BoolKey(name='ALTRHOF', hidden=True, default=False)
self.Allow: str | StringKey = StringKey(name='Allow', hidden=True, unique=False)
self.CALCV2007: BoolType | BoolKey = BoolKey(name='CALCV2007', comment='compatibility with older versions of CPL that did not use the SAPA approximation but always calculated the potential during the CPL run, which is inconsistent with SAPA settings in ADF', default=False)
self.CPLDebug: int | IntKey = IntKey(name='CPLDebug', hidden=True, default=0)
self.Debug: str | StringKey = StringKey(name='Debug', hidden=True, unique=False)
self.Diagonal: BoolType | BoolKey = BoolKey(name='Diagonal', hidden=True, default=False)
self.Diffuse: BoolType | BoolKey = BoolKey(name='Diffuse', hidden=True, default=False)
self.FORCECONVERGE: BoolType | BoolKey = BoolKey(name='FORCECONVERGE', hidden=True, default=False)
self.FULLNBO: BoolType | BoolKey = BoolKey(name='FULLNBO', hidden=True, default=False)
self.Fractional: BoolType | BoolKey = BoolKey(name='Fractional', comment='Allow Fractional occupations', default=False)
self.GGA: BoolType | BoolKey = BoolKey(name='GGA', comment='Use first-order GGA potential instead of the first-order VWN potential', default=False)
self.LinearScaling: BoolType | BoolKey = BoolKey(name='LinearScaling', hidden=True)
self.MODEBUG: BoolType | BoolKey = BoolKey(name='MODEBUG', hidden=True, default=False)
self.NBODEBUG: BoolType | BoolKey = BoolKey(name='NBODEBUG', hidden=True, default=False)
self.NEWCPKS: BoolType | BoolKey = BoolKey(name='NEWCPKS', hidden=True, default=True)
self.NoFDKERN: BoolType | BoolKey = BoolKey(name='NoFDKERN', hidden=True, default=False)
self.NoGGAPot: BoolType | BoolKey = BoolKey(name='NoGGAPot', hidden=True, default=False)
self.NoKMat: BoolType | BoolKey = BoolKey(name='NoKMat', hidden=True, default=False)
self.NoPrint: str | StringKey = StringKey(name='NoPrint', hidden=True, unique=False)
self.NoTKINFDKERN: BoolType | BoolKey = BoolKey(name='NoTKINFDKERN', hidden=True, default=False)
self.NoXCFDKERN: BoolType | BoolKey = BoolKey(name='NoXCFDKERN', hidden=True, default=False)
self.OLDCPKS: BoolType | BoolKey = BoolKey(name='OLDCPKS', hidden=True, default=False)
self.OldCode: BoolType | BoolKey = BoolKey(name='OldCode', comment='Use old code', hidden=True, default=False)
self.PSOFirst: BoolType | BoolKey = BoolKey(name='PSOFirst', hidden=True, default=False)
self.Print: str | StringKey = StringKey(name='Print', hidden=True, unique=False)
self.Restart: str | StringKey = StringKey(name='Restart', hidden=True)
self.SPINCURRENTS: BoolType | BoolKey = BoolKey(name='SPINCURRENTS', hidden=True, default=False)
self.Save: str | StringKey = StringKey(name='Save', unique=False)
self.Skip: str | StringKey = StringKey(name='Skip', hidden=True, unique=False)
self.TAPE10File: str | StringKey = StringKey(name='TAPE10File', comment='Path to the TAPE10 file from which cpl reads data', default='TAPE10')
self.Hyperfine: CPL._Hyperfine = self._Hyperfine(name='Hyperfine', comment='control the computation of the NSSCCs')
self.NMRCoupling: CPL._NMRCoupling = self._NMRCoupling(name='NMRCoupling', comment='control the computation of the NSSCCs')
self.ZFS: CPL._ZFS = self._ZFS(name='ZFS', comment='ZFS branch of the code', hidden=True)