SDA (SDA flex)  7.2
Simulation of Diffusional Association
make_bd_move_2prot.f90 File Reference


subroutine make_bd_move_2prot (prot1, prot2, geom, force, torque, torque1, dtnow, dist, rhit, hit, accept, escape, total_overlap, ignore_excl)
 Main function to call from the main loop, version without timer_exclusion. More...

Detailed Description

{version 7.2.3 (2019)}

Copyright (c) 2009, 2010, 2015, 2016, 2019 Heidelberg Institute of Theoretical Studies (HITS, Schloss-Wolfsbrunnenweg 35 69118 Heidelberg, Germany

Please send your contact address to get information on updates and new features to "". Questions will be answered as soon as possible.

References: see also

Brownian dynamics simulation of protein-protein diffusional encounter. (1998) Methods, 14, 329-341.

SDA 7: A modular and parallel implementation of the simulation of diffusional association software. Journal of computational chemistry 36.21 (2015): 1631-1645.

Authors: M.Martinez, N.J.Bruce, J.Romanowska, D.B.Kokh, P.Mereghetti, X. Yu, M. Ozboyaci, M. Reinhardt, P. Friedrich, R.R.Gabdoulline, S.Richter and R.C.Wade

Apply the BD translation and rotation to the solutes

Function/Subroutine Documentation

◆ make_bd_move_2prot()

subroutine make_bd_move_2prot ( type ( protein prot1,
type ( protein prot2,
type ( geometry ), intent(in)  geom,
real ( kind=8 ), dimension ( 3 ), intent(in)  force,
real ( kind=8 ), dimension ( 3 ), intent(in)  torque,
real ( kind=8 ), dimension ( 3 ), intent(in)  torque1,
real ( kind=8 ), intent(in)  dtnow,
real ( kind=4 )  dist,
real ( kind=4 )  rhit,
logical, intent(out)  hit,
logical, intent(out)  accept,
logical, intent(out)  escape,
integer  total_overlap,
logical, intent(in)  ignore_excl 

Main function to call from the main loop, version without timer_exclusion.

In addition to the deterministic forces ( electrostatic, etc ) a random translational and rotational displacement is applied to all solutes

Diffusion coefficients are from the protein class, not from the set_of_grid. It allows to rescale the coefficients independently in every thread, set_of_grid keep the original value.

Adapted to the 2 solutes case with exclusion check if the distance is smaller than a criteria (see rhit and hit )
If the solutes overlap, the move rejected and an other is tested until it accepted or total_overlap reach max_overlap

The move are not applied directly, but rather tested. Only at the end, if still all move were accepted the atoms are rotated
Delete the timer for exclusion_check in this version. see make_bd_move_2prot_timer_excl.f90
Trick : the solute 1 never rotates, it is the solute 2 which is translated. It keeps force calculation simpler

prot1: solute 1, instance of protein
prot2: solute 2, instance of protein
geom: instance of geometry
force: array of the deterministic forces on the solutes
torque: torque applied by the solute 1 on the solute 2
torque1: torque applied by the solute 2 on the solute 1
dtnow: current timestep
dist: distance between the solutes
rhit: distance at which hit must be set to true
hit: if the exclusion must be checked
accept: return if the BD move has been accepted
escape: return if the solute 2 escapes from the box
total_overlap: return, count the number of overlap ( rejected move ). Use before running boost
ignore_excl: if true, no excluded volume check is made. Soft-core rep should be used instead
Here is the call graph for this function: