SDA (SDA flex)  7.2
Simulation of Diffusional Association
Data Types | Functions/Subroutines | Variables
mod_geometry Module Reference

Define a base class geometry and derivatives : sphere or box. More...

Data Types

type  sphere
 Derived class sphere. More...
 
type  box
 Derived class box. More...
 
type  geometry
 geometry is a base (common base ) class More...
 

Functions/Subroutines

subroutine init_geometry (this, pbc, escape, surface, c_surf, xmin, xmax, ymin, ymax, zmin, zmax, start_pos, record_startpos, min_height, half_sphere)
 Allocate the geometry. More...
 
subroutine delete_geometry (this)
 Delete geometry. More...
 
subroutine get_parameters (this, params_tmp)
 Get parameters of the geometry object. More...
 
subroutine update_translation (this, translation, new_pos, cell)
 Update the translation and apply all border conditions, PBC.
Sort of "virtual" function, call the appropiate update of sphere or box.
Escape could be checked here. to see later.
. More...
 
subroutine init_geometry_sphere (this, b_surf, c_surf)
 Create sphere, should be called by geometry. More...
 
subroutine get_parameters_sphere (this, param2s)
 Get parameters of the spehere. More...
 
subroutine init_geometry_box (this, xmin, xmax, ymin, ymax, zmin, zmax)
 Update translation in case of sphere. More...
 
subroutine get_parameters_box (this, params)
 Get parameters in case of box. More...
 
subroutine update_translation_box (this, translation, new_pos, pbc, surf, cell)
 Apply the translation with box. Take into account periodicity and surface. More...
 

Variables

integer, parameter enum_sphere = 1
 enumeration type More...
 
integer, parameter enum_box = 2
 

Detailed Description

Define a base class geometry and derivatives : sphere or box.

Cannot really define a base and derivatives classes, but creates an gemetry object where only the sphere or the box object will be instanciated

Different border conditions can be applied to the box
Normally PBC apply in 3 dimension ( sdamm case )
It is modified in the presence of a surface

For more details see group PBC

Function/Subroutine Documentation

◆ delete_geometry()

subroutine mod_geometry::delete_geometry ( type ( geometry this)

Delete geometry.

Delete the appropriate derived class

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

◆ get_parameters()

subroutine mod_geometry::get_parameters ( type ( geometry this,
real ( kind=4 ), dimension(6)  params_tmp 
)

Get parameters of the geometry object.

Call appropriate derived class

Parameters
this: instance of geometry
params_tmp: array to store the results
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_parameters_box()

subroutine mod_geometry::get_parameters_box ( type ( box this,
real ( kind=4 ), dimension(6), intent(out)  params 
)

Get parameters in case of box.

Should be called by geometry

Parameters
this: instance of box
params: return array to store the parameters, use all 6 for sphere
Here is the caller graph for this function:

◆ get_parameters_sphere()

subroutine mod_geometry::get_parameters_sphere ( type ( sphere this,
real ( kind=4 ), dimension(6), intent(out)  param2s 
)

Get parameters of the spehere.

Should be called by geometry

Parameters
this: instance of sphere
param2s: return array with parameters, only 2 over 6 are filed with sphere
Here is the caller graph for this function:

◆ init_geometry()

subroutine mod_geometry::init_geometry ( type ( geometry this,
logical, intent(in)  pbc,
logical, intent(in)  escape,
logical, intent(in)  surface,
real ( kind=4 ), intent(in)  c_surf,
real ( kind=4 ), intent(in)  xmin,
real ( kind=4 ), intent(in)  xmax,
real ( kind=4 ), intent(in)  ymin,
real ( kind=4 ), intent(in)  ymax,
real ( kind=4 ), intent(in)  zmin,
real ( kind=4 ), intent(in)  zmax,
real ( kind=4 ), intent(in)  start_pos,
logical, intent(in)  record_startpos,
real ( kind=4 ), intent(in)  min_height,
logical, intent(in)  half_sphere 
)

Allocate the geometry.

The type of geometry type must be setup before the call to this function

It can be set first with enum_sphere or enum_box

Parameters
this: instance of geometry
pbc: if periodic boundary conditions should apply
escape: if solute(s) can escape
surface: if the simulation contains a surface ( modify the computation of distances )
c_surf: b and c surface for sphere geometry
xmin,xmax,ymin,ymax,zmin,zmax: position of the box
start_pos: if a particular position is needed at start up ( should apply both with box and sphere )
record_startpos: record the start and end positions of two solute simulations in PDB format
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_geometry_box()

subroutine mod_geometry::init_geometry_box ( type ( box this,
real ( kind=4 )  xmin,
real ( kind=4 )  xmax,
real ( kind=4 )  ymin,
real ( kind=4 )  ymax,
real ( kind=4 )  zmin,
real ( kind=4 )  zmax 
)

Update translation in case of sphere.

Should be called by geometry
In case of sphere do nothing Create box

Assign the dimension of the box. The sizebox is computed

Parameters
this: instance of geometry
xmin,xmax,ymin,ymax,zmin,zmax: the position of the box
Here is the caller graph for this function:

◆ init_geometry_sphere()

subroutine mod_geometry::init_geometry_sphere ( type ( sphere this,
real ( kind=4 ), intent(in)  b_surf,
real ( kind=4 ), intent(in)  c_surf 
)

Create sphere, should be called by geometry.

Assign b and c surface

Parameters
this: instance of sphere
b_surf,c_surf: values of b and c surfaces
Here is the caller graph for this function:

◆ update_translation()

subroutine mod_geometry::update_translation ( type ( geometry this,
real ( kind=8 ), dimension (3), intent(in)  translation,
real ( kind=8 ), dimension (3), intent(out)  new_pos,
integer, dimension (3), intent(inout)  cell 
)

Update the translation and apply all border conditions, PBC.
Sort of "virtual" function, call the appropiate update of sphere or box.
Escape could be checked here. to see later.
.

Parameters
this: instance of geometry
translation: new position of the solute before treatment
new_pos: new position of the solute after treatment ( PBC or reflective boundaries )
cell: box information update, used with PBC (box ) of the solute
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_translation_box()

subroutine mod_geometry::update_translation_box ( type ( box this,
real ( kind=8 ), dimension (3), intent(in)  translation,
real ( kind=8 ), dimension (3), intent(out)  new_pos,
logical, intent(in)  pbc,
logical, intent(in)  surf,
integer, dimension (3), intent(inout)  cell 
)

Apply the translation with box. Take into account periodicity and surface.

Normally PBC apply in 3 dimension for box
If a surface is present, there is reflective border on zmax

Function similar in compute_distance.f90. See if we can merge
May add escape ??

Parameters
this: instance of box
translation: position of the solute before treatment of periodicity
new_pos: return the new position after periodicity and border condition
pbc: if pbc should apply
surf: if a surface is present
cell: box information for solutes
Here is the caller graph for this function:

Variable Documentation

◆ enum_box

integer, parameter mod_geometry::enum_box = 2

◆ enum_sphere

integer, parameter mod_geometry::enum_sphere = 1

enumeration type

Imprint/Privacy