site_type Derived Type

type, public, extends(particle_type) :: site_type

non-atomic site (e.g. bond midpoints)


Contents

Source Code


Components

TypeVisibilityAttributesNameInitial
integer, public :: id

particle id

real(kind=dp), public :: charge

particle charge

real(kind=dp), public :: mass

particle mass

real(kind=dp), public, dimension(:), pointer:: coordinate=> null()

pointer to coordinate of the particle

real(kind=dp), public, dimension(:), pointer:: force=> null()

pointer to force acting on particle

logical, public :: overlapped

flag indicating that the particle is treated by some other code

real(kind=dp), private, dimension(3):: internal_coordinate

coordinate of site

real(kind=dp), private, dimension(3):: internal_force

force acting on site

type(multipoles_type), public :: multipoles

multipoles associated with the site


Type-Bound Procedures

procedure, public :: init => init_site

  • private subroutine init_site(this, id, coordinate, force, multipoles, overlapped)

    Arguments

    TypeIntentOptionalAttributesName
    class(site_type), intent(inout) :: this
    integer, intent(in) :: id
    real(kind=dp), intent(in), dimension(:):: coordinate
    real(kind=dp), intent(in), dimension(:):: force
    type(multipoles_type), intent(in), optional :: multipoles
    logical, intent(in) :: overlapped

Source Code

    type, extends(particle_type) :: site_type
        private
        !> coordinate of site
        real(dp), dimension(3) :: internal_coordinate
        !> force acting on site
        real(dp), dimension(3) :: internal_force
        !> multipoles associated with the site
        type(multipoles_type), public :: multipoles
    contains
        private
        procedure, public :: init => init_site
        ! procedure :: update_coordinate
        ! procedure :: update_force
    end type site_type