Skip to content

Commit af88624

Browse files
committed
add a draft for AtomCenteredFunction
1 parent bf1f6f4 commit af88624

File tree

1 file changed

+33
-2
lines changed

1 file changed

+33
-2
lines changed

src/nomad_simulations/schema_packages/basis_set.py

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,40 @@ class AtomCenteredFunction(ArchiveSection):
190190
Specifies a single function (term) in an atom-centered basis set.
191191
"""
192192

193-
pass
193+
function_type = Quantity(
194+
type=str,
195+
description="""
196+
Type of the function (e.g. GTO for Gaussian, STO for Slater)
197+
""",
198+
)
199+
200+
exponents = Quantity(
201+
type=np.float32,
202+
shape=['*'],
203+
description="""
204+
List of exponents for the basis function.
205+
""",
206+
)
194207

195-
# TODO: design system for writing basis functions like gaussian or slater orbitals
208+
contraction_coefficients = Quantity(
209+
type=np.float32,
210+
shape=['*'],
211+
description="""
212+
List of contraction coefficients corresponding to the exponents.
213+
""",
214+
)
215+
216+
atom_state = SubSection(sub_section=AtomsState.m_def, repeats=False)
217+
218+
def __init__(self, atom_state: AtomsState, function_type: str, exponents: list, contraction_coefficients: list):
219+
self.atom_state = atom_state
220+
self.function_type = function_type
221+
self.exponents = exponents
222+
self.contraction_coefficients = contraction_coefficients
223+
224+
def normalize(self, archive: 'EntryArchive', logger: 'BoundLogger') -> None:
225+
super().normalize(archive, logger)
226+
self.name = self.m_def.name
196227

197228

198229
class AtomCenteredBasisSet(BasisSetComponent):

0 commit comments

Comments
 (0)