geometry_to_system_unfragmented Subroutine

private subroutine geometry_to_system_unfragmented(geom, sys_geom, use_angstrom)

Uses

  • proc~~geometry_to_system_unfragmented~~UsesGraph proc~geometry_to_system_unfragmented geometry_to_system_unfragmented module~mqc_geometry mqc_geometry proc~geometry_to_system_unfragmented->module~mqc_geometry pic_types pic_types module~mqc_geometry->pic_types

Convert geometry to system_geometry_t for unfragmented calculation Treats entire system as a single monomer

Arguments

Type IntentOptional Attributes Name
type(geometry_type), intent(in) :: geom
type(system_geometry_t), intent(out) :: sys_geom
logical, intent(in) :: use_angstrom

Calls

proc~~geometry_to_system_unfragmented~~CallsGraph proc~geometry_to_system_unfragmented geometry_to_system_unfragmented proc~element_symbol_to_number element_symbol_to_number proc~geometry_to_system_unfragmented->proc~element_symbol_to_number proc~to_bohr to_bohr proc~geometry_to_system_unfragmented->proc~to_bohr to_lower to_lower proc~element_symbol_to_number->to_lower to_upper to_upper proc~element_symbol_to_number->to_upper

Called by

proc~~geometry_to_system_unfragmented~~CalledByGraph proc~geometry_to_system_unfragmented geometry_to_system_unfragmented proc~config_to_system_geometry config_to_system_geometry proc~config_to_system_geometry->proc~geometry_to_system_unfragmented proc~molecule_to_system_geometry molecule_to_system_geometry proc~config_to_system_geometry->proc~molecule_to_system_geometry proc~molecule_to_system_geometry->proc~geometry_to_system_unfragmented proc~run_multi_molecule_calculations run_multi_molecule_calculations proc~run_multi_molecule_calculations->proc~config_to_system_geometry program~main main program~main->proc~config_to_system_geometry program~main->proc~run_multi_molecule_calculations

Variables

Type Visibility Attributes Name Initial
integer, private :: i

Source Code

   subroutine geometry_to_system_unfragmented(geom, sys_geom, use_angstrom)
      !! Convert geometry to system_geometry_t for unfragmented calculation
      !! Treats entire system as a single monomer
      use mqc_geometry, only: geometry_type

      type(geometry_type), intent(in) :: geom
      type(system_geometry_t), intent(out) :: sys_geom
      logical, intent(in) :: use_angstrom

      integer :: i

      ! For unfragmented: n_monomers=1, atoms_per_monomer=natoms
      sys_geom%n_monomers = 1
      sys_geom%atoms_per_monomer = geom%natoms
      sys_geom%total_atoms = geom%natoms

      allocate (sys_geom%element_numbers(sys_geom%total_atoms))
      allocate (sys_geom%coordinates(3, sys_geom%total_atoms))

      ! Convert element symbols to atomic numbers
      do i = 1, sys_geom%total_atoms
         sys_geom%element_numbers(i) = element_symbol_to_number(geom%elements(i))
      end do

      ! Store coordinates (convert to Bohr if needed)
      if (use_angstrom) then
         sys_geom%coordinates = to_bohr(geom%coords)
      else
         sys_geom%coordinates = geom%coords
      end if

   end subroutine geometry_to_system_unfragmented