From 136f297d2bcde482ed01a17433964176b2b09296 Mon Sep 17 00:00:00 2001 From: kosuke-nakano Date: Mon, 10 Jun 2024 09:19:43 +0900 Subject: [PATCH] updated a bit --- turbogenius/pyturbo/basis_set.py | 11 +++++++++++ turbogenius/pyturbo/io_fort10.py | 10 +++++++++- turbogenius/pyturbo/makefort10.py | 11 ++++++++--- turbogenius/pyturbo/pseudopotentials.py | 7 ++++++- turbogenius/pyturbo/utils/utility.py | 7 ++++++- turbogenius/trexio_to_turborvb.py | 1 + 6 files changed, 41 insertions(+), 6 deletions(-) diff --git a/turbogenius/pyturbo/basis_set.py b/turbogenius/pyturbo/basis_set.py index 0c975d4..fdbefab 100755 --- a/turbogenius/pyturbo/basis_set.py +++ b/turbogenius/pyturbo/basis_set.py @@ -117,6 +117,17 @@ def __init__( ) if not all(check_flags): + logger.error(f'-------------they should be equal-------------') + logger.error(f'len(self.exponent) = {len(self.exponent)}') + logger.error(f'len(self.coefficient) = {len(self.coefficient)}') + logger.error(f'len(self.prim_factor) = {len(self.prim_factor)}') + logger.error(f'len(self.shell_index) = {len(self.shell_index)}') + logger.error(f'-------------they should be equal-------------') + logger.error(f'len(self.nucleus_index) = {len(self.nucleus_index)}') + logger.error(f'len(self.shell_ang_mom) = {len(self.shell_ang_mom)}') + logger.error(f'len(self.shell_ang_mom_turbo_notation) = {len(self.shell_ang_mom_turbo_notation)}') + logger.error(f'self.shell_ang_mom={self.shell_ang_mom}') + logger.error(f'self.shell_ang_mom_turbo_notation={self.shell_ang_mom_turbo_notation}') raise ValueError def __str__(self) -> str: diff --git a/turbogenius/pyturbo/io_fort10.py b/turbogenius/pyturbo/io_fort10.py index c448213..083da7b 100755 --- a/turbogenius/pyturbo/io_fort10.py +++ b/turbogenius/pyturbo/io_fort10.py @@ -1637,6 +1637,8 @@ def mo_coefficient(self, new_mo_coefficient): # logger.debug(len(new_mo_coefficient)) # logger.debug(len(self.__mo_coefficient)) # logger.debug(new_mo_coefficient[0][-1]) + logger.info(f'Replacing MO coeffs (real). num = {len(new_mo_coefficient)}') + logger.info(f'num total = {np.sum([len(mos) for mos in new_mo_coefficient])}') assert len(new_mo_coefficient) == len(self.__mo_coefficient) total_num_sed = len(new_mo_coefficient) * len(new_mo_coefficient[0]) logger.debug(f"Total num sed = {total_num_sed}") @@ -1657,6 +1659,8 @@ def mo_coefficient(self, new_mo_coefficient): @mo_coefficient_imag.setter def mo_coefficient_imag(self, new_mo_coefficient_imag): self.read() + logger.info(f'Replacing MO coeffs (imag). num = {len(new_mo_coefficient_imag)}') + logger.info(f'num total = {np.sum([len(mos) for mos in new_mo_coefficient_imag])}') # logger.debug(len(new_mo_coefficient)) # logger.debug(len(self.__mo_coefficient_imag)) # logger.debug(new_mo_coefficient[0][-1]) @@ -2002,7 +2006,7 @@ def read(self): orb_type_chr = str(return_orb_type_chr(shell_ang_mom_turbo_notation.v)) - if orb_type_chr in {"s", "p", "d", "f", "g", "h", "i"}: + if orb_type_chr in {"s", "s100", "s131", "p", "p103", "p150", "d", "f", "g", "h", "i"}: contraction_flag = return_contraction_flag( shell_ang_mom_turbo_notation.v ) @@ -2027,6 +2031,10 @@ def read(self): self.__shell_index.append(shell_index) self.__exponent.append(Value()) self.__coefficient.append(Value()) + + else: + raise NotImplementedError + p = p[4 + param_num.v :] diff --git a/turbogenius/pyturbo/makefort10.py b/turbogenius/pyturbo/makefort10.py index 8dcfe42..76f1dd2 100755 --- a/turbogenius/pyturbo/makefort10.py +++ b/turbogenius/pyturbo/makefort10.py @@ -101,10 +101,10 @@ def generate_input(self, input_name: str, basis_sets_unique_element: bool = True atomic_number = self.structure.atomic_numbers[num] if self.structure.has_celldm: - logger.warning("Cartesian coord.") + #logger.warning("Cartesian coord.") x, y, z = self.structure.positions[num] else: - logger.warning("Fractional coord.") + #logger.warning("Fractional coord.") x, y, z = self.structure.positions_frac[num] # we need this operation even if basis_sets_unique_element is True @@ -543,7 +543,12 @@ def read_default_namelist( # twobody part for i in range(num_twobody): - namelist.set_parameter(f"twobodypar({i+1})", 0.5, "&electrons") + if jastrow_type == -15: + namelist.set_parameter(f"twobodypar({i+1})", 0.5, "&electrons") + elif jastrow_type == -6: + namelist.set_parameter(f"twobodypar({i+1})", 1.0, "&electrons") + else: + namelist.set_parameter(f"twobodypar({i+1})", 0.5, "&electrons") namelist.comment_out("twobodypar") # spin (i.e., neldiff) diff --git a/turbogenius/pyturbo/pseudopotentials.py b/turbogenius/pyturbo/pseudopotentials.py index 76c3ae1..f4c6145 100755 --- a/turbogenius/pyturbo/pseudopotentials.py +++ b/turbogenius/pyturbo/pseudopotentials.py @@ -91,7 +91,12 @@ def __init__( logger.debug(f"power={self.power}") # assertion!! - assert len(set(self.nucleus_index)) == len(self.max_ang_mom_plus_1) + if len(set(self.nucleus_index)) != len(self.max_ang_mom_plus_1): + logger.error(f"set(self.nucleus_index) = {set(self.nucleus_index)}") + logger.error(f"len(self.max_ang_mom_plus_1) = {len(self.max_ang_mom_plus_1)}") + logger.error(f"self.nucleus_index = {self.nucleus_index}") + logger.error(f"self.max_ang_mom_plus_1 = {self.max_ang_mom_plus_1}") + raise ValueError assert len(set(self.nucleus_index)) == len(self.z_core) assert len(set(self.nucleus_index)) == len(self.cutoff) assert len(self.ang_mom) == len(self.exponent) diff --git a/turbogenius/pyturbo/utils/utility.py b/turbogenius/pyturbo/utils/utility.py index dc92146..a8a6605 100755 --- a/turbogenius/pyturbo/utils/utility.py +++ b/turbogenius/pyturbo/utils/utility.py @@ -54,7 +54,12 @@ def return_element_symbol(atomic_number): def return_atomic_number(element): element = str(element) - return Element(element).number + try: + E = Element(element) + number = E.number + except ValueError: + number = 0.0 + return number def remove_file(file): diff --git a/turbogenius/trexio_to_turborvb.py b/turbogenius/trexio_to_turborvb.py index 21bec5a..9dbb583 100644 --- a/turbogenius/trexio_to_turborvb.py +++ b/turbogenius/trexio_to_turborvb.py @@ -311,6 +311,7 @@ def trexio_to_turborvb_wf( # Pseudopotentials if has_ecp: + logger.info(f"ecp_z_core={ecp_z_core}") cutoff = [0.0] * len(ecp_z_core) pseudopotentials = Pseudopotentials( max_ang_mom_plus_1=ecp_max_ang_mom_plus_1,