Documentation for module particle_types

Define the data structure for the particle information.

source: particle_types.F
Loading...

public Types:

particle_type
...

public Subroutines/Functions:

Allocate a particle set.
Deallocate a particle set.
Return the atomic position or velocity of atom iatom in x from a packed vector even if core-shell particles are present
Update the atomic position or velocity by x and return the updated atomic position or velocity in x even if core-shell particles are present
...

public Types:

TYPE :: particle_type

...


POINTER :: atomic_kind => NULL() ...
REAL(dp),
DIMENSION(3) :: f = 0.0_DP ...
REAL(dp),
DIMENSION(3) :: r = 0.0_DP ...
REAL(dp),
DIMENSION(3) :: v = 0.0_DP ...
INTEGER
:: atom_index = -1 ...
INTEGER
:: t_region_index = -1 ...
INTEGER
:: shell_index = -1 ...

SUBROUTINEallocate_particle_set(particle_set, nparticle)

Allocate a particle set.

Arguments:
POINTER
:: particle_set(:) ...
INTEGER,
INTENT(in)
:: nparticle ...

SUBROUTINEdeallocate_particle_set(particle_set)

Deallocate a particle set.

Arguments:
POINTER
:: particle_set(:) ...

FUNCTIONget_particle_pos_or_vel(iatom, particle_set, vector)

Return the atomic position or velocity of atom iatom in x from a packed vector even if core-shell particles are present

Return Value ::
REAL(dp)
Arguments:
INTEGER,
INTENT(in)
:: iatom ...
POINTER
:: particle_set(:) ...
REAL(dp),
INTENT(in)
:: vector(:) ...

SUBROUTINEupdate_particle_pos_or_vel(iatom, particle_set, x, vector)

Update the atomic position or velocity by x and return the updated atomic position or velocity in x even if core-shell particles are present

Arguments:
INTEGER,
INTENT(in)
:: iatom ...
POINTER
:: particle_set(:) ...
REAL(dp),
INTENT(inout)
:: x(3) ...
REAL(dp),
INTENT(inout)
:: vector(:) ...

SUBROUTINEupdate_particle_set(particle_set, int_group, pos, vel, for, add)

...

Arguments:
POINTER
:: particle_set(:) ...
INTEGER,
INTENT(in)
:: int_group ...
REAL(dp),
INTENT(inout),
OPTIONAL
:: pos(:,:) ...
REAL(dp),
INTENT(inout),
OPTIONAL
:: vel(:,:) ...
REAL(dp),
INTENT(inout),
OPTIONAL
:: for(:,:) ...
LOGICAL,
INTENT(in),
OPTIONAL
:: add ...