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

Group computation of force and energy when image charge is used.
Some specific interactions are implemented for ProMetCS force field. More...

Functions/Subroutines

subroutine force_image_charge (tab_protein, param_force_energy, f, t)
 force image charge, version for sda_2proteins.
Could hard-code for protein 2 only, no nned to loop because different version for SDAMM.
compute only the force on solute 2.
More...
 
subroutine force_image_charge_one_protein (prot, param_force_energy, grid_number, zero_plane, ff2, tt2)
 Compute image charge for only one protein.
called by sda_2proteins and sdamm.
. More...
 
subroutine force_atom_variable_epsilon (prot, ychi, i, zero_plane, f, ep_scale)
 Compute force with the analytical correction, apply to only one solute. More...
 
subroutine force_image_charge_sdamm (tab_protein, param_force_energy, all_force, all_torque)
 Force image charge, variant for sdamm.
call identical subfunctions, just add OpenMP. More...
 
subroutine energy_image_charge (tab_protein, param_force_energy, array_energy)
 Compute energy image charge in case of sda_2proteins include electrostatic desolvation image charge if needed Need to check for cutoff. More...
 
subroutine energy_image_charge_one_protein (prot, param_force_energy, grid_number, zero_plane, energy)
 
subroutine potential_atom_variable_epsilon (prot, i, ychi, zero_plane, potential, ep_scale)
 
subroutine energy_image_charge_sdamm (tab_protein, param_force_energy, array_energy)
 Energy image charge for sdamm, need to care for the different types now.
allow last protein as surface. More...
 

Detailed Description

Group computation of force and energy when image charge is used.
Some specific interactions are implemented for ProMetCS force field.

Todo:
implement a cutoff for image charge

Function/Subroutine Documentation

◆ energy_image_charge()

subroutine mod_compute_image_charge::energy_image_charge ( type ( array_protein_type ), intent(in)  tab_protein,
type ( type_force_energy ), intent(in)  param_force_energy,
real ( kind=8 ), dimension( :,: )  array_energy 
)

Compute energy image charge in case of sda_2proteins include electrostatic desolvation image charge if needed Need to check for cutoff.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ energy_image_charge_one_protein()

subroutine mod_compute_image_charge::energy_image_charge_one_protein ( type ( protein ), intent(in)  prot,
type ( type_force_energy ), intent(in)  param_force_energy,
integer, intent(in)  grid_number,
real ( kind=8 ), intent(in)  zero_plane,
real ( kind=8 ), intent(out)  energy 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ energy_image_charge_sdamm()

subroutine mod_compute_image_charge::energy_image_charge_sdamm ( type ( array_protein_type ), intent(in)  tab_protein,
type ( type_force_energy ), intent(in)  param_force_energy,
real ( kind=8 ), dimension( :,: )  array_energy 
)

Energy image charge for sdamm, need to care for the different types now.
allow last protein as surface.

Parameters
tab_protein: instance of mod_array_protein
param_force_energy: instance of type_force_energy in mod_force_energy
array_energy: array to store energy values
Here is the call graph for this function:
Here is the caller graph for this function:

◆ force_atom_variable_epsilon()

subroutine mod_compute_image_charge::force_atom_variable_epsilon ( type ( protein ), intent(in)  prot,
real ( kind=8 ), intent(in)  ychi,
integer, intent(in)  i,
real ( kind=8 ), intent(in)  zero_plane,
real ( kind=8 ), dimension( 3 ), intent(out)  f,
real ( kind=8 ), intent(in)  ep_scale 
)

Compute force with the analytical correction, apply to only one solute.

Parameters
prot: instance of protein
ychi:
i: protein number
zero_plane: z-value of the surface position
f: return force
ep_scale: value of the factor, defined in mod_force_energy
Here is the caller graph for this function:

◆ force_image_charge()

subroutine mod_compute_image_charge::force_image_charge ( type ( array_protein_type ), intent(in)  tab_protein,
type ( type_force_energy ), intent(in)  param_force_energy,
real ( kind=8 ), dimension( 3 ), intent(out)  f,
real ( kind=8 ), dimension( 3 ), intent(out)  t 
)

force image charge, version for sda_2proteins.
Could hard-code for protein 2 only, no nned to loop because different version for SDAMM.
compute only the force on solute 2.

Parameters
tab_protein: instance of mod_array_protein
param_force_energy: instance of type_force_energy in mod_force_energy
f,t: sum of forces and torques to increment
Here is the call graph for this function:
Here is the caller graph for this function:

◆ force_image_charge_one_protein()

subroutine mod_compute_image_charge::force_image_charge_one_protein ( type ( protein ), intent(in)  prot,
type ( type_force_energy ), intent(in)  param_force_energy,
integer, intent(in)  grid_number,
real ( kind=8 ), intent(in)  zero_plane,
real ( kind=8 ), dimension( 3 ), intent(out)  ff2,
real ( kind=8 ), dimension( 3 ), intent(out)  tt2 
)

Compute image charge for only one protein.
called by sda_2proteins and sdamm.
.

Add electrostatic desolvation image charge, I am really not convinced.. to use ep_scale for setting or not the epsilon correction, will follow identical asymetry in sda6 no correction of the torque is done, if implemented will influence only protein 1, the surface, so no influence

Parameters
prot: instance of protein, solute to compute interaction
param_force_energy: instance of mod_force_energy
grid_number: give grid_number of the electrostatic grid
zero_plane: set z value for the surface
ff2,tt2: value of force and torque on prot
Here is the call graph for this function:
Here is the caller graph for this function:

◆ force_image_charge_sdamm()

subroutine mod_compute_image_charge::force_image_charge_sdamm ( type ( array_protein_type ), intent(in)  tab_protein,
type ( type_force_energy ), intent(in)  param_force_energy,
real ( kind=8 ), dimension ( : , : ), intent(out)  all_force,
real ( kind=8 ), dimension ( : , : ), intent(out)  all_torque 
)

Force image charge, variant for sdamm.
call identical subfunctions, just add OpenMP.

Parameters
tab_protein: instance of mod_array_protein
param_force_energy: instance of type_force_energy in mod_force_energy
all_force,all_torque: forces and torques to increment
Here is the call graph for this function:
Here is the caller graph for this function:

◆ potential_atom_variable_epsilon()

subroutine mod_compute_image_charge::potential_atom_variable_epsilon ( type ( protein ), intent(in), target  prot,
integer  i,
real ( kind=8 ), intent(in)  ychi,
real ( kind=8 ), intent(in)  zero_plane,
real ( kind=8 ), intent(out)  potential,
real ( kind=8 )  ep_scale 
)
Here is the caller graph for this function:
Imprint/Privacy