Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
core::pack::interaction_graph::SurfaceEdge< V, E, G > Class Template Reference

Defines a Surface edge which will be used in determining surface energy. More...

#include <SurfaceInteractionGraph.hh>

Inheritance diagram for core::pack::interaction_graph::SurfaceEdge< V, E, G >:
Inheritance graph
[legend]
Collaboration diagram for core::pack::interaction_graph::SurfaceEdge< V, E, G >:
Collaboration graph
[legend]

Public Types

typedef FirstClassEdge< V, E, Gparent
 

Public Member Functions

 SurfaceEdge (G *owner, int node1, int node2)
 main constructor. No default, or copy constructors, no assignment operator More...
 
virtual ~SurfaceEdge ()
 
void acknowledge_state_zeroed_surface (int node_index)
 respond to when one of its vertices enters the "unassigned" state More...
 
Real get_surface_deltaE_for_neighbor (int node_considering_substitution, int alt_state)
 returns the change in surface score for the neighbor of a node that is produced by the state substitution it is considering. More...
 
Real get_current_two_body_energy () const
 
void acknowledge_substitution_surface ()
 bookkeeping following the decision to substitute a nodes current state with the alternate it was asked to consider. More...
 
virtual void declare_energies_final ()
 Reduces memory usage in the two body energy table after the energy calculating function declares that the energies will not change thereafter. More...
 
virtual void prepare_for_simulated_annealing ()
 drops zero submatrices of the AminoAcidNeighborSparseMatrix and if the two_body_energies_ member then holds nothing, it checks whether or not its incident nodes have any sphere overlaps. If they don't then the edge deletes itself. More...
 
virtual unsigned int getMemoryUsageInBytes () const
 
Real get_max_surface_deltaE_guess (int node_changing) const
 
virtual unsigned int count_static_memory () const
 
virtual unsigned int count_dynamic_memory () const
 
void set_max_surface_deltaE ()
 
SurfaceNode< V, E, G > * get_surface_node (int index)
 
- Public Member Functions inherited from core::pack::interaction_graph::FirstClassEdge< V, E, G >
virtual ~FirstClassEdge ()
 FirstClassEdge destructor. More...
 
 FirstClassEdge (G *owner, int first_node_ind, int second_node_ind)
 FirstClassEdge constructor. More...
 

Private Member Functions

void inform_non_changing_node_of_neighbors_change ()
 tells the node that isn't considering a substitution or changing state that its neighbor who is has changed. More...
 
void track_max_magnitude_surface_deltaE ()
 Keeps track of the maximum surface deltaE seen in the last 50 commits. More...
 
 SurfaceEdge ()
 
 SurfaceEdge (SurfaceEdge< V, E, G > const &)
 
SurfaceEdge< V, E, G > & operator= (SurfaceEdge< V, E, G > const &)
 

Private Attributes

int node_changing_
 
int node_not_changing_
 
int nodes_curr_states_ [2]
 
int nodes_alt_states_ [2]
 
Real max_surface_deltaE_last_50_commits_ [2]
 
Real max_surface_deltaE_recent_50_commits_ [2]
 
Real magnitude_last_surface_deltaE_ [2]
 
int num_surface_deltaE_observations_since_update_ [2]
 

Detailed Description

template<typename V, typename E, typename G>
class core::pack::interaction_graph::SurfaceEdge< V, E, G >

Defines a Surface edge which will be used in determining surface energy.

SurfaceEdge

Member Typedef Documentation

template<typename V, typename E, typename G>
typedef FirstClassEdge< V, E, G > core::pack::interaction_graph::SurfaceEdge< V, E, G >::parent

Constructor & Destructor Documentation

template<typename V , typename E , typename G >
core::pack::interaction_graph::SurfaceEdge< V, E, G >::SurfaceEdge ( G owner,
int  node1,
int  node2 
)
template<typename V , typename E , typename G >
core::pack::interaction_graph::SurfaceEdge< V, E, G >::~SurfaceEdge ( )
virtual
template<typename V, typename E, typename G>
core::pack::interaction_graph::SurfaceEdge< V, E, G >::SurfaceEdge ( )
private
template<typename V, typename E, typename G>
core::pack::interaction_graph::SurfaceEdge< V, E, G >::SurfaceEdge ( SurfaceEdge< V, E, G > const &  )
private

Member Function Documentation

template<typename V , typename E , typename G >
void core::pack::interaction_graph::SurfaceEdge< V, E, G >::acknowledge_state_zeroed_surface ( int  node_that_changed)

respond to when one of its vertices enters the "unassigned" state

SurfaceEdge::acknowledge_state_zeroed_surface

Parameters
node_that_changed- [in] - the index of the node that changed
template<typename V , typename E , typename G >
void core::pack::interaction_graph::SurfaceEdge< V, E, G >::acknowledge_substitution_surface ( )

bookkeeping following the decision to substitute a nodes current state with the alternate it was asked to consider.

SurfaceEdge::acknowledge_substitution_surface

template<typename V , typename E , typename G >
unsigned int core::pack::interaction_graph::SurfaceEdge< V, E, G >::count_dynamic_memory ( ) const
virtual
template<typename V , typename E , typename G >
unsigned int core::pack::interaction_graph::SurfaceEdge< V, E, G >::count_static_memory ( ) const
virtual
template<typename V , typename E , typename G >
void core::pack::interaction_graph::SurfaceEdge< V, E, G >::declare_energies_final ( )
virtual

Reduces memory usage in the two body energy table after the energy calculating function declares that the energies will not change thereafter.

SurfaceEdge::declare_energies_final

Remarks
(all by apl) In the PDEdge's version of this method, after invoking two_body_energies_.drop_zero_submatrices_where_possible(); the PDEdge checks if the two body energy table it now holds is empty. If the table is empty, the edge deletes itself.

A SASAEdge should not delete itself if the pair energies are all zero since the Minkowski sum of a water and a van der Waal's sphere extends further out from an atoms center than its (lj_atr, lj_rep, lksolv) interaction sphere. However, if a SASAEdge holds no pair energies, it's a very good candidate for removal – it just first needs to check that no (vdw + 1.4 A) spheres overlap between any pair of rotamers on the edges it connects.

template<typename V, typename E, typename G>
Real core::pack::interaction_graph::SurfaceEdge< V, E, G >::get_current_two_body_energy ( ) const
template<typename V , typename E , typename G >
Real core::pack::interaction_graph::SurfaceEdge< V, E, G >::get_max_surface_deltaE_guess ( int  node_changing) const
template<typename V , typename E , typename G >
Real core::pack::interaction_graph::SurfaceEdge< V, E, G >::get_surface_deltaE_for_neighbor ( int  node_considering_substitution,
int  alt_state 
)

returns the change in surface score for the neighbor of a node that is produced by the state substitution it is considering.

SurfaceEdge::get_surface_deltaE_for_neighbor

Detailed:
Need to tell the node that's not changing which node is considering the change and what the alternate state it might change to is. Then that node can recompute it's change in se hp nb count and return a change in score.
template<typename V, typename E, typename G>
SurfaceNode< V, E, G >* core::pack::interaction_graph::SurfaceEdge< V, E, G >::get_surface_node ( int  index)
inline
template<typename V , typename E , typename G >
unsigned int core::pack::interaction_graph::SurfaceEdge< V, E, G >::getMemoryUsageInBytes ( ) const
virtual

SurfaceEdge::getMemoryUsageInBytes

Remarks
Not implemented.
template<typename V , typename E , typename G >
void core::pack::interaction_graph::SurfaceEdge< V, E, G >::inform_non_changing_node_of_neighbors_change ( )
inlineprivate

tells the node that isn't considering a substitution or changing state that its neighbor who is has changed.

SurfaceEdge::inform_non_changing_node_of_neighbors_change

template<typename V, typename E, typename G>
SurfaceEdge< V, E, G >& core::pack::interaction_graph::SurfaceEdge< V, E, G >::operator= ( SurfaceEdge< V, E, G > const &  )
private
template<typename V , typename E , typename G >
void core::pack::interaction_graph::SurfaceEdge< V, E, G >::prepare_for_simulated_annealing ( )
virtual

drops zero submatrices of the AminoAcidNeighborSparseMatrix and if the two_body_energies_ member then holds nothing, it checks whether or not its incident nodes have any sphere overlaps. If they don't then the edge deletes itself.

SurfaceEdge::prepare_for_simulated_annealing

template<typename V, typename E, typename G>
void core::pack::interaction_graph::SurfaceEdge< V, E, G >::set_max_surface_deltaE ( )
inline
template<typename V , typename E , typename G >
void core::pack::interaction_graph::SurfaceEdge< V, E, G >::track_max_magnitude_surface_deltaE ( )
private

Keeps track of the maximum surface deltaE seen in the last 50 commits.

SurfaceEdge::track_max_magnitude_surface_deltaE

Member Data Documentation

template<typename V, typename E, typename G>
Real core::pack::interaction_graph::SurfaceEdge< V, E, G >::magnitude_last_surface_deltaE_[2]
private
template<typename V, typename E, typename G>
Real core::pack::interaction_graph::SurfaceEdge< V, E, G >::max_surface_deltaE_last_50_commits_[2]
private
template<typename V, typename E, typename G>
Real core::pack::interaction_graph::SurfaceEdge< V, E, G >::max_surface_deltaE_recent_50_commits_[2]
private
template<typename V, typename E, typename G>
int core::pack::interaction_graph::SurfaceEdge< V, E, G >::node_changing_
private
template<typename V, typename E, typename G>
int core::pack::interaction_graph::SurfaceEdge< V, E, G >::node_not_changing_
private
template<typename V, typename E, typename G>
int core::pack::interaction_graph::SurfaceEdge< V, E, G >::nodes_alt_states_[2]
private
template<typename V, typename E, typename G>
int core::pack::interaction_graph::SurfaceEdge< V, E, G >::nodes_curr_states_[2]
private
template<typename V, typename E, typename G>
int core::pack::interaction_graph::SurfaceEdge< V, E, G >::num_surface_deltaE_observations_since_update_[2]
private

The documentation for this class was generated from the following file: