Skip to content

Commit 8d4f72e

Browse files
committed
refactor
1 parent 5af05b3 commit 8d4f72e

File tree

7 files changed

+166
-178
lines changed

7 files changed

+166
-178
lines changed

pyiron_dataclasses/v1/atomistic.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
from dataclasses import dataclass
2+
import numpy as np
3+
from typing import Optional, List
4+
from pyiron_dataclasses.v1.dft import OutputGenericDFT
5+
6+
7+
@dataclass
8+
class GenericOutput:
9+
cells: np.ndarray # N_steps * 3 *3 [Angstrom]
10+
energy_pot: np.ndarray # N_steps [eV]
11+
energy_tot: np.ndarray # N_steps [eV]
12+
forces: np.ndarray # N_steps * N_atoms * 3 [eV/Angstrom]
13+
positions: np.ndarray # N_steps * N_atoms * 3 [Angstrom]
14+
volume: np.ndarray # N_steps
15+
indices: Optional[np.ndarray] # N_steps * N_atoms
16+
natoms: Optional[np.ndarray] # N_steps
17+
pressures: Optional[np.ndarray] # N_steps * 3 * 3
18+
steps: Optional[np.ndarray] # N_steps
19+
stresses: Optional[np.ndarray] # N_steps
20+
temperature: Optional[np.ndarray] # N_steps
21+
unwrapped_positions: Optional[np.ndarray] # N_steps * N_atoms * 3 [Angstrom]
22+
velocities: Optional[np.ndarray] # N_steps * N_atoms * 3 [Angstrom/fs]
23+
dft: Optional[OutputGenericDFT]
24+
elastic_constants: Optional[np.ndarray]
25+
26+
27+
@dataclass
28+
class GenericInput:
29+
calc_mode: str
30+
structure: str
31+
fix_symmetry: Optional[bool]
32+
k_mesh_spacing: Optional[float]
33+
k_mesh_center_shift: Optional[np.ndarray]
34+
reduce_kpoint_symmetry: Optional[bool]
35+
restart_for_band_structure: Optional[bool]
36+
path_name: Optional[str]
37+
n_path: Optional[str]
38+
fix_spin_constraint: Optional[bool]
39+
max_iter: Optional[int]
40+
temperature: Optional[float]
41+
n_ionic_steps: Optional[int]
42+
n_print: Optional[int]
43+
temperature_damping_timescale: Optional[float]
44+
pressure_damping_timescale: Optional[float]
45+
time_step: Optional[int]
46+
47+
48+
@dataclass
49+
class Units:
50+
length: str
51+
mass: str
52+
53+
54+
@dataclass
55+
class Cell:
56+
cell: np.ndarray # 3 * 3 [Angstrom]
57+
pbc: np.ndarray # 3
58+
59+
60+
@dataclass
61+
class Structure:
62+
dimension: int
63+
indices: np.array
64+
info: dict
65+
positions: np.ndarray # N_atoms * 3 [Angstrom]
66+
species: List[str]
67+
cell: Cell
68+
units: Units

pyiron_dataclasses/v1/dft.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
from dataclasses import dataclass
2+
import numpy as np
3+
from typing import Optional, List
4+
5+
6+
@dataclass
7+
class DensityOfStates:
8+
energies: str
9+
int_densities: str
10+
tot_densities: str
11+
12+
13+
@dataclass
14+
class ElectronicStructure:
15+
efermi: float
16+
eig_matrix: np.ndarray
17+
k_points: np.ndarray
18+
k_weights: np.ndarray
19+
occ_matrix: np.ndarray
20+
dos: DensityOfStates
21+
22+
23+
@dataclass
24+
class OutputGenericDFT:
25+
energy_free: np.ndarray
26+
energy_int: np.ndarray
27+
energy_zero: np.ndarray
28+
scf_energy_free: np.ndarray
29+
scf_energy_int: np.ndarray
30+
scf_energy_zero: np.ndarray
31+
cbm_list: Optional[np.ndarray]
32+
e_fermi_list: Optional[np.ndarray]
33+
final_magmoms: Optional[np.ndarray]
34+
magnetization: Optional[np.ndarray]
35+
n_elect: Optional[float]
36+
n_valence: Optional[dict]
37+
potentiostat_output: Optional[np.ndarray]
38+
bands_k_weights: Optional[np.ndarray]
39+
kpoints_cartesian: Optional[np.ndarray]
40+
bands_e_fermi: Optional[np.ndarray]
41+
bands_occ: Optional[np.ndarray]
42+
bands_eigen_values: Optional[np.ndarray]
43+
scf_convergence: Optional[List[bool]]
44+
scf_dipole_mom: Optional[np.ndarray]
45+
scf_computation_time: Optional[np.ndarray]
46+
valence_charges: Optional[np.ndarray]
47+
vbm_list: Optional[np.ndarray]
48+
bands: Optional[ElectronicStructure]
49+
scf_energy_band: Optional[np.ndarray]
50+
scf_electronic_entropy: Optional[np.ndarray]
51+
scf_residue: Optional[np.ndarray]
52+
computation_time: Optional[np.ndarray]
53+
energy_band: Optional[np.ndarray]
54+
electronic_entropy: Optional[np.ndarray]
55+
residue: Optional[np.ndarray]
56+
57+
58+
@dataclass
59+
class ChargeDensity:
60+
total: np.ndarray

pyiron_dataclasses/v1/generic.py

Lines changed: 0 additions & 164 deletions
This file was deleted.

pyiron_dataclasses/v1/job.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,20 @@ class Executable:
1212
executable: Optional[str] = None
1313

1414

15+
@dataclass
16+
class GenericDict:
17+
restart_file_list: list
18+
restart_file_dict: dict
19+
exclude_nodes_hdf: list
20+
exclude_groups_hdf: list
21+
22+
23+
@dataclass
24+
class Interactive:
25+
interactive_flush_frequency: int
26+
interactive_write_frequency: int
27+
28+
1529
@dataclass
1630
class Server:
1731
user: str

pyiron_dataclasses/v1/lammps.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@
22
from typing import Optional, List
33

44

5-
from pyiron_dataclasses.v1.generic import (
6-
GenericDict,
7-
Interactive,
5+
from pyiron_dataclasses.v1.atomistic import (
86
GenericInput,
97
GenericOutput,
8+
Structure,
9+
)
10+
from pyiron_dataclasses.v1.job import (
1011
Executable,
12+
GenericDict,
13+
Interactive,
1114
Server,
12-
Structure,
1315
)
1416

1517

pyiron_dataclasses/v1/sphinx.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,21 @@
33
from typing import List
44

55

6-
from pyiron_dataclasses.v1.generic import (
7-
GenericDict,
8-
Interactive,
6+
from pyiron_dataclasses.v1.atomistic import (
97
GenericInput,
108
GenericOutput,
11-
Executable,
12-
Server,
139
Structure,
10+
)
11+
from pyiron_dataclasses.v1.dft import (
1412
ElectronicStructure,
1513
ChargeDensity,
1614
)
15+
from pyiron_dataclasses.v1.job import (
16+
Executable,
17+
GenericDict,
18+
Interactive,
19+
Server,
20+
)
1721

1822

1923
@dataclass

pyiron_dataclasses/v1/vasp.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,21 @@
22
import numpy as np
33

44

5-
from pyiron_dataclasses.v1.generic import (
6-
GenericDict,
7-
Interactive,
5+
from pyiron_dataclasses.v1.atomistic import (
86
GenericInput,
97
GenericOutput,
10-
Executable,
11-
Server,
128
Structure,
9+
)
10+
from pyiron_dataclasses.v1.dft import (
1311
ElectronicStructure,
1412
ChargeDensity,
1513
)
14+
from pyiron_dataclasses.v1.job import (
15+
Executable,
16+
GenericDict,
17+
Interactive,
18+
Server,
19+
)
1620

1721

1822
@dataclass

0 commit comments

Comments
 (0)