RMPCDMD
Data Types | Functions/Subroutines
md Module Reference

Routines to perform Molecular Dynamics integration. More...

Data Types

type  rigid_body_t
 Container for rigid body colloid. More...
 

Functions/Subroutines

subroutine, public md_pos (particles, dt)
 
subroutine, public cell_md_pos (cells, particles, dt, md_flag)
 
subroutine, public cell_md_pos_ywall (cells, particles, dt, md_flag)
 
subroutine, public apply_pbc (particles, edges)
 
subroutine, public md_vel (particles, dt)
 
subroutine, public cell_md_vel (cells, particles, dt, md_flag)
 
subroutine, public rattle_dimer_pos (p, d, dt, edges)
 
subroutine, public rattle_dimer_vel (p, d, dt, edges)
 
subroutine, public rattle_body_pos (p, links, distances, dt, edges, precision)
 
subroutine, public rattle_body_vel (p, links, distances, dt, edges, precision)
 
double precision function, public lj93_zwall (particles, edges, lj_params)
 
double precision function, public elastic_network (p, links, distances, k, edges)
 
subroutine rigid_body_init (this, ps, i_start, i_stop, edges)
 
subroutine rigid_body_compute_force_torque (this, ps)
 
subroutine rigid_body_vv1 (this, ps, dt, treshold, edges)
 Perform first velocity-Verlet step for quaternion dynamics. More...
 
subroutine rigid_body_vv2 (this, ps, dt)
 Perform second velocity-Verlet step for quaternion dynamics. More...
 

Detailed Description

Routines to perform Molecular Dynamics integration.

This module contains routines to perform velocity Verlet integration, Rattle for a dimer and for other rigid bodies, and quaternion-based rotational velocity Verlet.

Routines to compute colloid-wall (with Lennard-Jones 9-3) and elastic network interactions.

Function/Subroutine Documentation

subroutine, public md::apply_pbc ( type(particle_system_t), intent(inout)  particles,
double precision, dimension(3), intent(in)  edges 
)

Definition at line 153 of file md.f90.

subroutine, public md::cell_md_pos ( type(cell_system_t), intent(inout)  cells,
type(particle_system_t), intent(inout)  particles,
double precision, intent(in)  dt,
logical, intent(in)  md_flag 
)

Definition at line 79 of file md.f90.

subroutine, public md::cell_md_pos_ywall ( type(cell_system_t), intent(inout)  cells,
type(particle_system_t), intent(inout)  particles,
double precision, intent(in)  dt,
logical, intent(in)  md_flag 
)

Definition at line 104 of file md.f90.

subroutine, public md::cell_md_vel ( type(cell_system_t), intent(in)  cells,
type(particle_system_t), intent(inout)  particles,
double precision, intent(in)  dt,
logical, intent(in)  md_flag 
)

Definition at line 190 of file md.f90.

double precision function, public md::elastic_network ( type(particle_system_t), intent(inout)  p,
integer, dimension(:,:), intent(in)  links,
double precision, dimension(:), intent(in)  distances,
double precision, intent(in)  k,
double precision, dimension(3), intent(in)  edges 
)

Definition at line 467 of file md.f90.

double precision function, public md::lj93_zwall ( type(particle_system_t), intent(inout)  particles,
double precision, dimension(3), intent(in)  edges,
type(lj_params_t), intent(in)  lj_params 
)

Definition at line 433 of file md.f90.

subroutine, public md::md_pos ( type(particle_system_t), intent(inout)  particles,
double precision, intent(in)  dt 
)

Definition at line 61 of file md.f90.

subroutine, public md::md_vel ( type(particle_system_t), intent(inout)  particles,
double precision, intent(in)  dt 
)

Definition at line 170 of file md.f90.

subroutine, public md::rattle_body_pos ( type(particle_system_t), intent(inout)  p,
integer, dimension(:,:), intent(in)  links,
double precision, dimension(:), intent(in)  distances,
double precision, intent(in)  dt,
double precision, dimension(3), intent(in)  edges,
double precision, intent(in)  precision 
)

Definition at line 272 of file md.f90.

subroutine, public md::rattle_body_vel ( type(particle_system_t), intent(inout)  p,
integer, dimension(:,:), intent(in)  links,
double precision, dimension(:), intent(in)  distances,
double precision, intent(in)  dt,
double precision, dimension(3), intent(in)  edges,
double precision, intent(in)  precision 
)

Definition at line 361 of file md.f90.

subroutine, public md::rattle_dimer_pos ( type(particle_system_t), intent(inout)  p,
double precision, intent(in)  d,
double precision, intent(in)  dt,
double precision, dimension(3), intent(in)  edges 
)

Definition at line 216 of file md.f90.

subroutine, public md::rattle_dimer_vel ( type(particle_system_t), intent(inout)  p,
double precision, intent(in)  d,
double precision, intent(in)  dt,
double precision, dimension(3), intent(in)  edges 
)

Definition at line 249 of file md.f90.

subroutine md::rigid_body_compute_force_torque ( class(rigid_body_t), intent(inout)  this,
type(particle_system_t), intent(in)  ps 
)
private

Definition at line 542 of file md.f90.

subroutine md::rigid_body_init ( class(rigid_body_t), intent(out)  this,
type(particle_system_t), intent(inout)  ps,
integer, intent(in)  i_start,
integer, intent(in)  i_stop,
double precision, dimension(3), intent(in)  edges 
)
private

Definition at line 498 of file md.f90.

subroutine md::rigid_body_vv1 ( class(rigid_body_t), intent(inout)  this,
type(particle_system_t), intent(inout)  ps,
double precision, intent(in)  dt,
double precision, intent(in)  treshold,
double precision, dimension(3), intent(in)  edges 
)
private

Perform first velocity-Verlet step for quaternion dynamics.

The algorithm is described in [6]

User manual: algorithms/quaternions

Definition at line 564 of file md.f90.

subroutine md::rigid_body_vv2 ( class(rigid_body_t), intent(inout)  this,
type(particle_system_t), intent(inout)  ps,
double precision, intent(in)  dt 
)
private

Perform second velocity-Verlet step for quaternion dynamics.

The algorithm is described in [6]

User manual: algorithms/quaternions

Definition at line 630 of file md.f90.