Skip to content

Commit

Permalink
fix ROKS issue, minor modifications in model_method
Browse files Browse the repository at this point in the history
  • Loading branch information
EBB2675 committed Jan 13, 2025
1 parent 271f69c commit d90eac1
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/nomad_simulations/schema_packages/basis_set.py
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ class AtomCenteredBasisSet(BasisSetComponent):

total_number_of_basis_functions = Quantity(
type=np.int32,
description='',
description=""""the total number of basis functions""",
)

functional_composition = SubSection(
Expand Down
77 changes: 74 additions & 3 deletions src/nomad_simulations/schema_packages/model_method.py
Original file line number Diff line number Diff line change
Expand Up @@ -1349,7 +1349,7 @@ def validate_scheme(self, logger: 'BoundLogger') -> bool:
elif self.reference_type in ['ROHF', 'ROKS']:
if abs(self.n_alpha_electrons - self.n_beta_electrons) != 1:
logger.error(
f'For {self.reference_type}, there must be exactly one unpaired electron.'
f'For {self.reference_type}, there must be unpaired electron(s).'
)
return False
return True
Expand Down Expand Up @@ -1435,7 +1435,6 @@ class PerturbationMethod(ModelMethodElectronic):
| `'RS'` | Rayleigh-Schrödigner |
| `'BW'` | Brillouin-Wigner |
""",
# a_eln=ELNAnnotation(component='EnumEditQuantity'),
)

order = Quantity(
Expand Down Expand Up @@ -1475,5 +1474,77 @@ class LocalCorrelation(ArchiveSection):
# TODO: improve list!
""",
# a_eln=ELNAnnotation(component='EnumEditQuantity'),
)


class CoupledCluster(ModelMethodElectronic):
"""
A base section used to define the parameters of a Coupled Cluster calculation.
A standard schema is defined, though the most common cases can be summarized in the `type` quantity.
"""

type = Quantity(
type=str,
description="""
Coupled Cluster flavor.
Examples: CC2, CC3, CCD, CCSD, BCCD, QCCD and so on.
The perturbative corrections are not included.
""",
a_eln=ELNAnnotation(component='StringEditQuantity'),
)

excitation_order = Quantity(
type=np.int32,
shape=['*'],
description="""
Orders at which the excitation are used.
1 = single, 2 = double, 3 = triple, 4 = quadruple, etc.
"""
)

reference_determinant = Quantity(
type=MEnum('UHF','RHF','ROHF',
'UKS', 'RKS', 'ROKS'),
description="""
The type of reference determinant.
""",
)

perturbation_method = SubSection(sub_section=PerturbationMethod.m_def)

local_correlation = SubSection(sub_section=LocalCorrelation.m_def)

perturbative_correction = Quantity(
type=MEnum('(T)', '[T]',
'(T0)', '[T0]',
'(Q)'),
description="""
The type of perturbative corrections.
A perturbative correction is different than a perturbation method.
"""
)

explicit_correlation = Quantity(
type=MEnum('F12', 'F12a', 'F12b', 'F12c',
'R12', ''),
default='',
description="""
Explicit correlation treatment.
These methods introduce the interelectronic distance coordinate
directly into the wavefunction to treat dynamical electron correlation.
It can be added linearly (R12) or exponentially (F12).
""",
)

is_frozencore = Quantity(
type=bool,
description="""
Flag for frozencore approximation.
In post-HF calculation only the valence electrons are typically correlated.
The others are kept frozen.
FC approximations differ between quantum chemistry codes.
""",
)



1 comment on commit d90eac1

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage

Coverage Report
FileStmtsMissCoverMissing
src/nomad_simulations
   __init__.py4250%3–4
   _version.py11282%5–6
src/nomad_simulations/schema_packages
   __init__.py15287%39–41
   atoms_state.py1902189%13–15, 201–204, 228, 283–284, 352–353, 355, 537, 549–550, 611–615, 630–634, 641
   basis_set.py2674085%8–9, 122–133, 172–185, 275–302, 536–540, 562–563, 607–610, 729, 760, 762
   general.py89891%4–7, 121, 185, 295–296, 306
   model_method.py32810070%10–12, 171–174, 177–184, 276–277, 297, 318–339, 355–381, 384–401, 587, 780, 791, 833–840, 878, 897, 977, 1034, 1109, 1223, 1332–1334, 1343–1355, 1358–1379
   model_system.py3503789%45–51, 235, 254, 258, 261, 264, 290, 376–377, 454–455, 472–473, 686–689, 736–743, 917–918, 1155–1159, 1165–1166, 1174–1175, 1180, 1203
   numerical_settings.py2806776%12–14, 204–210, 280, 282–283, 286–289, 293–294, 301–304, 313–316, 320–323, 325–328, 333–336, 342–345, 532–559, 634, 669–672, 696, 699, 744, 746–749, 753, 757, 804, 808–829, 884–885, 952, 982
   outputs.py1201092%9–10, 252–255, 295–298, 323, 325, 362, 381
   physical_property.py102793%20–22, 202, 331–333
   variables.py861286%8–10, 98, 121, 145, 167, 189, 211, 233, 256, 276
src/nomad_simulations/schema_packages/properties
   band_gap.py51590%8–10, 135–136
   band_structure.py1232580%9–11, 232–265, 278, 285, 321–322, 325, 372–373, 378
   energies.py42979%7–9, 36, 57, 82, 103, 119, 134
   fermi_surface.py17476%7–9, 40
   forces.py22673%7–9, 36, 56, 79
   greens_function.py991387%7–9, 210–211, 214, 235–236, 239, 260–261, 264, 400
   hopping_matrix.py29583%7–9, 58, 94
   permittivity.py48883%7–9, 97–105
   spectral_profile.py26012851%9–11, 57–60, 95–98, 199–300, 356–368, 393–396, 416, 421–424, 466–502, 526, 573–576, 592–593, 598–604
   thermodynamics.py752764%7–9, 35, 56, 72, 81, 90, 101, 110, 137, 147, 157, 172–174, 177, 193, 213–215, 218, 234, 254–256, 259
src/nomad_simulations/schema_packages/utils
   utils.py791680%8–11, 65–74, 83–84, 89, 92, 169–170
TOTAL269855479% 

Tests Skipped Failures Errors Time
423 0 💤 0 ❌ 0 🔥 7.066s ⏱️

Please sign in to comment.