Functions/Subroutines | |
subroutine | make_bd_move_2prot (prot1, prot2, geom, force, torque, torque1, dtnow, dist, rhit, hit, accept, escape, total_overlap, ignore_excl, iimg_hydro, old_rotation, surface_height) |
Main function to call from the main loop, version without timer_exclusion. More... | |
Copyright (c) 2009, 2010, 2015, 2016, 2019 Heidelberg Institute of Theoretical Studies (HITS, www.h-its.org) Schloss-Wolfsbrunnenweg 35 69118 Heidelberg, Germany
Please send your contact address to get information on updates and new features to "mcmsoft@h-its.org". Questions will be answered as soon as possible.
References: see also http://mcm.h-its.org/sda7/do:c/doc_sda7/references.html:
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
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, | ||
logical, intent(in) | iimg_hydro, | ||
logical | old_rotation, | ||
real ( kind=8 ), intent(in), optional | surface_height | ||
) |
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 |
iimg_hydro | : MARTIN |
surface_height | : MARTIN |