36 #include <numeric/conversions.hh>
39 #include <utility/vector1.hh>
40 #include <utility/options/BooleanVectorOption.hh>
46 namespace optimization {
65 symm_info_( symm_info ),
66 res_interacts_with_asymmetric_unit_( pose.total_residue(), false ),
68 n_independent_dof_nodes_( 0 ),
69 atom_derivatives_( pose.total_residue() )
88 iter != iter_end; ++iter ) {
89 Size jj = (*iter)->get_other_ind( ii );
103 pose.
atom_tree().
root()->setup_min_map( temp, dof_mask, *
this );
120 it != it_end; ++it ) {
121 moving_dof[ (**it).atom_id() ] =
true;
134 DOF_ID const & new_torsion,
148 dynamic_cast< conformation::symmetry::SymmetricConformation const & > (
pose_.
conformation()) );
150 if (
symm_info_->get_dof_derivative_weight( new_torsion, symm_conf ) != 0.0 ) {
165 if ( ! dof_id.
valid() )
return;
199 it != it_end; ++it, ++imap ) {
214 it != it_end; ++it, ++imap ) {
228 std::cerr <<
"DOF_ID does not exist in map! torsion= " <<
id << std::endl;
240 iter_end =
dof_nodes_.end(); iter != iter_end; ++iter ) {
257 it_end=
dof_nodes_.end(); it != it_end; ++it ) {
259 assert( last_depth == -1 || dof_node.
depth() <= last_depth );
260 last_depth = dof_node.
depth();
271 static Real const rad2deg( numeric::conversions::degrees(1.0) );
279 factor = rad2deg * 10.0;
280 }
else if ( type ==
id::D ) {
306 it != it_end; ++it, ++imap ) {
323 DOF_ID const & new_torsion,
335 if ( parent.
valid() ) {
338 dof_node->set_parent( parent_ptr );
358 assert(
symm_info_->jump_follows( cloned_jumpno ) != 0 );
362 return DOF_ID( asymmatom, cloned_dof.
type() );
367 return DOF_ID( asymmatom, cloned_dof.
type() );
381 it != it_end; ++it ) {