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.
| 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 |
Memory cleanup
Clean up allocated memory in system_geometry_t
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(system_geometry_t), | intent(inout) | :: | this |
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