mimic_subsystems Module

fragment types



Contents


Derived Types

type, public :: subsystem_type

subsystem which is a collection of atoms

Components

TypeVisibilityAttributesNameInitial
integer, public :: id

ID of the code

real(kind=dp), public :: factor

factor to be applied for forces contribution (most likely to be either 1.0 or -1.0)

integer, public :: num_atoms

total number of atoms within subsystem

type(atom_type), public, dimension(:), allocatable:: atoms

list of atoms

integer, public :: num_fragments

total number of fragments within subsystem

type(fragment_type), public, dimension(:), allocatable:: fragments

list of fragments in within subsystem

integer, public :: num_sr_atoms

number of short-range atoms

type(atom_type), public, dimension(:), allocatable:: sr_atoms

list of short-range atoms

integer, public :: num_sr_fragments

number of short-range fragments

type(fragment_type), public, dimension(:), allocatable:: sr_fragments

list of short-range fragments

integer, public :: num_lr_atoms

number of long-range atoms

type(atom_type), public, dimension(:), allocatable:: lr_atoms

list of long-range atoms

integer, public :: num_lr_fragments

number of long-range fragments

type(fragment_type), public, dimension(:), allocatable:: lr_fragments

list of long-range fragments

Type-Bound Procedures

procedure, public :: init => init_subsystem
procedure, public :: define_fragments

Subroutines

private subroutine init_subsystem(this, id, factor, atoms)

Arguments

TypeIntentOptionalAttributesName
class(subsystem_type), intent(inout) :: this
integer, intent(in) :: id
real(kind=dp), intent(in) :: factor
type(atom_type), intent(in), dimension(:):: atoms

private subroutine define_fragments(this, num_fragments, fragment_definitions)

Arguments

TypeIntentOptionalAttributesName
class(subsystem_type), intent(inout) :: this
integer, intent(in) :: num_fragments
integer, intent(in), dimension(0:num_fragments):: fragment_definitions