Module to define one protein (position, orientation, is surface?)
.
More...
Data Types | |
| type | protein |
| Define properties of one solute / protein. More... | |
Functions/Subroutines | |
| subroutine | new_protein (this, irot, isurf, iflex, iimg_chg, id, vert_excl, opt_imdesolv) |
| Allocate one protein. | |
| subroutine | set_flexible (this, plist_flexible) |
| Allocate a flexible and assign the plist_flexible. | |
| subroutine | allocate_array_mdesolv (this, param_metaldesolv) |
| subroutine | delete_protein (this) |
| Destructor, normally not called directly but by mod_array_protein add new variable local_copy, simpler and allow easier for flex. | |
| subroutine | update_rot_orientation (this, mrot) |
| rotate orientation axis version with explicit terms, faster | |
| subroutine | update_rotation_protein (this, matrix_rot) |
| Rotate the position of atoms/ charges / etc. version with explicit rotation, faster now use the pointer, either points to a sogrid copy, or rotate the local copy. | |
| subroutine | info_protein (this) |
| Print info. | |
| subroutine | init_movable_array (this, sgrid, make_local_copy) |
| Make the copy of the atomic position to protein if make_local_copy is true Otherwise points to sogrid why sgrid ? already associated ? Not if flex to check. | |
| subroutine | copy_movable_array (this, opt_mat) |
| Copy movable atoms from sogrid arrays to a local copy in the protein. Needed in case of flexibility (keep a copy of the initial position), certianly sda_pmf (with option opt_mat)\ Check if local copy is true, otherwise do nothing Optional opt_mat will load the initial position locally and apply the matrix of rotation. . | |
| subroutine | select_charge (grid_number, prot1, prot2, nq1, nq2, p_charge1, p_charge2, p_charge_position1, p_charge_position2, dummy_array) |
| First version, fastest version, do not check for asymetry. . | |
| subroutine | select_charge2 (grid_number, prot1, prot2, nq1, nq2, p_charge1, p_charge2, p_charge_position1, p_charge_position2, dummy_array, opt_pgrid1, opt_pgrid2, opt_subgrid) |
| Select correct pointer for charges ( and optionaly subgrids : only lennard-jones now ). . | |
| subroutine | initialize_conformation (this, opt_conf_nb) |
| Initialize the conformation in case of flexible. replace change_conformation::init_conformation . | |
| subroutine | update_visited_conf (this, timestep) |
| update array statistics for sda_flex, use timestep rather than integer, may change | |
| subroutine | merge_visited_conf (this, to_merge) |
| subroutine | print_visited_conf (this) |
Module to define one protein (position, orientation, is surface?)
.
| subroutine mod_protein::allocate_array_mdesolv | ( | type ( protein ) | this, |
| type ( parameter_metaldesolv ) | param_metaldesolv | ||
| ) |
| subroutine mod_protein::copy_movable_array | ( | type ( protein ) | this, |
| real(kind=8), dimension(3,3), optional | opt_mat | ||
| ) |
Copy movable atoms from sogrid arrays to a local copy in the protein. Needed in case of flexibility (keep a copy of the initial position), certianly sda_pmf (with option opt_mat)\ Check if local copy is true, otherwise do nothing
Optional opt_mat will load the initial position locally and apply the matrix of rotation.
.
| subroutine mod_protein::delete_protein | ( | type ( protein ) | this | ) |
Destructor, normally not called directly but by mod_array_protein add new variable local_copy, simpler and allow easier for flex.
| subroutine mod_protein::info_protein | ( | type ( protein ), intent(in) | this | ) |
Print info.
| subroutine mod_protein::init_movable_array | ( | type ( protein ) | this, |
| type ( sogrid ), pointer | sgrid, | ||
| logical | make_local_copy | ||
| ) |
Make the copy of the atomic position to protein if make_local_copy is true Otherwise points to sogrid why sgrid ? already associated ? Not if flex to check.
| subroutine mod_protein::initialize_conformation | ( | type ( protein ) | this, |
| integer, optional | opt_conf_nb | ||
| ) |
Initialize the conformation in case of flexible.
replace change_conformation::init_conformation
.
| this | : instance of protein |
| opt_conf_nb | :: optional, indicates which conformation. If zero chosses a random one |
| subroutine mod_protein::merge_visited_conf | ( | type ( protein ) | this, |
| type ( protein ) | to_merge | ||
| ) |
| subroutine mod_protein::new_protein | ( | type ( protein ) | this, |
| logical, intent(in) | irot, | ||
| logical, intent(in) | isurf, | ||
| logical, intent(in) | iflex, | ||
| logical, intent(in) | iimg_chg, | ||
| integer, intent(in) | id, | ||
| logical, intent(in) | vert_excl, | ||
| logical, optional | opt_imdesolv | ||
| ) |
Allocate one protein.
| this | : instance of protein |
| irot | : if the solute rotates |
| isurf | : if the solute is a surface ( no rotation, no translation, different PBC ) |
| iflex | : if the solute is flexible |
| iimg_chg | : if solute should compute image_charge forces and energies |
| id | : identifier, depreceated |
| vert_excl | : should decision on whether to make an excluded volume check depend on vertical height |
| opt_imdesolv | : optional, global object mdesolv |
| subroutine mod_protein::print_visited_conf | ( | type ( protein ) | this | ) |
| subroutine mod_protein::select_charge | ( | integer, intent(in) | grid_number, |
| type ( protein ), intent(in), target | prot1, | ||
| type ( protein ), intent(in), target | prot2, | ||
| integer, intent(out) | nq1, | ||
| integer, intent(out) | nq2, | ||
| real ( kind = 8 ), dimension ( : ), intent(out), pointer | p_charge1, | ||
| real ( kind = 8 ), dimension ( : ), intent(out), pointer | p_charge2, | ||
| real ( kind=8 ), dimension(:,:), intent(out), pointer | p_charge_position1, | ||
| real ( kind=8 ), dimension(:,:), intent(out), pointer | p_charge_position2, | ||
| real ( kind = 8 ), dimension ( : ), target | dummy_array | ||
| ) |
First version, fastest version, do not check for asymetry.
.
Can be called by sdamm, because an additional check is done in compute_force/energy
Assign pointer to the correct grid / charge.
| grid_number | : grid to select |
| prot1,prot2 | : protein |
| nq1,nq2 | : number of "charges" |
| p_charge1,p_charge2 | : pointer to the "charge" value |
| p_charge_position1,p_charge_position2 | : pointer to the "charge" positions |
| dummy_array | : sned the dummy array adress, used by hydrophobic and lennard-jones |
| subroutine mod_protein::select_charge2 | ( | integer, intent(in) | grid_number, |
| type ( protein ), intent(in), target | prot1, | ||
| type ( protein ), intent(in), target | prot2, | ||
| integer, intent(out) | nq1, | ||
| integer, intent(out) | nq2, | ||
| real ( kind = 8 ), dimension ( : ), intent(out), pointer | p_charge1, | ||
| real ( kind = 8 ), dimension ( : ), intent(out), pointer | p_charge2, | ||
| real ( kind=8 ), dimension(:,:), intent(out), pointer | p_charge_position1, | ||
| real ( kind=8 ), dimension(:,:), intent(out), pointer | p_charge_position2, | ||
| real ( kind = 8 ), dimension ( : ), target | dummy_array, | ||
| type ( type_grid ), intent(out), optional, pointer | opt_pgrid1, | ||
| type ( type_grid ), intent(out), optional, pointer | opt_pgrid2, | ||
| integer, intent(in), optional | opt_subgrid | ||
| ) |
Select correct pointer for charges ( and optionaly subgrids : only lennard-jones now ).
.
Include lennard-jones grids
Check if associated, allow asymetric computation
Could replace select_charge, need benchmark.
| grid_number | : grid to select |
| prot1,prot2 | : protein |
| nq1,nq2 | : number of "charges" |
| p_charge1,p_charge2 | : pointer to the "charge" value |
| p_charge_position1,p_charge_position2 | : pointer to the "charge" positions |
| dummy_array | : sned the dummy array adress, used by hydrophobic and lennard-jones |
| opt_pgrid1,opt_pgrid2 | : optional, pointer to the grid, can be lennard-jones |
| opt_subgrid | : optional, the subgrid number ( only lj now ) |
| subroutine mod_protein::set_flexible | ( | type ( protein ) | this, |
| type ( list_flex_type ) | plist_flexible | ||
| ) |
Allocate a flexible and assign the plist_flexible.
| this | : instance of protein |
| plist_flexible | : pointer to a list_flex_type |
| subroutine mod_protein::update_rot_orientation | ( | type ( protein ) | this, |
| real ( kind=8 ), dimension(3,3), intent(in) | mrot | ||
| ) |
rotate orientation axis version with explicit terms, faster
| subroutine mod_protein::update_rotation_protein | ( | type ( protein ) | this, |
| real ( kind=8 ), dimension(3,3), intent(in) | matrix_rot | ||
| ) |
Rotate the position of atoms/ charges / etc. version with explicit rotation, faster now use the pointer, either points to a sogrid copy, or rotate the local copy.
| subroutine mod_protein::update_visited_conf | ( | type ( protein ) | this, |
| real ( kind=4 ) | timestep | ||
| ) |
update array statistics for sda_flex, use timestep rather than integer, may change
1.9.8
Imprint/Privacy