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 cell_md_pos_zwall (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

◆ apply_pbc()

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

Definition at line 203 of file md.f90.

◆ cell_md_pos()

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 80 of file md.f90.

◆ cell_md_pos_ywall()

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 105 of file md.f90.

◆ cell_md_pos_zwall()

subroutine, public md::cell_md_pos_zwall ( 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 154 of file md.f90.

◆ cell_md_vel()

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 240 of file md.f90.

◆ elastic_network()

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 517 of file md.f90.

◆ lj93_zwall()

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 483 of file md.f90.

◆ md_pos()

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

Definition at line 62 of file md.f90.

◆ md_vel()

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

Definition at line 220 of file md.f90.

◆ rattle_body_pos()

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 322 of file md.f90.

◆ rattle_body_vel()

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 411 of file md.f90.

◆ rattle_dimer_pos()

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 266 of file md.f90.

◆ rattle_dimer_vel()

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 299 of file md.f90.

◆ rigid_body_compute_force_torque()

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 592 of file md.f90.

◆ rigid_body_init()

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 548 of file md.f90.

◆ rigid_body_vv1()

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 [5]

User manual: algorithms/quaternions

Definition at line 614 of file md.f90.

◆ rigid_body_vv2()

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 [5]

User manual: algorithms/quaternions

Definition at line 680 of file md.f90.