@@ -1349,7 +1349,7 @@ def validate_scheme(self, logger: 'BoundLogger') -> bool:
1349
1349
elif self .reference_type in ['ROHF' , 'ROKS' ]:
1350
1350
if abs (self .n_alpha_electrons - self .n_beta_electrons ) != 1 :
1351
1351
logger .error (
1352
- f'For { self .reference_type } , there must be exactly one unpaired electron.'
1352
+ f'For { self .reference_type } , there must be unpaired electron(s) .'
1353
1353
)
1354
1354
return False
1355
1355
return True
@@ -1435,7 +1435,6 @@ class PerturbationMethod(ModelMethodElectronic):
1435
1435
| `'RS'` | Rayleigh-Schrödigner |
1436
1436
| `'BW'` | Brillouin-Wigner |
1437
1437
""" ,
1438
- # a_eln=ELNAnnotation(component='EnumEditQuantity'),
1439
1438
)
1440
1439
1441
1440
order = Quantity (
@@ -1475,5 +1474,77 @@ class LocalCorrelation(ArchiveSection):
1475
1474
1476
1475
# TODO: improve list!
1477
1476
""" ,
1478
- # a_eln=ELNAnnotation(component='EnumEditQuantity'),
1479
1477
)
1478
+
1479
+
1480
+ class CoupledCluster (ModelMethodElectronic ):
1481
+ """
1482
+ A base section used to define the parameters of a Coupled Cluster calculation.
1483
+ A standard schema is defined, though the most common cases can be summarized in the `type` quantity.
1484
+ """
1485
+
1486
+ type = Quantity (
1487
+ type = str ,
1488
+ description = """
1489
+ Coupled Cluster flavor.
1490
+ Examples: CC2, CC3, CCD, CCSD, BCCD, QCCD and so on.
1491
+ The perturbative corrections are not included.
1492
+ """ ,
1493
+ a_eln = ELNAnnotation (component = 'StringEditQuantity' ),
1494
+ )
1495
+
1496
+ excitation_order = Quantity (
1497
+ type = np .int32 ,
1498
+ shape = ['*' ],
1499
+ description = """
1500
+ Orders at which the excitation are used.
1501
+ 1 = single, 2 = double, 3 = triple, 4 = quadruple, etc.
1502
+ """
1503
+ )
1504
+
1505
+ reference_determinant = Quantity (
1506
+ type = MEnum ('UHF' ,'RHF' ,'ROHF' ,
1507
+ 'UKS' , 'RKS' , 'ROKS' ),
1508
+ description = """
1509
+ The type of reference determinant.
1510
+ """ ,
1511
+ )
1512
+
1513
+ perturbation_method = SubSection (sub_section = PerturbationMethod .m_def )
1514
+
1515
+ local_correlation = SubSection (sub_section = LocalCorrelation .m_def )
1516
+
1517
+ perturbative_correction = Quantity (
1518
+ type = MEnum ('(T)' , '[T]' ,
1519
+ '(T0)' , '[T0]' ,
1520
+ '(Q)' ),
1521
+ description = """
1522
+ The type of perturbative corrections.
1523
+ A perturbative correction is different than a perturbation method.
1524
+ """
1525
+ )
1526
+
1527
+ explicit_correlation = Quantity (
1528
+ type = MEnum ('F12' , 'F12a' , 'F12b' , 'F12c' ,
1529
+ 'R12' , '' ),
1530
+ default = '' ,
1531
+ description = """
1532
+ Explicit correlation treatment.
1533
+ These methods introduce the interelectronic distance coordinate
1534
+ directly into the wavefunction to treat dynamical electron correlation.
1535
+ It can be added linearly (R12) or exponentially (F12).
1536
+ """ ,
1537
+ )
1538
+
1539
+ is_frozencore = Quantity (
1540
+ type = bool ,
1541
+ description = """
1542
+ Flag for frozencore approximation.
1543
+ In post-HF calculation only the valence electrons are typically correlated.
1544
+ The others are kept frozen.
1545
+ FC approximations differ between quantum chemistry codes.
1546
+ """ ,
1547
+ )
1548
+
1549
+
1550
+
0 commit comments