SDA (SDA flex)  7.2
Simulation of Diffusional Association
Loading...
Searching...
No Matches
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