non-atomic site (e.g. bond midpoints)
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
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