SDA (SDA flex)  7.2
Simulation of Diffusional Association
Loading...
Searching...
No Matches
Data Types
mod_analytic Module Reference

Analytical expressions, store energy and force in precomputed array. More...

Data Types

type  analytic
 Define tyoe analytic interactions (Debye-Huckel/crowders) More...
 

Functions/Subroutines

subroutine allocate_analytic (this)
 Allocate the object with default values, arrays filled by param_force_energy:init_analytic when all data (cutoff,..) are known.
 
subroutine deallocate_analytic (this)
 Deallocate all analytic arrays.
.
 
subroutine set_analytic_params (this, h, max_size, epfct, dh_radius, vol_radius, rep_radius, surface_charge_dens, surf_prefct, gouy_chapman)
 fill the arrays, here need to setup dimension
 
subroutine set_dh_params (this, opt_ionic)
 Initialize debye-huckel parameters.
 
subroutine fill_array_dh (this, list_dh_radius)
 
subroutine set_zeroes (this, cutoff)
 Specific to Debye-Huckel set zero for at distance where the grid is available Allow to call normal electrostatic and debye-huckel without taking care (hopefully)
 
real(kind=8) function get_energy_analytic (this, bin, type_nb)
 Return precomputed energy values.
 
real(kind=8) function get_force_analytic (this, bin, type_nb)
 Return precomputed force values.
 
real(kind=8) function get_force_analytic_hom_charged_surf (this, bin, type_nb)
 
subroutine print_analytic (this)
 Print values of array force and energy.
Called by info_analytic.
 
subroutine info_analytic (this, opt_print)
 Print info about analytical grids.
 
subroutine print_analytic_external (this)
 
subroutine print_analytic_external_hom_charged_surf (this)
 
subroutine fill_array_rep (this, list_rep_radius, rep_bfct)
 Precompute values of the spherical repulsion array.
 

Detailed Description

Analytical expressions, store energy and force in precomputed array.

Todo:
Extend to the case of a surface

Function/Subroutine Documentation

◆ allocate_analytic()

subroutine mod_analytic::allocate_analytic ( type ( analytic this)

Allocate the object with default values, arrays filled by param_force_energy:init_analytic when all data (cutoff,..) are known.

Parameters
this: instance of mod_analytic
Here is the caller graph for this function:

◆ deallocate_analytic()

subroutine mod_analytic::deallocate_analytic ( type ( analytic this)

Deallocate all analytic arrays.
.

Parameters
this: instance of mod_analytic
Here is the caller graph for this function:

◆ fill_array_dh()

subroutine mod_analytic::fill_array_dh ( type ( analytic this,
real (kind=8), dimension(:)  list_dh_radius 
)

Convert to kT/A

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

◆ fill_array_rep()

subroutine mod_analytic::fill_array_rep ( type(analytic), intent(inout this,
real(kind=8), dimension(:), intent(in list_rep_radius,
real(kind=8), intent(in rep_bfct 
)

Precompute values of the spherical repulsion array.

  • In this model, the repulsion between a pair of spheres of radii a1 and a2 is V(r) = ((a1+a2)/(r-b(a1+a2)))^6 in units kT.
  • NOTE: DH array is divided by two so interaction can be calculated in both directions, then added. Same done here for consistency.
Parameters
this: instance of mod_analytic::analytic
list_rep_radius: array containing the radii of all solutes.
rep_bfct: the parameter b in the eqn above.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_energy_analytic()

real(kind=8) function mod_analytic::get_energy_analytic ( type ( analytic this,
integer  bin,
integer  type_nb 
)

Return precomputed energy values.

Parameters
this: instance of mod_analytic
bin: integer bin number
type_nb: integer number corresponding to the type of protein

◆ get_force_analytic()

real(kind=8) function mod_analytic::get_force_analytic ( type ( analytic this,
integer  bin,
integer  type_nb 
)

Return precomputed force values.

Parameters
this: instance of mod_analytic
bin: integer bin number
type_nb: integer number corresponding to the type of protein

◆ get_force_analytic_hom_charged_surf()

real(kind=8) function mod_analytic::get_force_analytic_hom_charged_surf ( type ( analytic this,
integer  bin,
integer  type_nb 
)

◆ info_analytic()

subroutine mod_analytic::info_analytic ( type ( analytic this,
logical, optional  opt_print 
)

Print info about analytical grids.

Should apply to all, not only D-H

Parameters
this: instance of mod_analytic
opt_print: optional, print full arrays
Here is the call graph for this function:
Here is the caller graph for this function:

◆ print_analytic()

subroutine mod_analytic::print_analytic ( type ( analytic this)

Print values of array force and energy.
Called by info_analytic.

Parameters
this: instance of mod_analytic
Here is the caller graph for this function:

◆ print_analytic_external()

subroutine mod_analytic::print_analytic_external ( type ( analytic this)
Here is the caller graph for this function:

◆ print_analytic_external_hom_charged_surf()

subroutine mod_analytic::print_analytic_external_hom_charged_surf ( type ( analytic this)

◆ set_analytic_params()

subroutine mod_analytic::set_analytic_params ( type ( analytic this,
real(kind=8), intent(in h,
real(kind=4), intent(in max_size,
real(kind=8), intent(in epfct,
real(kind=8), intent(in dh_radius,
real(kind=8), intent(in vol_radius,
real(kind=8), intent(in rep_radius,
real(kind=8), intent(in surface_charge_dens,
real(kind=8), intent(in surf_prefct,
logical, intent(in gouy_chapman 
)

fill the arrays, here need to setup dimension

Parameters
this: instance of mod_analytic
h: bin size of the precomputed arrays
max_size: extensiom of DH, half the box for sdamm, c-surface for sda_2proteins
epfct: scaling factor for DH electrostatics. Like grid calcs, usually 0.5 to stop double counting
dh_radius: radius of this solute used for dh cavity
vol_radius: radius of this solute used for volume occupancy
rep_radius: radius of this solute used for repulsive crowder interactions
surface_charge_dens: charge density for DH charged surface routine.
Here is the caller graph for this function:

◆ set_dh_params()

subroutine mod_analytic::set_dh_params ( type ( analytic this,
real(kind=4), optional  opt_ionic 
)

Initialize debye-huckel parameters.

Parameters
this: instance of mod_analytic
opt_ionic: optional, if present set the ionic strength
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_zeroes()

subroutine mod_analytic::set_zeroes ( type ( analytic this,
real ( kind=4 )  cutoff 
)

Specific to Debye-Huckel set zero for at distance where the grid is available Allow to call normal electrostatic and debye-huckel without taking care (hopefully)

Parameters
this: instance of mod_analytic
cutoff: max distance to which the value is set to 0
Imprint/Privacy