22 lines
889 B
Python
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")
|