SDA (SDA flex)  7.2
Simulation of Diffusional Association
Functions/Subroutines
mod_compute_force Module Reference

Module groups computation of forces and energies of sda_2proteins and related.
simplify interface if all in one file. More...

Functions/Subroutines

subroutine force_epedhdlj_2proteins (prot1, prot2, param_force_energy, dist, f, t, t1, dummy_array)
 Compute the force for sda_2proteins and derivatives. More...
 
subroutine force_asymetric (prot1, prot2, grid_number, dummy_array, ff1, ff2, tt1, tt2, reverse, subgrid, type_p1, type_p2, test_dist2)
 Compute one asymetric interaction, send back ff2, tt1, tt2, caller should decide what to do ( increment ).
. More...
 
subroutine compute_force_sda_2proteins (prot1, prot2, grid_number, dummy_array, ff2, tt1, tt2, type_p1, type_p2, test_dist2)
 Compute only one interaction, always symetric => applies correction. More...
 
subroutine force_epedhdlj_2proteins_fast (prot1, prot2, param_force_energy, dist, f, t, t1, dummy_array)
 Use fast algorithm, only for sda_2proteins and derivatives. More...
 
subroutine force_sda_2proteins_fast (prot1, prot2, grid_number, dummy_array, ff1_n, ff2, tt1_n, tt2, type_p1, type_p2, test_dist2)
 Compute 1 interactions with the fast algorithm. More...
 
subroutine force_couple_fast (prot1, prot2, nb_grid1, nb_grid2, gridtype, dummy_array, ff1_n, ff2, tt1_n, tt2, type_p1, type_p2, test_dist2)
 Compute 2 interactions with the fast algorithm. More...
 

Detailed Description

Module groups computation of forces and energies of sda_2proteins and related.
simplify interface if all in one file.

Function/Subroutine Documentation

◆ compute_force_sda_2proteins()

subroutine mod_compute_force::compute_force_sda_2proteins ( type ( protein ), intent(in)  prot1,
type ( protein ), intent(in)  prot2,
integer, intent(in)  grid_number,
real ( kind=8 ), dimension ( : ), intent(in), target  dummy_array,
real ( kind=8 ), dimension( 3 ), intent(out)  ff2,
real ( kind=8 ), dimension( 3 ), intent(out)  tt1,
real ( kind=8 ), dimension( 3 ), intent(out)  tt2,
integer, intent(in)  type_p1,
integer, intent(in)  type_p2,
real ( kind=4 ), intent(in)  test_dist2 
)

Compute only one interaction, always symetric => applies correction.

In fact could work with asymetric if 1 nb_charge == 0

Parameters
prot1,prot2: solute 1 and 2, instance of protein
grid_number: number of the grid, as referred in mod_gridtype
dummy_array: used for repulsive lennard-jones interactions
ff2,tt2,tt1: return force and torque on solute 2, torque on solute 1
type_p1,type_p2: integer type of the solutes
test_dist2: distance square between the solutes
Here is the call graph for this function:
Here is the caller graph for this function:

◆ force_asymetric()

subroutine mod_compute_force::force_asymetric ( type ( protein ), intent(in)  prot1,
type ( protein ), intent(in)  prot2,
integer, intent(in)  grid_number,
real ( kind=8 ), dimension ( : ), intent(in)  dummy_array,
real ( kind=8 ), dimension ( 3 ), intent(out)  ff1,
real ( kind=8 ), dimension ( 3 ), intent(out)  ff2,
real ( kind=8 ), dimension ( 3 ), intent(out)  tt1,
real ( kind=8 ), dimension ( 3 ), intent(out)  tt2,
integer  reverse,
integer  subgrid,
integer, intent(in)  type_p1,
integer, intent(in)  type_p2,
real ( kind=4 ), intent(in)  test_dist2 
)

Compute one asymetric interaction, send back ff2, tt1, tt2, caller should decide what to do ( increment ).
.

normal version, not fast. Here aplly final torque correction, in order to reproduce identical force than other methods

Parameters
prot1,prot2: solute 1 and 2, instance of protein
grid_number: number of the grid, as referred in mod_gridtype
dummy_array: used for repulsive lennard-jones interactions
ff1,ff2,tt2,tt1: return force and torque on solute 1 and 2
reverse: indicate the sense of asymetry
subgrid: uhbd subgrid
type_p1,type_p2: integer type of the solutes
test_dist2: distance square between the solutes
Here is the call graph for this function:
Here is the caller graph for this function:

◆ force_couple_fast()

subroutine mod_compute_force::force_couple_fast ( type ( protein ), intent(in)  prot1,
type ( protein ), intent(in)  prot2,
integer, intent(in)  nb_grid1,
integer, intent(in)  nb_grid2,
integer, intent(in)  gridtype,
real ( kind=8 ), dimension ( : ), intent(in), target  dummy_array,
real ( kind=8 ), dimension( 3 )  ff1_n,
real ( kind=8 ), dimension( 3 )  ff2,
real ( kind=8 ), dimension( 3 )  tt1_n,
real ( kind=8 ), dimension( 3 )  tt2,
integer, intent(in)  type_p1,
integer, intent(in)  type_p2,
real (kind=4), intent(in)  test_dist2 
)

Compute 2 interactions with the fast algorithm.

Can compute two interactions inside the same loop, because use the same "charge"

Parameters
prot1,prot2: solute 1 and 2, instance of protein
nb_grid1,nb_grid2: number of the grid2, as referred in mod_gridtype
gridtype: 1 or 2 used to know which couple of interactions to compute
dummy_array: used for repulsive lennard-jones interactions
ff1_n,tt1_n: force and torques on the solute 1, in the referential of the solute 2
ff2,tt2: force and torques on the solute 2
type_p1,type_p2: integer type of the solutes
test_dist2: distance square between the solutes
Here is the call graph for this function:
Here is the caller graph for this function:

◆ force_epedhdlj_2proteins()

subroutine mod_compute_force::force_epedhdlj_2proteins ( type ( protein ), intent(in)  prot1,
type ( protein ), intent(in)  prot2,
type ( type_force_energy ), intent(in)  param_force_energy,
real ( kind=4 ), intent(in)  dist,
real ( kind=8 ), dimension ( 3 )  f,
real ( kind=8 ), dimension ( 3 )  t,
real ( kind=8 ), dimension ( 3 )  t1,
real ( kind=8 ), dimension ( : ), intent(in)  dummy_array 
)

Compute the force for sda_2proteins and derivatives.

Unoptimised algorithm. Extension with new interactions are simpler to introduce here

Add distance as parameter, for sda_2proteins if surface is present the distance is computed differently

Parameters
prot1,prot2: solute 1 and 2, instance of protein
param_force_energy: instance of type_force_energy
dist: distance between the solutes, use a cut-off
f,t,t1: return, store the results of force and torques
dummy_array: used for repulsive lennard-jones interactions
Here is the call graph for this function:
Here is the caller graph for this function:

◆ force_epedhdlj_2proteins_fast()

subroutine mod_compute_force::force_epedhdlj_2proteins_fast ( type ( protein ), intent(in)  prot1,
type ( protein ), intent(in)  prot2,
type ( type_force_energy ), intent(in)  param_force_energy,
real ( kind=4 ), intent(in)  dist,
real ( kind=8 ), dimension( 3 )  f,
real ( kind=8 ), dimension( 3 )  t,
real ( kind=8 ), dimension( 3 )  t1,
real ( kind =8 ), dimension ( : ), intent(in)  dummy_array 
)

Use fast algorithm, only for sda_2proteins and derivatives.

Parameters
prot1,prot2: solute 1 and 2, instance of protein
param_force_energy: instance of type_force_energy
dist: distance between the solutes, use a cut-off
f,t,t1: return, store the results, force and torques
dummy_array: used for repulsive lennard-jones interactions
Here is the call graph for this function:
Here is the caller graph for this function:

◆ force_sda_2proteins_fast()

subroutine mod_compute_force::force_sda_2proteins_fast ( type ( protein ), intent(in)  prot1,
type ( protein ), intent(in)  prot2,
integer, intent(in)  grid_number,
real ( kind=8 ), dimension ( : ), intent(in)  dummy_array,
real ( kind=8 ), dimension( 3 )  ff1_n,
real ( kind=8 ), dimension( 3 )  ff2,
real ( kind=8 ), dimension( 3 )  tt1_n,
real ( kind=8 ), dimension( 3 )  tt2,
integer, intent(in)  type_p1,
integer, intent(in)  type_p2,
real (kind=4), intent(in)  test_dist2 
)

Compute 1 interactions with the fast algorithm.

Compute force and torque on the solute 1 in the referential of the solute 2

Normally called if symetric interaction, but is working if asymetric and if 1 nb_charge == 0

Parameters
prot1,prot2: solute 1 and 2, instance of protein
grid_number: number of the grid as referred in mod_gridtype
dummy_array: used for repulsive lennard-jones interactions
ff1_n,tt1_n: return force and torques on the solute 1
ff2,tt2: return force and torques on the solute 2
type_p1,type_p2: integer type of the solutes
test_dist2: distance square between the solutes
Here is the call graph for this function:
Here is the caller graph for this function:
Imprint/Privacy