23 #include <utility/exit.hh>
24 #include <utility/vector1.hh>
29 namespace interaction_graph {
36 parent( owner, node_id, num_states )
160 #ifdef DEBUG_OTF_FLEXBB_ENERGIES
204 if ( ! prepare_for_bb_jump( alt_bb ) ) {
205 //std::cout << "INVALID MOTION" << std::endl;
206 valid_motion = false; return 0.0;
209 PackerEnergy alt_energy_for_flexseg = get_altE_for_bb_move( prev_energy_for_flexseg );
210 //std::cout << "Finished flexseg energy calc: " << alt_energy_for_flexseg << " " << prev_energy_for_flexseg << std::endl;
211 return alt_energy_for_flexseg - prev_energy_for_flexseg;
216 MinimalistFlexbbNode::PackerEnergy
217 MinimalistFlexbbNode::project_deltaE_for_backbone_move(
219 PackerEnergy & prev_energy_for_flexseg,
223 //std::cout << "Considering bb move: " << get_node_index() << " " << alt_bb << " " << curr_bb() << std::endl;
224 if ( current_state() == 0 || alt_bb == curr_bb() ) { valid_motion = false; return 0.0; }
225 set_alternate_state( closest_state_on_alt_bb()( alt_bb, current_state() ) );
226 return project_deltaE_with_backbone_move( alternate_state(), prev_energy_for_flexseg, valid_motion );
233 if ( alt_state == 0 )
return false;
235 std::cerr <<
"CANNOT MOVE TO ALT_STATE " << alt_state <<
" WHEN THERE ARE ONLY " <<
get_num_states() <<
" STATES" << std::endl;
244 #ifdef DEBUG_OTF_FLEXBB_ENERGIES
290 return alt_frag_etotal;
319 return curr_frag_etotal;
396 #ifdef DEBUG_OTF_FLEXBB_ENERGIES
503 parent( owner, node1, node2 )
544 int node_that_changed
547 int node_not_changing( !
which_node( node_that_changed ));
631 #ifdef DEBUG_OTF_FLEXBB_ENERGIES
643 #ifdef DEBUG_OTF_FLEXBB_ENERGIES
672 #ifdef DEBUG_OTF_FLEXBB_ENERGIES
686 #ifdef DEBUG_OTF_FLEXBB_ENERGIES
716 std::cerr <<
"Curr States: ";
718 std::cerr <<
"(" << ii <<
", ";
721 std::cerr << std::endl;
742 int first_node_ind = (*edge_iter)->get_first_node_ind();
743 int second_node_ind = (*edge_iter)->get_second_node_ind();
760 int & num_nodes_changing_state
771 valid_motion =
false;
773 prev_flexseg_energy = 0.0;
782 if (
get_flexbb_node( representative )->get_backbone_for_current_state() == altbb_for_flexseg ) {
789 for (
int ii = 1; ii <= nflexseg_members; ++ii ) {
793 prepare_for_altbb_move_to_closest_state( altbb_for_flexseg );
794 if ( ! move_valid ) {
801 delta_energy, prev_flexseg_energy,
802 valid_motion, num_nodes_changing_state );
813 int & num_nodes_changing_state
823 valid_motion =
false;
825 prev_flexseg_energy = 0.0;
834 get_flexbb_node( node_ind )->state_has_same_backbone_as_current( new_state )) {
836 num_nodes_changing_state = 1;
853 if ( iinode == node_ind ) {
855 if ( ! valid ) {
return; }
858 prepare_for_altbb_move_to_closest_state( altbb_for_flexseg );
859 if ( ! move_valid ) {
866 delta_energy, prev_flexseg_energy,
867 valid_motion, num_nodes_changing_state );
877 int & num_nodes_changing_state
882 Real total_frag_energy_alt( 0.0 );
883 for (
int ii = 1; ii <= nflexseg_members; ++ii ) {
886 get_frag_energy_for_alt_bb_state();
889 Real total_frag_energy_curr( 0.0 );
890 for (
int ii = 1; ii <= nflexseg_members; ++ii ) {
893 get_frag_energy_for_curr_bb_state_and_finalize_alt_energy_total();
898 delta_energy = total_frag_energy_alt - total_frag_energy_curr;
899 prev_flexseg_energy = total_frag_energy_curr;
907 #ifdef DEBUG_OTF_FLEXBB_ENERGIES
916 ObjexxFCL::FArray1_int & rotamer_on_node
936 #ifdef DEBUG_OTF_FLEXBB_ENERGIES
987 #ifdef DEBUG_OTF_FLEXBB_ENERGIES