system_geometry_t Derived Type

type, public :: system_geometry_t

Complete molecular system geometry for fragment-based calculations

Contains the full atomic structure of a molecular cluster organized by monomers for efficient fragment generation and MBE calculations.


Inherits

type~~system_geometry_t~~InheritsGraph type~system_geometry_t system_geometry_t type~bond_t bond_t type~system_geometry_t->type~bond_t bonds

Inherited by

type~~system_geometry_t~~InheritedByGraph type~system_geometry_t system_geometry_t type~many_body_expansion_t many_body_expansion_t type~many_body_expansion_t->type~system_geometry_t sys_geom type~gmbe_context_t gmbe_context_t type~gmbe_context_t->type~many_body_expansion_t type~mbe_context_t mbe_context_t type~mbe_context_t->type~many_body_expansion_t

Components

Type Visibility Attributes Name Initial
integer, public :: atoms_per_monomer

Atoms in each monomer (0 if variable-sized)

type(bond_t), public, allocatable :: bonds(:)

Bond connectivity (for H-capping broken bonds)

integer, public :: charge

Net molecular charge (electrons)

real(kind=dp), public, allocatable :: coordinates(:,:)

All coordinates (3, total_atoms) in Bohr

integer, public, allocatable :: element_numbers(:)

Atomic numbers for all atoms

integer, public, allocatable :: fragment_atoms(:,:)

Atom indices for each fragment (max_frag_size, n_monomers), 0-indexed

integer, public, allocatable :: fragment_charges(:)

Charge for each fragment (n_monomers)

integer, public, allocatable :: fragment_multiplicities(:)

Multiplicity for each fragment (n_monomers)

integer, public, allocatable :: fragment_sizes(:)

Number of atoms in each fragment (n_monomers)

integer, public :: multiplicity

Spin multiplicity (2S+1)

integer, public :: n_monomers

Number of monomer units in system

integer, public :: total_atoms

Total number of atoms


Type-Bound Procedures

procedure, public :: destroy => system_destroy

Memory cleanup

  • private subroutine system_destroy(this)

    Clean up allocated memory in system_geometry_t

    Arguments

    Type IntentOptional Attributes Name
    class(system_geometry_t), intent(inout) :: this

Source Code

   type :: system_geometry_t
      !! Complete molecular system geometry for fragment-based calculations
      !!
      !! Contains the full atomic structure of a molecular cluster organized
      !! by monomers for efficient fragment generation and MBE calculations.
      integer :: n_monomers        !! Number of monomer units in system
      integer :: atoms_per_monomer  !! Atoms in each monomer (0 if variable-sized)
      integer :: total_atoms       !! Total number of atoms
      integer, allocatable :: element_numbers(:)  !! Atomic numbers for all atoms
      real(dp), allocatable :: coordinates(:, :)  !! All coordinates (3, total_atoms) in Bohr

      ! Electronic structure properties
      integer :: charge         !! Net molecular charge (electrons)
      integer :: multiplicity   !! Spin multiplicity (2S+1)

      ! For variable-sized fragments (explicit fragment definitions)
      integer, allocatable :: fragment_sizes(:)      !! Number of atoms in each fragment (n_monomers)
      integer, allocatable :: fragment_atoms(:, :)   !! Atom indices for each fragment (max_frag_size, n_monomers), 0-indexed
      integer, allocatable :: fragment_charges(:)    !! Charge for each fragment (n_monomers)
      integer, allocatable :: fragment_multiplicities(:)  !! Multiplicity for each fragment (n_monomers)

      ! Connectivity information for hydrogen capping
      type(bond_t), allocatable :: bonds(:)  !! Bond connectivity (for H-capping broken bonds)
   contains
      procedure :: destroy => system_destroy  !! Memory cleanup
   end type system_geometry_t