From a2bb272f21532d55245a83c1464ddaa6971b4baf Mon Sep 17 00:00:00 2001 From: ElliottKasoar Date: Fri, 16 Feb 2024 11:53:13 +0000 Subject: [PATCH] Add force and stress calculations --- janus_core/single_point.py | 60 ++++- tests/data/UiO66.cif | 481 +++++++++++++++++++++++++++++++++++++ tests/test_single_point.py | 46 +++- 3 files changed, 583 insertions(+), 4 deletions(-) create mode 100644 tests/data/UiO66.cif diff --git a/janus_core/single_point.py b/janus_core/single_point.py index c724172a..36d804c1 100644 --- a/janus_core/single_point.py +++ b/janus_core/single_point.py @@ -5,6 +5,7 @@ import pathlib from ase.io import read +from numpy.typing import NDArray from janus_core.mlip_calculators import choose_calculator @@ -56,6 +57,61 @@ def get_calculator(self, **kwargs) -> None: self.read_system() self.sys.calc = calculator - def get_potential_energy(self) -> float: - """Calculate potential energy using MLIP.""" + def _get_potential_energy(self) -> float: + """Calculate potential energy using MLIP. + + Returns + ------- + potential_energy : float + Potential energy of system. + """ return self.sys.get_potential_energy() + + def _get_forces(self) -> NDArray: + """Calculate forces using MLIP. + + Returns + ------- + forces : float + Forces of system. + """ + return self.sys.get_forces() + + def _get_stress(self) -> NDArray: + """Calculate stress using MLIP. + + Returns + ------- + stress : float + Stress of system. + """ + return self.sys.get_stress() + + def run_single_point(self, properties: str | list[str] | None = None) -> dict: + """Run single point calculations. + + Parameters + ---------- + properties : str | List[str] | None + Physical properties to calculate. If not specified, "energy", + "forces", and "stress" will be returned. + + Returns + ------- + results : dict + Dictionary of calculated results. + """ + results = {} + if properties is None: + properties = [] + if isinstance(properties, str): + properties = [properties] + + if "energy" in properties or len(properties) == 0: + results["energy"] = self._get_potential_energy() + if "forces" in properties or len(properties) == 0: + results["forces"] = self._get_forces() + if "stress" in properties or len(properties) == 0: + results["stress"] = self._get_stress() + + return results diff --git a/tests/data/UiO66.cif b/tests/data/UiO66.cif new file mode 100644 index 00000000..6b76b575 --- /dev/null +++ b/tests/data/UiO66.cif @@ -0,0 +1,481 @@ +data_image0 +_chemical_formula_structural C192H112O128Zr24 +_chemical_formula_sum "C192 H112 O128 Zr24" +_cell_length_a 20.86592767785943 +_cell_length_b 20.86592767785943 +_cell_length_c 20.86592767785943 +_cell_angle_alpha 90.0 +_cell_angle_beta 90.0 +_cell_angle_gamma 90.0 + +_space_group_name_H-M_alt "P 1" +_space_group_IT_number 1 + +loop_ + _space_group_symop_operation_xyz + 'x, y, z' + +loop_ + _atom_site_type_symbol + _atom_site_label + _atom_site_symmetry_multiplicity + _atom_site_fract_x + _atom_site_fract_y + _atom_site_fract_z + _atom_site_occupancy + C C1 1.0 0.34763445359926864 0.49646099841858093 0.15236741908927212 1.0000 + C C2 1.0 0.8476344544886804 0.9964609988158533 0.15236741880617619 1.0000 + C C3 1.0 0.847634454190808 0.4964609986783687 0.6523674182446753 1.0000 + C C4 1.0 0.34763445501772905 0.9964609985574735 0.6523674178685711 1.0000 + C C5 1.0 0.31446217700752066 0.26755976325098263 0.4923668560439473 1.0000 + C C6 1.0 0.8144621778671666 0.7675597623722535 0.4923668561785002 1.0000 + C C7 1.0 0.81446217764342 0.26755976240216095 0.9923668561339987 1.0000 + C C8 1.0 0.31446217715996 0.7675597631105281 0.9923668561391557 1.0000 + C C9 1.0 0.2675606981736018 0.492368387925189 0.31446157140509395 1.0000 + C C10 1.0 0.7675606985240246 0.992368387881237 0.31446157124391805 1.0000 + C C11 1.0 0.7675606987104057 0.4923683878572922 0.8144615711982522 1.0000 + C C12 1.0 0.2675606984871778 0.9923683880136898 0.8144615707787648 1.0000 + C C13 1.0 0.15236762136405002 0.0035392197277938275 0.15236782155668194 1.0000 + C C14 1.0 0.6523676208819674 0.5035392197448214 0.15236782157958254 1.0000 + C C15 1.0 0.6523676193864847 0.003539219645445059 0.652367820808891 1.0000 + C C16 1.0 0.15236762089019373 0.5035392198755461 0.6523678207947862 1.0000 + C C17 1.0 0.49294202702550866 0.2972969986984438 0.20270209163549197 1.0000 + C C18 1.0 0.9929420268961964 0.7972969972512571 0.20270209302561742 1.0000 + C C19 1.0 0.9929420269190793 0.29729699737357257 0.7027020925025027 1.0000 + C C20 1.0 0.49294202696610606 0.7972969977253939 0.7027020927525559 1.0000 + C C21 1.0 0.34763370154345546 0.003539475455374766 0.34763301513277084 1.0000 + C C22 1.0 0.8476337024410447 0.5035394757633834 0.3476330150890732 1.0000 + C C23 1.0 0.8476337010399997 0.003539475734026953 0.8476330132836001 1.0000 + C C24 1.0 0.34763370197002774 0.5035394755319885 0.8476330144439547 1.0000 + C C25 1.0 0.3144616424166057 0.5076302847553734 0.7324386418547802 1.0000 + C C26 1.0 0.8144616417074542 0.007630284711109849 0.732438641536373 1.0000 + C C27 1.0 0.81446164314943 0.5076302847147296 0.23243864247421558 1.0000 + C C28 1.0 0.31446164231554996 0.007630284716796648 0.232438643034948 1.0000 + C C29 1.0 0.5076342999429355 0.7324383958270526 0.3144615656936125 1.0000 + C C30 1.0 0.007634300028999009 0.2324383959625496 0.31446156476018355 1.0000 + C C31 1.0 0.00763429998380361 0.7324383954276985 0.814461564162444 1.0000 + C C32 1.0 0.5076342999961798 0.2324383962996651 0.8144615658334858 1.0000 + C C33 1.0 0.4964618803617398 0.15236732941878486 0.3476333300526161 1.0000 + C C34 1.0 0.9964618805470186 0.6523673293448277 0.34763333082433345 1.0000 + C C35 1.0 0.9964618807214338 0.1523673292121809 0.8476333301939517 1.0000 + C C36 1.0 0.4964618804616849 0.6523673289088732 0.847633330635179 1.0000 + C C37 1.0 0.6855380436298784 0.7324387075390815 0.492368419117371 1.0000 + C C38 1.0 0.18553804294943577 0.23243870813341116 0.4923684190802881 1.0000 + C C39 1.0 0.18553804292144493 0.732438708501106 0.992368419118281 1.0000 + C C40 1.0 0.6855380434621873 0.23243870714933018 0.9923684190792055 1.0000 + C C41 1.0 0.0035398536588921435 0.34763210794779076 0.3476327039158274 1.0000 + C C42 1.0 0.5035398533383534 0.847632108191094 0.34763270493553083 1.0000 + C C43 1.0 0.5035398534254332 0.34763210914425346 0.8476327045798688 1.0000 + C C44 1.0 0.003539853882212096 0.8476321074785164 0.8476327032563333 1.0000 + C C45 1.0 0.49236946492667827 0.6855387861978021 0.7324391176621768 1.0000 + C C46 1.0 0.992369464898869 0.18553878641132596 0.7324391178940205 1.0000 + C C47 1.0 0.9923694648717698 0.6855387860980607 0.23243911747443002 1.0000 + C C48 1.0 0.49236946500001416 0.18553878739696233 0.23243911662239994 1.0000 + C C49 1.0 0.347633539814977 0.15236668937252598 0.49646130312081416 1.0000 + C C50 1.0 0.8476335411555952 0.6523666893718463 0.4964613030468 1.0000 + C C51 1.0 0.8476335412806171 0.1523666892599995 0.9964613030897548 1.0000 + C C52 1.0 0.3476335399762477 0.6523666899090543 0.9964613031071449 1.0000 + C C53 1.0 0.20270215292986954 0.2972965233399168 0.4929410256120467 1.0000 + C C54 1.0 0.7027021532246968 0.797296522943487 0.49294102564720654 1.0000 + C C55 1.0 0.7027021534457433 0.2972965224704275 0.9929410256400926 1.0000 + C C56 1.0 0.2027021529205837 0.7972965235182919 0.992941025631342 1.0000 + C C57 1.0 0.4923695248007263 0.26756043222450837 0.314461990396185 1.0000 + C C58 1.0 0.9923695246835947 0.7675604314007838 0.31446199207558084 1.0000 + C C59 1.0 0.9923695246721654 0.2675604313863304 0.8144619918511771 1.0000 + C C60 1.0 0.49236952474133033 0.7675604312967994 0.8144619916650361 1.0000 + C C61 1.0 0.7324388333010236 0.5076302770312852 0.3144613484096388 1.0000 + C C62 1.0 0.2324388329461634 0.007630277060253357 0.3144613480341622 1.0000 + C C63 1.0 0.2324388321872991 0.5076302770817851 0.8144613477977586 1.0000 + C C64 1.0 0.7324388322549267 0.0076302770580538 0.8144613477213172 1.0000 + C C65 1.0 0.007060464466163457 0.20270184715384051 0.20270243416640432 1.0000 + C C66 1.0 0.5070604642620571 0.7027018475809306 0.20270243432615986 1.0000 + C C67 1.0 0.5070604643624278 0.20270184720166376 0.7027024339787207 1.0000 + C C68 1.0 0.0070604644309124245 0.702701846939133 0.702702433940405 1.0000 + C C69 1.0 0.15236726059280492 0.3476322056528913 0.49646106120011135 1.0000 + C C70 1.0 0.6523672604855055 0.847632205436584 0.49646106121588157 1.0000 + C C71 1.0 0.6523672613687572 0.3476322051029775 0.9964610613546775 1.0000 + C C72 1.0 0.152367260530405 0.8476322058088896 0.9964610611796052 1.0000 + C C73 1.0 0.2972976633655442 0.4929407394584149 0.20270186036256804 1.0000 + C C74 1.0 0.7972976637869255 0.9929407393161475 0.20270186032731302 1.0000 + C C75 1.0 0.7972976637298841 0.4929407392506029 0.7027018596361232 1.0000 + C C76 1.0 0.2972976646404002 0.9929407394636137 0.7027018594679864 1.0000 + C C77 1.0 0.2027029618733364 0.49294095540445787 0.2972971287940616 1.0000 + C C78 1.0 0.7027029626357061 0.9929409553822814 0.2972971282254491 1.0000 + C C79 1.0 0.7027029626893004 0.49294095539379096 0.7972971285635482 1.0000 + C C80 1.0 0.20270296256774276 0.992940955484689 0.7972971284940856 1.0000 + C C81 1.0 0.4964618281210894 0.34763321017817056 0.15236737140759918 1.0000 + C C82 1.0 0.9964618283741274 0.8476332091030098 0.1523673728456226 1.0000 + C C83 1.0 0.9964618282405397 0.3476332090260674 0.6523673727201089 1.0000 + C C84 1.0 0.49646182823768936 0.8476332092200238 0.652367372150567 1.0000 + C C85 1.0 0.49294224924716673 0.20270203958799335 0.2972970371965809 1.0000 + C C86 1.0 0.9929422490940779 0.7027020387561043 0.29729703794440354 1.0000 + C C87 1.0 0.9929422490826704 0.202702039238282 0.7972970384049313 1.0000 + C C88 1.0 0.49294224919295143 0.7027020385743994 0.7972970381878761 1.0000 + C C89 1.0 0.29729702375948747 0.007057228932703735 0.29729714429734266 1.0000 + C C90 1.0 0.7972970243395927 0.5070572289671749 0.29729714427083304 1.0000 + C C91 1.0 0.7972970228709455 0.0070572289891874295 0.7972971433238255 1.0000 + C C92 1.0 0.297297023429938 0.5070572290093313 0.7972971437064944 1.0000 + C C93 1.0 0.15236778328766754 0.4964609953235977 0.34763187442759214 1.0000 + C C94 1.0 0.6523677843157898 0.9964609951346088 0.34763187426104936 1.0000 + C C95 1.0 0.6523677837655085 0.49646099532423127 0.8476318741436312 1.0000 + C C96 1.0 0.15236778406096826 0.9964609953713969 0.8476318739493666 1.0000 + C C97 1.0 0.7324411149598298 0.3144606927211282 0.5076343160090644 1.0000 + C C98 1.0 0.2324411148663336 0.8144606925108118 0.5076343159970166 1.0000 + C C99 1.0 0.23244111476728807 0.3144606926891232 0.007634316030778665 1.0000 + C C100 1.0 0.7324411142064471 0.8144606926505595 0.007634316040306142 1.0000 + C C101 1.0 0.2972964869651587 0.2027010500092738 0.4929410651682526 1.0000 + C C102 1.0 0.7972964874438843 0.7027010492764276 0.49294106524333065 1.0000 + C C103 1.0 0.7972964875824258 0.20270104915046513 0.9929410652018995 1.0000 + C C104 1.0 0.2972964865245853 0.7027010503418174 0.99294106532402 1.0000 + C C105 1.0 0.26756023463991546 0.5076302340259141 0.6855380444754731 1.0000 + C C106 1.0 0.7675602342404017 0.007630234005141438 0.6855380441651421 1.0000 + C C107 1.0 0.7675602354604292 0.5076302340311272 0.1855380452629867 1.0000 + C C108 1.0 0.2675602351871931 0.007630234020464954 0.18553804496692441 1.0000 + C C109 1.0 0.31446252945468867 0.4923667414228499 0.2675607100335999 1.0000 + C C110 1.0 0.8144625305255072 0.9923667413522588 0.2675607099205974 1.0000 + C C111 1.0 0.8144625297655337 0.49236674133068076 0.7675607094456943 1.0000 + C C112 1.0 0.31446253004546587 0.9923667415163561 0.7675607091713516 1.0000 + C C113 1.0 0.49236940993926337 0.732439081934808 0.6855386444967256 1.0000 + C C114 1.0 0.9923694099553241 0.2324390820465035 0.6855386441468371 1.0000 + C C115 1.0 0.9923694099310338 0.7324390813562998 0.18553864420426602 1.0000 + C C116 1.0 0.4923694100774646 0.2324390833587644 0.18553864318688545 1.0000 + C C117 1.0 0.6855380597539662 0.5076302319295609 0.26756008584295027 1.0000 + C C118 1.0 0.1855380593151017 0.007630231933308462 0.26756008508539253 1.0000 + C C119 1.0 0.18553805886468094 0.5076302319385095 0.7675600849043215 1.0000 + C C120 1.0 0.6855380589728775 0.007630231920884916 0.7675600849379777 1.0000 + C C121 1.0 0.4923694586495929 0.3144621064140868 0.2675603264335994 1.0000 + C C122 1.0 0.9923694585470271 0.8144621048182487 0.26756032784509504 1.0000 + C C123 1.0 0.9923694585720501 0.3144621045146812 0.7675603271870504 1.0000 + C C124 1.0 0.49236945856807696 0.8144621050845969 0.7675603275555877 1.0000 + C C125 1.0 0.3144626909200676 0.7324376188651984 0.5076342969626927 1.0000 + C C126 1.0 0.8144626907693098 0.23243761946850955 0.5076342969333777 1.0000 + C C127 1.0 0.8144626900702148 0.7324376190134637 0.007634296957788348 1.0000 + C C128 1.0 0.314462690315031 0.23243761949357797 0.007634296946681636 1.0000 + C C129 1.0 0.7324386606545181 0.685538109582778 0.49236684096618644 1.0000 + C C130 1.0 0.23243865971463745 0.18553811019462055 0.49236684087395516 1.0000 + C C131 1.0 0.2324386602087629 0.6855381106316929 0.9923668409659888 1.0000 + C C132 1.0 0.7324386603771867 0.18553810939662418 0.9923668409187724 1.0000 + C C133 1.0 0.007058715425991213 0.2972960658318563 0.2972970464004521 1.0000 + C C134 1.0 0.5070587153240981 0.7972960663744673 0.2972970471650345 1.0000 + C C135 1.0 0.5070587154311356 0.29729606624958316 0.7972970474735187 1.0000 + C C136 1.0 0.007058715479723255 0.797296065298723 0.7972970458846433 1.0000 + C C137 1.0 0.20270282675466642 0.2027020585570951 0.007060070295435333 1.0000 + C C138 1.0 0.7027028258930176 0.7027020580746678 0.007060070245110806 1.0000 + C C139 1.0 0.7027028262957795 0.20270205860677054 0.5070600702098799 1.0000 + C C140 1.0 0.2027028258541521 0.7027020584194553 0.5070600703013854 1.0000 + C C141 1.0 0.26756078203319383 0.6855380696722144 0.5076341895098448 1.0000 + C C142 1.0 0.7675607821982141 0.1855380695134198 0.5076341894610332 1.0000 + C C143 1.0 0.7675607815399029 0.685538070131772 0.007634189476614029 1.0000 + C C144 1.0 0.26756078222829005 0.18553806953496899 0.007634189498183441 1.0000 + C C145 1.0 0.6855392388427518 0.49236833467532576 0.7324394086885881 1.0000 + C C146 1.0 0.18553923904289274 0.9923683348377635 0.7324394089682603 1.0000 + C C147 1.0 0.1855392385629668 0.4923683347588101 0.2324394093061596 1.0000 + C C148 1.0 0.6855392391556983 0.9923683347153202 0.23243940898661805 1.0000 + C C149 1.0 0.1523671758741909 0.152368051546123 0.0035394971200821165 1.0000 + C C150 1.0 0.6523671756461846 0.6523680514699178 0.0035394970663564936 1.0000 + C C151 1.0 0.6523671760947409 0.1523680510964073 0.5035394973271823 1.0000 + C C152 1.0 0.15236717532679084 0.6523680520364729 0.5035394972254529 1.0000 + C C153 1.0 0.26756028600543463 0.3144609897917225 0.49236844656085577 1.0000 + C C154 1.0 0.7675602858845013 0.8144609882786963 0.49236844664744295 1.0000 + C C155 1.0 0.767560286370607 0.3144609889178284 0.9923684465747928 1.0000 + C C156 1.0 0.2675602852981592 0.814460988933885 0.9923684465842366 1.0000 + C C157 1.0 0.29729890971626 0.2972960330345464 0.007060507874707409 1.0000 + C C158 1.0 0.7972989091107514 0.7972960327146456 0.007060507853374555 1.0000 + C C159 1.0 0.7972989101283576 0.29729603294357354 0.507060507857695 1.0000 + C C160 1.0 0.2972989098520191 0.7972960325901638 0.5070605077716258 1.0000 + C C161 1.0 0.5076311577527994 0.31446091043735525 0.7324392135501551 1.0000 + C C162 1.0 0.007631157767607638 0.8144609094444809 0.7324392123473926 1.0000 + C C163 1.0 0.007631157814281594 0.31446091006020394 0.2324392127678625 1.0000 + C C164 1.0 0.507631157702688 0.8144609103485478 0.23243921313479926 1.0000 + C C165 1.0 0.5076327971596404 0.26755994079499723 0.6855377459923309 1.0000 + C C166 1.0 0.0076327971635971464 0.7675599403080398 0.6855377454679841 1.0000 + C C167 1.0 0.007632797243187988 0.26755994064415006 0.18553774591709238 1.0000 + C C168 1.0 0.5076327971036935 0.7675599413294764 0.18553774620407837 1.0000 + C C169 1.0 0.732439807905355 0.49236671388426756 0.685538641619221 1.0000 + C C170 1.0 0.23243980867453767 0.9923667140873517 0.6855386420356908 1.0000 + C C171 1.0 0.23243980755754937 0.49236671400954435 0.18553864247396082 1.0000 + C C172 1.0 0.7324398079482022 0.9923667139473966 0.18553864166151354 1.0000 + C C173 1.0 0.003540270226786423 0.15236687864196422 0.152367036809814 1.0000 + C C174 1.0 0.5035402700306638 0.6523668788968986 0.15236703738207832 1.0000 + C C175 1.0 0.5035402700397135 0.15236687787208364 0.6523670369789222 1.0000 + C C176 1.0 0.003540270132354654 0.6523668785477564 0.652367036354185 1.0000 + C C177 1.0 0.20270248791634085 0.007056974599227921 0.20270221134994365 1.0000 + C C178 1.0 0.7027024876563653 0.5070569746589181 0.2027022111086559 1.0000 + C C179 1.0 0.7027024867616294 0.007056974608870619 0.7027022104371734 1.0000 + C C180 1.0 0.20270248704214108 0.5070569746725203 0.7027022105169626 1.0000 + C C181 1.0 0.3476348967339555 0.3476316002886793 0.0035400914616567107 1.0000 + C C182 1.0 0.8476348970575427 0.8476315996067714 0.0035400913641581203 1.0000 + C C183 1.0 0.8476348967140963 0.34763160046421043 0.5035400913549626 1.0000 + C C184 1.0 0.34763489689406973 0.8476315999275267 0.5035400913095021 1.0000 + C C185 1.0 0.5076347652083233 0.685537637177473 0.26756049531740683 1.0000 + C C186 1.0 0.0076347653261352715 0.18553763641175414 0.26756049499452855 1.0000 + C C187 1.0 0.0076347652522577485 0.6855376363074966 0.7675604946561917 1.0000 + C C188 1.0 0.5076347652626294 0.1855376366763453 0.7675604953020314 1.0000 + C C189 1.0 0.6855390360802983 0.2675601084489536 0.5076342217550384 1.0000 + C C190 1.0 0.18553903608626443 0.767560108620043 0.5076342217835406 1.0000 + C C191 1.0 0.18553903648695835 0.26756010830145516 0.007634221803686532 1.0000 + C C192 1.0 0.6855390362641046 0.7675601082687985 0.007634221784576379 1.0000 + H H1 1.0 0.507482361905204 0.7195281145599726 0.36511464259266374 1.0000 + H H2 1.0 0.007482361905107036 0.21952811467251818 0.3651146412034519 1.0000 + H H3 1.0 0.00748236187355732 0.7195281143489555 0.8651146408977276 1.0000 + H H4 1.0 0.5074823619141876 0.21952811446937698 0.8651146424956934 1.0000 + H H5 1.0 0.49252250588480145 0.7195296802024831 0.6348863706738505 1.0000 + H H6 1.0 0.9925225059102741 0.21952967999440687 0.6348863703385589 1.0000 + H H7 1.0 0.9925225058755242 0.7195296800771455 0.13488636991480843 1.0000 + H H8 1.0 0.49252250594266134 0.21952968102978218 0.13488636928692166 1.0000 + H H9 1.0 0.593967398046825 0.5939671398821272 0.9060316718350782 1.0000 + H H10 1.0 0.09396739942552168 0.09396714091985996 0.9060316719472733 1.0000 + H H11 1.0 0.093967398528676 0.5939671407225182 0.4060316718886466 1.0000 + H H12 1.0 0.5939673981504018 0.09396713970171892 0.4060316723751076 1.0000 + H H13 1.0 0.2804736615371774 0.6348862003272824 0.507481449127496 1.0000 + H H14 1.0 0.7804736623376465 0.13488620065534462 0.5074814491006485 1.0000 + H H15 1.0 0.7804736623494234 0.6348862010185986 0.007481449137071027 1.0000 + H H16 1.0 0.28047366224261444 0.13488620059386336 0.0074814491587681525 1.0000 + H H17 1.0 0.280474443982763 0.49252159051833944 0.36511490267040564 1.0000 + H H18 1.0 0.7804744443761786 0.9925215905074056 0.36511490225215776 1.0000 + H H19 1.0 0.7804744450784671 0.4925215904841318 0.8651149025289904 1.0000 + H H20 1.0 0.28047444461330834 0.9925215905481961 0.8651149021096344 1.0000 + H H21 1.0 0.6348862936274692 0.5074769312290329 0.28047473299923564 1.0000 + H H22 1.0 0.13488629370025795 0.007476931256160277 0.28047473265161166 1.0000 + H H23 1.0 0.13488629260718488 0.5074769312331147 0.7804747322605591 1.0000 + H H24 1.0 0.634886292847466 0.007476931215193011 0.7804747322376115 1.0000 + H H25 1.0 0.5074758862877805 0.3651144440601608 0.7195294929086455 1.0000 + H H26 1.0 0.007475886269390039 0.8651144433120962 0.7195294916513819 1.0000 + H H27 1.0 0.007475886298352572 0.36511444366971946 0.21952949197817775 1.0000 + H H28 1.0 0.5074758862758795 0.8651144447399622 0.21952949264850136 1.0000 + H H29 1.0 0.3651156358004006 0.5074770183082636 0.719529461247845 1.0000 + H H30 1.0 0.8651156350213481 0.007477018265597123 0.7195294619296458 1.0000 + H H31 1.0 0.8651156368511119 0.5074770182680453 0.21952946239716076 1.0000 + H H32 1.0 0.36511563540795844 0.007477018266298842 0.21952946220144143 1.0000 + H H33 1.0 0.49252249828867695 0.6348866054588465 0.719529419789696 1.0000 + H H34 1.0 0.9925224982893845 0.13488660604128036 0.7195294200325185 1.0000 + H H35 1.0 0.9925224983033979 0.6348866049646409 0.21952941984988236 1.0000 + H H36 1.0 0.49252249827132955 0.13488660672806663 0.21952941860214906 1.0000 + H H37 1.0 0.9060332756193378 0.5939662000141928 0.5939679481292465 1.0000 + H H38 1.0 0.40603327673497375 0.09396619983706475 0.5939679480352387 1.0000 + H H39 1.0 0.40603327630893066 0.593966199402871 0.09396794775155126 1.0000 + H H40 1.0 0.9060332763402159 0.09396620029509163 0.09396794832150798 1.0000 + H H41 1.0 0.6348868652053037 0.2804754924199829 0.5074814913909536 1.0000 + H H42 1.0 0.13488686515372814 0.7804754921821507 0.5074814914452391 1.0000 + H H43 1.0 0.13488686550638718 0.28047549167982605 0.007481491504817922 1.0000 + H H44 1.0 0.6348868655252041 0.7804754918081047 0.007481491416064618 1.0000 + H H45 1.0 0.6348877256688025 0.49252153000924936 0.71952804197156 1.0000 + H H46 1.0 0.13488772596167695 0.9925215300315372 0.7195280418694424 1.0000 + H H47 1.0 0.134887725322546 0.49252153001416654 0.21952804253068806 1.0000 + H H48 1.0 0.6348877259203075 0.9925215300068103 0.2195280422149635 1.0000 + H H49 1.0 0.7195300384339125 0.3651145689973047 0.5074815514306404 1.0000 + H H50 1.0 0.21953003804977556 0.8651145683975534 0.5074815514472764 1.0000 + H H51 1.0 0.2195300374724291 0.3651145686519615 0.007481551481389392 1.0000 + H H52 1.0 0.7195300380256553 0.8651145690645761 0.00748155145733698 1.0000 + H H53 1.0 0.906034030171042 0.9060335948385773 0.906032866412659 1.0000 + H H54 1.0 0.4060340301066792 0.4060335946011302 0.9060328670449022 1.0000 + H H55 1.0 0.40603402920677667 0.9060335940954848 0.4060328668879772 1.0000 + H H56 1.0 0.9060340303930194 0.406033594727591 0.4060328670138574 1.0000 + H H57 1.0 0.492522537146193 0.365115879686441 0.2804747282003945 1.0000 + H H58 1.0 0.9925225371735447 0.8651158782145942 0.28047472843766 1.0000 + H H59 1.0 0.9925225371997284 0.365115877673865 0.7804747279052575 1.0000 + H H60 1.0 0.49252253712835525 0.8651158781562165 0.7804747289022206 1.0000 + H H61 1.0 0.5074817928477956 0.6348856721925348 0.28047405282297777 1.0000 + H H62 1.0 0.007481792891670094 0.1348856722424801 0.28047405292415944 1.0000 + H H63 1.0 0.00748179285940338 0.6348856716184821 0.7804740527611906 1.0000 + H H64 1.0 0.5074817928564211 0.13488567251157424 0.7804740528557421 1.0000 + H H65 1.0 0.7195289306964645 0.6348855019497454 0.49251942937379417 1.0000 + H H66 1.0 0.21952893048065633 0.13488550267651078 0.49251942935089615 1.0000 + H H67 1.0 0.21952893048229272 0.6348855031720283 0.9925194293757423 1.0000 + H H68 1.0 0.7195289312106236 0.134885501520442 0.9925194293717376 1.0000 + H H69 1.0 0.3651156611935722 0.49251946241501926 0.2804747174296683 1.0000 + H H70 1.0 0.8651156623477388 0.992519462403666 0.28047471704802435 1.0000 + H H71 1.0 0.8651156617783221 0.49251946239241623 0.7804747163081184 1.0000 + H H72 1.0 0.3651156615100329 0.9925194624722583 0.7804747171405689 1.0000 + H H73 1.0 0.5939671799573178 0.906032802420826 0.5939685281184269 1.0000 + H H74 1.0 0.09396718127516615 0.40603280255381186 0.5939685273982447 1.0000 + H H75 1.0 0.0939671813527036 0.9060328023403385 0.0939685278473687 1.0000 + H H76 1.0 0.5939671811225838 0.4060328023128972 0.09396852760931228 1.0000 + H H77 1.0 0.4925225841204923 0.28047473598691525 0.3651156821234078 1.0000 + H H78 1.0 0.9925225841995096 0.7804747354810384 0.3651156835632626 1.0000 + H H79 1.0 0.9925225841936047 0.28047473605501017 0.8651156831399378 1.0000 + H H80 1.0 0.49252258415146505 0.7804747349915179 0.8651156830723774 1.0000 + H H81 1.0 0.3651155142604194 0.7195269316905218 0.5074815326261104 1.0000 + H H82 1.0 0.8651155145030003 0.21952693261296236 0.5074815325718322 1.0000 + H H83 1.0 0.86511551385688 0.7195269325304842 0.007481532569786789 1.0000 + H H84 1.0 0.365115513649857 0.21952693252370678 0.007481532634205912 1.0000 + H H85 1.0 0.7195296107841135 0.5074770041441399 0.36511554133528834 1.0000 + H H86 1.0 0.21952961013808137 0.007477004143505957 0.36511554011972275 1.0000 + H H87 1.0 0.21952960970455643 0.5074770041850845 0.8651155406946955 1.0000 + H H88 1.0 0.7195296098061302 0.007477004159916962 0.865115540477573 1.0000 + H H89 1.0 0.2804747473392677 0.5074769151254821 0.6348860477670105 1.0000 + H H90 1.0 0.7804747477915045 0.007476915093799267 0.6348860471818181 1.0000 + H H91 1.0 0.7804747482399564 0.5074769151426566 0.13488604815585628 1.0000 + H H92 1.0 0.28047474855829063 0.007476915104786772 0.1348860486837014 1.0000 + H H93 1.0 0.5074814837616676 0.28047319906717033 0.6348850645869955 1.0000 + H H94 1.0 0.007481483754997885 0.7804731982234268 0.634885063821148 1.0000 + H H95 1.0 0.0074814838053682935 0.2804731985108967 0.1348850643895526 1.0000 + H H96 1.0 0.5074814837349043 0.7804731988871951 0.13488506414362 1.0000 + H H97 1.0 0.719528940799678 0.49251943722968383 0.634885910600487 1.0000 + H H98 1.0 0.21952894044781385 0.9925194372560565 0.6348859117285132 1.0000 + H H99 1.0 0.21952894013526678 0.4925194372581265 0.13488591178642914 1.0000 + H H100 1.0 0.7195289406251316 0.9925194372394553 0.1348859107474854 1.0000 + H H101 1.0 0.28047473792242084 0.3651145045255434 0.49252156384756485 1.0000 + H H102 1.0 0.780474737880215 0.8651145031899402 0.49252156389517104 1.0000 + H H103 1.0 0.78047473836267 0.3651145034583325 0.9925215638986876 1.0000 + H H104 1.0 0.28047473746384594 0.8651145036593701 0.9925215638925641 1.0000 + H H105 1.0 0.36511586800852336 0.2804731004142747 0.49251946193939566 1.0000 + H H106 1.0 0.8651158684038558 0.7804731004420344 0.4925194619642415 1.0000 + H H107 1.0 0.8651158684673013 0.280473099913991 0.9925194619892971 1.0000 + H H108 1.0 0.365115867860411 0.780473100848061 0.9925194619604106 1.0000 + H H109 1.0 0.6348863381850577 0.7195283132621648 0.4925215637383919 1.0000 + H H110 1.0 0.13488633756932228 0.21952831357548433 0.49252156373282574 1.0000 + H H111 1.0 0.1348863381543439 0.7195283136603124 0.9925215637667693 1.0000 + H H112 1.0 0.6348863380543175 0.21952831257373265 0.9925215637428899 1.0000 + O O1 1.0 0.4057596594090323 0.17170700594888197 0.49863366023022077 1.0000 + O O2 1.0 0.9057596599280009 0.6717070059337735 0.4986336603657131 1.0000 + O O3 1.0 0.90575966024788 0.17170700632067273 0.9986336602625809 1.0000 + O O4 1.0 0.40575965880538056 0.6717070065086678 0.9986336603592073 1.0000 + O O5 1.0 0.5671474854562567 0.9328522960925261 0.5671478738781857 1.0000 + O O6 1.0 0.06714748607157103 0.43285229666316627 0.5671478737967556 1.0000 + O O7 1.0 0.06714748654094209 0.9328522963120742 0.06714787408785583 1.0000 + O O8 1.0 0.5671474859204002 0.43285229615332355 0.06714787384453286 1.0000 + O O9 1.0 0.49863490767775154 0.40575999001773017 0.17170783953059962 1.0000 + O O10 1.0 0.9986349078517855 0.9057599893228341 0.17170784152143287 1.0000 + O O11 1.0 0.9986349077243555 0.40575998945020664 0.6717078414260885 1.0000 + O O12 1.0 0.4986349076064401 0.905759989902257 0.6717078403079577 1.0000 + O O13 1.0 0.17170687826746772 0.5942409719945437 0.5013660960208796 1.0000 + O O14 1.0 0.6717068777878219 0.09424097164169003 0.5013660966205975 1.0000 + O O15 1.0 0.6717068785061031 0.5942409714738057 0.0013660960759251065 1.0000 + O O16 1.0 0.17170687813277072 0.09424097194807136 0.001366096024748131 1.0000 + O O17 1.0 0.4057604145588862 0.4986337221401735 0.17170784837282907 1.0000 + O O18 1.0 0.9057604153954311 0.9986337227518878 0.17170784836338948 1.0000 + O O19 1.0 0.9057604152990668 0.49863372285110846 0.6717078484965829 1.0000 + O O20 1.0 0.4057604159349177 0.9986337224250719 0.6717078477023048 1.0000 + O O21 1.0 0.44838244169621944 0.448381481724484 0.051618063345051646 1.0000 + O O22 1.0 0.9483824425971094 0.9483814831526777 0.051618062524883934 1.0000 + O O23 1.0 0.9483824424550319 0.4483814839031802 0.5516180628213625 1.0000 + O O24 1.0 0.4483824417035137 0.948381482091915 0.5516180625007014 1.0000 + O O25 1.0 0.49863503431999906 0.8282937029516986 0.594241338858664 1.0000 + O O26 1.0 0.9986350341206109 0.32829370286226883 0.5942413387214396 1.0000 + O O27 1.0 0.9986350342874512 0.8282937019584142 0.09424133952971663 1.0000 + O O28 1.0 0.49863503406838083 0.3282937028386938 0.09424133771314482 1.0000 + O O29 1.0 0.17170795848847065 0.40575972311105285 0.49863488008951834 1.0000 + O O30 1.0 0.6717079586054319 0.9057597233586214 0.49863488073188633 1.0000 + O O31 1.0 0.6717079588718385 0.4057597230222802 0.9986348803890938 1.0000 + O O32 1.0 0.17170795886225101 0.9057597236733066 0.9986348801622178 1.0000 + O O33 1.0 0.5013666523752816 0.17170642455735455 0.5942403969196642 1.0000 + O O34 1.0 0.0013666522461639277 0.6717064253089051 0.5942403970999458 1.0000 + O O35 1.0 0.0013666525596956619 0.17170642629409386 0.0942403971714612 1.0000 + O O36 1.0 0.5013666524286042 0.6717064256981554 0.09424039784007815 1.0000 + O O37 1.0 0.051616795984004656 0.05161612681216381 0.05161638183146666 1.0000 + O O38 1.0 0.5516167953247374 0.5516161256932156 0.05161638240486549 1.0000 + O O39 1.0 0.5516167956646268 0.05161612602613612 0.5516163824061652 1.0000 + O O40 1.0 0.051616795220151085 0.5516161266334098 0.5516163825924028 1.0000 + O O41 1.0 0.8282932569543641 0.5942396589940595 0.4986340355716918 1.0000 + O O42 1.0 0.3282932563859853 0.09423965920005958 0.49863403588293753 1.0000 + O O43 1.0 0.3282932555452762 0.5942396596156612 0.9986340355726498 1.0000 + O O44 1.0 0.82829325688075 0.09423965910531225 0.9986340357441298 1.0000 + O O45 1.0 0.5013669249213095 0.4057586047117767 0.8282925143624178 1.0000 + O O46 1.0 0.0013669259276652065 0.9057586038772474 0.828292513075206 1.0000 + O O47 1.0 0.0013669254605448906 0.4057586042740679 0.32829251339559945 1.0000 + O O48 1.0 0.5013669247205067 0.9057586048600051 0.3282925135296058 1.0000 + O O49 1.0 0.17170654026619525 0.5013668506174042 0.5942405713114542 1.0000 + O O50 1.0 0.6717065391852852 0.001366850029388147 0.5942405716691472 1.0000 + O O51 1.0 0.6717065395898963 0.5013668503703504 0.09424057154862726 1.0000 + O O52 1.0 0.17170654115342798 0.0013668504821187793 0.09424057204931029 1.0000 + O O53 1.0 0.5942408768693509 0.17170727679466638 0.5013657907693271 1.0000 + O O54 1.0 0.09424087678548317 0.6717072767836996 0.5013657909244726 1.0000 + O O55 1.0 0.09424087741432428 0.17170727706898112 0.0013657905715411072 1.0000 + O O56 1.0 0.5942408774727083 0.6717072770220124 0.0013657907167568155 1.0000 + O O57 1.0 0.5671476136501732 0.5671472986130308 0.932851821056124 1.0000 + O O58 1.0 0.06714761430317097 0.06714729915750244 0.9328518199743893 1.0000 + O O59 1.0 0.06714761346127185 0.5671472993210455 0.4328518203435868 1.0000 + O O60 1.0 0.5671476131281994 0.06714729825719394 0.43285182063625416 1.0000 + O O61 1.0 0.4986348198579967 0.17170766079662142 0.4057601060350479 1.0000 + O O62 1.0 0.9986348195500682 0.6717076614263559 0.4057601060055147 1.0000 + O O63 1.0 0.9986348197947134 0.171707661376602 0.9057601060964786 1.0000 + O O64 1.0 0.49863481978555635 0.671707660819662 0.9057601061898594 1.0000 + O O65 1.0 0.8282938497994483 0.4057586629366377 0.5013665331464658 1.0000 + O O66 1.0 0.3282938493090962 0.9057586621488262 0.5013665334265578 1.0000 + O O67 1.0 0.32829385054319055 0.40575866255431203 0.001366533359608109 1.0000 + O O68 1.0 0.828293849616312 0.9057586624725611 0.0013665333984443227 1.0000 + O O69 1.0 0.17170824837294663 0.4986350074028268 0.40575945095690236 1.0000 + O O70 1.0 0.6717082479061066 0.9986350069923565 0.4057594509791619 1.0000 + O O71 1.0 0.6717082480184283 0.49863500741741873 0.9057594515175494 1.0000 + O O72 1.0 0.17170824941883725 0.9986350071856711 0.9057594510507502 1.0000 + O O73 1.0 0.9328539472974703 0.9328529652263832 0.9328530240534879 1.0000 + O O74 1.0 0.43285394666014293 0.43285296501547665 0.9328530254362737 1.0000 + O O75 1.0 0.4328539463288067 0.9328529645329654 0.43285302418519117 1.0000 + O O76 1.0 0.9328539475450458 0.4328529653404226 0.432853024405596 1.0000 + O O77 1.0 0.5942411124708153 0.5013665304239393 0.17170596698469132 1.0000 + O O78 1.0 0.09424111334544379 0.0013665308225805012 0.17170596742630007 1.0000 + O O79 1.0 0.09424111257546149 0.5013665309027894 0.6717059667560542 1.0000 + O O80 1.0 0.5942411111608095 0.0013665306547480291 0.6717059661568086 1.0000 + O O81 1.0 0.5013672257938212 0.8282919795112416 0.40575909777896435 1.0000 + O O82 1.0 0.0013672258001872916 0.32829197921519526 0.4057590973856018 1.0000 + O O83 1.0 0.0013672261634670555 0.828291978827777 0.9057590967868611 1.0000 + O O84 1.0 0.5013672256681581 0.32829198028204126 0.9057590983371347 1.0000 + O O85 1.0 0.051617481243971565 0.44838280684047804 0.44838273374516585 1.0000 + O O86 1.0 0.5516174800298992 0.948382806851109 0.44838273391287253 1.0000 + O O87 1.0 0.5516174803045197 0.4483828063443052 0.9483827349758958 1.0000 + O O88 1.0 0.05161748175927818 0.9483828068711048 0.9483827329763432 1.0000 + O O89 1.0 0.828293914099127 0.49863347532602703 0.5942403980575113 1.0000 + O O90 1.0 0.32829391393445895 0.9986334748539041 0.5942403982228809 1.0000 + O O91 1.0 0.328293913056081 0.4986334747391749 0.09424039872637398 1.0000 + O O92 1.0 0.8282939132494436 0.9986334753123491 0.0942403988066646 1.0000 + O O93 1.0 0.49863492053472436 0.5942411108411463 0.8282938187931094 1.0000 + O O94 1.0 0.9986349211875809 0.09424111161832568 0.8282938182579648 1.0000 + O O95 1.0 0.9986349207056776 0.5942411109703404 0.32829381888660575 1.0000 + O O96 1.0 0.49863492007712523 0.0942411112711386 0.3282938187082929 1.0000 + O O97 1.0 0.5942421028311045 0.4986349313591475 0.8282931319437642 1.0000 + O O98 1.0 0.09424210355778692 0.9986349316590565 0.8282931313139166 1.0000 + O O99 1.0 0.09424210184785371 0.4986349314766476 0.32829313227764784 1.0000 + O O100 1.0 0.5942421025651506 0.998634931009228 0.32829313193617193 1.0000 + O O101 1.0 0.5013666306264202 0.5942404231392944 0.17170664773733607 1.0000 + O O102 1.0 0.00136663100071301 0.09424042365696278 0.17170664745751657 1.0000 + O O103 1.0 0.0013666306324613198 0.5942404229138148 0.6717066467408356 1.0000 + O O104 1.0 0.5013666303378804 0.09424042261088952 0.6717066466667343 1.0000 + O O105 1.0 0.5942415595960656 0.828293542585867 0.49863526382424905 1.0000 + O O106 1.0 0.0942415592517309 0.3282935417891218 0.4986352639683901 1.0000 + O O107 1.0 0.09424155984907426 0.8282935420569137 0.9986352637972207 1.0000 + O O108 1.0 0.5942415600150038 0.32829354159390634 0.9986352641325831 1.0000 + O O109 1.0 0.9328527478565679 0.5671462881806754 0.5671475304898399 1.0000 + O O110 1.0 0.4328527478435734 0.06714628680682432 0.5671475301944756 1.0000 + O O111 1.0 0.4328527477387564 0.5671462866192033 0.06714753029803236 1.0000 + O O112 1.0 0.9328527481977715 0.0671462879192553 0.0671475303890521 1.0000 + O O113 1.0 0.4057605953808941 0.8282911994858136 0.5013663323437716 1.0000 + O O114 1.0 0.9057605956859196 0.3282911992996117 0.5013663325263503 1.0000 + O O115 1.0 0.9057605953864668 0.82829119840853 0.001366332627132368 1.0000 + O O116 1.0 0.40576059550595983 0.3282911993615423 0.001366332726230538 1.0000 + O O117 1.0 0.44838315540399215 0.051616187044494784 0.44838282660077156 1.0000 + O O118 1.0 0.948383156077422 0.551616188641814 0.448382825949538 1.0000 + O O119 1.0 0.948383156547173 0.05161618813185181 0.9483828258337849 1.0000 + O O120 1.0 0.4483831552903694 0.5516161876847487 0.9483828264892366 1.0000 + O O121 1.0 0.40575964646741947 0.5013671682445895 0.8282923702015673 1.0000 + O O122 1.0 0.9057596457253614 0.0013671688143886505 0.8282923686478405 1.0000 + O O123 1.0 0.905759647367067 0.5013671686268689 0.32829237030703323 1.0000 + O O124 1.0 0.4057596464914172 0.001367168068206433 0.32829236982326665 1.0000 + O O125 1.0 0.8282926252481624 0.5013665665470362 0.40576004448497827 1.0000 + O O126 1.0 0.328292625408291 0.0013665661967585333 0.40576004457216414 1.0000 + O O127 1.0 0.32829262524524633 0.5013665663507253 0.9057600443126554 1.0000 + O O128 1.0 0.8282926243583855 0.0013665664307085427 0.905760043378264 1.0000 + Zr Zr1 1.0 0.5000012175437627 0.8795074318709137 0.500000259608877 1.0000 + Zr Zr2 1.0 1.2166461534978541e-06 0.3795074342742467 0.5000002614403515 1.0000 + Zr Zr3 1.0 1.2182481714719847e-06 0.8795074340016906 2.6132196090038054e-07 1.0000 + Zr Zr4 1.0 0.5000012171514016 0.37950743116385627 2.622120044535753e-07 1.0000 + Zr Zr5 1.0 0.5000008220297599 0.500000302780196 0.1204922280707487 1.0000 + Zr Zr6 1.0 8.221188612641041e-07 3.041598612128689e-07 0.12049222667033146 1.0000 + Zr Zr7 1.0 8.21891772953186e-07 0.5000003040164558 0.6204922294284734 1.0000 + Zr Zr8 1.0 0.500000821017271 3.0310637946742456e-07 0.6204922287344982 1.0000 + Zr Zr9 1.0 0.12049208320474727 0.5000007516778158 0.49999978373470355 1.0000 + Zr Zr10 1.0 0.6204920823027865 7.502005096547359e-07 0.4999997844065506 1.0000 + Zr Zr11 1.0 0.6204920806709652 0.5000007513573563 0.9999997839301616 1.0000 + Zr Zr12 1.0 0.12049208250966278 7.510428893901872e-07 0.9999997831301723 1.0000 + Zr Zr13 1.0 0.5000009554688001 0.5000003610657742 0.8795077107357129 1.0000 + Zr Zr14 1.0 9.555592677049988e-07 3.624839271962788e-07 0.8795077099221963 1.0000 + Zr Zr15 1.0 9.546905814895808e-07 0.5000003607066398 0.37950771008915585 1.0000 + Zr Zr16 1.0 0.500000953845705 3.6116001265177113e-07 0.3795077085725161 1.0000 + Zr Zr17 1.0 0.8795083829274403 0.499999720265426 0.500000443798064 1.0000 + Zr Zr18 1.0 0.37950837980446395 0.999999718445201 0.500000445608684 1.0000 + Zr Zr19 1.0 0.3795083808850828 0.49999971966704265 4.456662541260258e-07 1.0000 + Zr Zr20 1.0 0.8795083840279379 0.99999972019687 4.4516673567937736e-07 1.0000 + Zr Zr21 1.0 0.5000010176680808 0.12049139333245336 0.5000000288647707 1.0000 + Zr Zr22 1.0 1.0168768077748302e-06 0.620491395057058 0.5000000298963462 1.0000 + Zr Zr23 1.0 1.0173532481233663e-06 0.12049139271701222 2.892690788811986e-08 1.0000 + Zr Zr24 1.0 0.5000010176276867 0.6204913927659238 2.9581170028438747e-08 1.0000 diff --git a/tests/test_single_point.py b/tests/test_single_point.py index 4f46ed89..b370ed1f 100644 --- a/tests/test_single_point.py +++ b/tests/test_single_point.py @@ -2,6 +2,8 @@ import os +import pytest + from janus_core.single_point import SinglePoint @@ -10,7 +12,7 @@ def test_potential_energy(): data_path = os.path.join(os.path.dirname(__file__), "data", "benzene.xyz") single_point = SinglePoint(system=data_path) - assert single_point.get_potential_energy() == -76.0605725422795 + assert single_point.run_single_point("energy")["energy"] == -76.0605725422795 def test_single_point_kwargs(): @@ -21,4 +23,44 @@ def test_single_point_kwargs(): system=data_path, architecture="mace", model_paths=model_path ) - assert single_point.get_potential_energy() == -76.0605725422795 + assert single_point.run_single_point(["energy"])["energy"] == -76.0605725422795 + + +def test_single_point_forces(): + """Test single point forces using MACE calculator.""" + data_path = os.path.join(os.path.dirname(__file__), "data", "benzene.xyz") + model_path = os.path.join(os.path.dirname(__file__), "models", "MACE_small.model") + single_point = SinglePoint( + system=data_path, architecture="mace", model_paths=model_path + ) + + assert single_point.run_single_point(["forces"])["forces"][0, 1] == pytest.approx( + -0.0360169762840179 + ) + + +def test_single_point_stress(): + """Test single point stress using MACE calculator.""" + data_path = os.path.join(os.path.dirname(__file__), "data", "UiO66.cif") + model_path = os.path.join(os.path.dirname(__file__), "models", "MACE_small.model") + single_point = SinglePoint( + system=data_path, architecture="mace", model_paths=model_path + ) + + assert single_point.run_single_point(["stress"])["stress"][0] == pytest.approx( + -0.00415290516 + ) + + +def test_single_point_none(): + """Test single point stress using MACE calculator.""" + data_path = os.path.join(os.path.dirname(__file__), "data", "UiO66.cif") + model_path = os.path.join(os.path.dirname(__file__), "models", "MACE_small.model") + single_point = SinglePoint( + system=data_path, architecture="mace", model_paths=model_path + ) + + results = single_point.run_single_point() + for prop in ["energy", "forces", "stress"]: + assert prop in results +