/
toolkit.py
112 lines (102 loc) · 4.48 KB
/
toolkit.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# coding: utf-8
# Copyright (c) Max-Planck-Institut für Eisenforschung GmbH - Computational Materials Design (CM) Department
# Distributed under the terms of "New BSD License", see the LICENSE file.
"""
A toolkit for managing extensions to the project from atomistics.
"""
from pyiron_base import Toolkit, Project, JobFactoryCore
from pyiron_atomistics.atomistics.structure.factory import StructureFactory
from pyiron_atomistics.interactive.activation_relaxation_technique import ART
from pyiron_atomistics.testing.randomatomistic import AtomisticExampleJob
from pyiron_atomistics.dft.master.convergence_encut_parallel import ConvEncutParallel
from pyiron_atomistics.dft.master.convergence_encut_serial import ConvEncutSerial
from pyiron_atomistics.atomistics.master.convergence_volume import ConvergenceVolume
from pyiron_atomistics.dft.master.convergence_kpoint_parallel import ConvKpointParallel
from pyiron_atomistics.atomistics.master.elastic import ElasticTensor
from pyiron_atomistics.testing.randomatomistic import ExampleJob
# from pyiron_atomistics.gaussian.gaussian import Gaussian
from pyiron_atomistics.gpaw.gpaw import Gpaw
from pyiron_atomistics.thermodynamics.hessian import HessianJob
from pyiron_atomistics.lammps.lammps import Lammps
from pyiron_atomistics.atomistics.master.parallel import MapMaster
from pyiron_atomistics.atomistics.master.murnaghan import Murnaghan
from pyiron_atomistics.dft.master.murnaghan_dft import MurnaghanDFT
from pyiron_atomistics.atomistics.master.phonopy import PhonopyJob
from pyiron_atomistics.atomistics.master.quasi import QuasiHarmonicJob
from pyiron_atomistics.interactive.scipy_minimizer import ScipyMinimizer
from pyiron_atomistics.atomistics.master.serial import SerialMaster
from pyiron_atomistics.sphinx.sphinx import Sphinx
from pyiron_atomistics.atomistics.job.structurecontainer import StructureContainer
from pyiron_atomistics.atomistics.master.structure import StructureListMaster
from pyiron_atomistics.atomistics.job.sqs import SQSJob
from pyiron_atomistics.atomistics.master.sqsmaster import SQSMaster
from pyiron_atomistics.thermodynamics.sxphonons import (
SxPhonons,
SxDynMat,
SxUniqDispl,
SxHarmPotTst,
)
from pyiron_atomistics.interactive.sxextoptint import SxExtOptInteractive
from pyiron_atomistics.table.datamining import TableJob
from pyiron_atomistics.vasp.vasp import Vasp
from pyiron_atomistics.vasp.metadyn import VaspMetadyn
from pyiron_atomistics.vasp.vaspsol import VaspSol
__author__ = "Liam Huber"
__copyright__ = (
"Copyright 2021, Max-Planck-Institut für Eisenforschung GmbH - "
"Computational Materials Design (CM) Department"
)
__version__ = "1.0"
__maintainer__ = "Liam Huber"
__email__ = "huber@mpie.de"
__status__ = "production"
__date__ = "Sep 7, 2021"
class JobFactory(JobFactoryCore):
@property
def _job_class_dict(self) -> dict:
return {
"ART": ART,
"AtomisticExampleJob": AtomisticExampleJob,
"ConvEncutParallel": ConvEncutParallel,
"ConvEncutSerial": ConvEncutSerial,
"ConvergenceVolume": ConvergenceVolume,
"ConvKpointParallel": ConvKpointParallel,
"ElasticTensor": ElasticTensor,
"ExampleJob": ExampleJob,
# "Gaussian": Gaussian,
"Gpaw": Gpaw,
"HessianJob": HessianJob,
"Lammps": Lammps,
"MapMaster": MapMaster,
"Murnaghan": Murnaghan,
"MurnaghanDFT": MurnaghanDFT,
"PhonopyJob": PhonopyJob,
"QuasiHarmonicJob": QuasiHarmonicJob,
"ScipyMinimizer": ScipyMinimizer,
"SerialMaster": SerialMaster,
"Sphinx": Sphinx,
"StructureContainer": StructureContainer,
"StructureListMaster": StructureListMaster,
"SQSJob": SQSJob,
"SQSMaster": SQSMaster,
"SxDynMat": SxDynMat,
"SxExtOptInteractive": SxExtOptInteractive,
"SxHarmPotTst": SxHarmPotTst,
"SxPhonons": SxPhonons,
"SxUniqDispl": SxUniqDispl,
"TableJob": TableJob,
"Vasp": Vasp,
"VaspMetadyn": VaspMetadyn,
"VaspSol": VaspSol,
}
class AtomisticsTools(Toolkit):
def __init__(self, project: Project):
super().__init__(project)
self._structure = StructureFactory()
self._job = JobFactory(project)
@property
def structure(self) -> StructureFactory:
return self._structure
@property
def job(self) -> JobFactory:
return self._job