Files
DicePlayer/diceplayer/config/gaussian_config.py
2026-02-26 06:23:30 -03:00

22 lines
889 B
Python

from typing import Literal
from pydantic import BaseModel, Field
from diceplayer.shared.utils.dataclass_protocol import Dataclass
from dataclasses import dataclass, fields
class GaussianConfig(BaseModel):
"""
Data Transfer Object for the Gaussian configuration.
"""
level: str = Field(..., description="Level of theory for the QM calculations")
qmprog: Literal["g03", "g09", "g16"] = Field("g16", description="QM program to use for the calculations")
chgmult: list[int] = Field(default_factory=lambda: [0, 1], description="List of charge and multiplicity for the QM calculations")
pop: str = Field("chelpg", description="Population analysis method for the QM calculations")
chg_tol: float = Field(0.01, description="Charge tolerance for the QM calculations")
keywords: str = Field(None, description="Additional keywords for the QM calculations")