Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BranchCoef1.hh
Go to the documentation of this file.
1 // (c) Copyright Rosetta Commons Member Institutions.
2 // (c) This file is part of the Rosetta software suite and is made available under license.
3 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
4 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
5 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
6 
7 /// @file protocols/branch_angle/BranchCoef1.hh
8 /// @brief definition/implementation of BranchCoef1 class and methods
9 /// @author Colin A. Smith (colin.smith@ucsf.edu)
10 
11 
12 #ifndef INCLUDED_protocols_branch_angle_BranchCoef1_hh
13 #define INCLUDED_protocols_branch_angle_BranchCoef1_hh
14 
16 
17 // Core Headers
18 #include <core/types.hh>
19 
20 namespace protocols {
21 namespace branch_angle {
22 
23 /// @brief
24 /// a class to store coefficients for branching angle optimization around a
25 /// single atom atom with three bonded neighbors
26 class BranchCoef1 {
27 
28 public:
29 
40  ):
41  overall_Ktheta_(overall_Ktheta),
42  overall_theta0_(overall_theta0),
43  overall_energy0_(overall_energy0),
44  b1_torsion_offset_A_(b1_torsion_offset_A),
45  b1_torsion_offset_B_(b1_torsion_offset_B),
46  b1_torsion_offset_C_(b1_torsion_offset_C),
47  b1_bond_angle_A_(b1_bond_angle_A),
48  b1_bond_angle_B_(b1_bond_angle_B),
49  b1_bond_angle_C_(b1_bond_angle_C)
50  {}
51 
52  /// @brief get overall Ktheta parameter
55  {
56  return overall_Ktheta_;
57  }
58 
59  /// @brief get overall theta0 parameter
62  {
63  return overall_theta0_;
64  }
65 
66  /// @brief get overall energy0 parameter
69  {
70  return overall_energy0_;
71  }
72 
73  /// @brief get branching atom 1 torsion offset A coefficient (angle^0)
76  {
77  return b1_torsion_offset_A_;
78  }
79 
80  /// @brief get branching atom 1 torsion offset B coefficient (angle^1)
83  {
84  return b1_torsion_offset_B_;
85  }
86 
87  /// @brief get branching atom 1 torsion offset C coefficient (angle^2)
90  {
91  return b1_torsion_offset_C_;
92  }
93 
94  /// @brief get branching atom 1 bond angle A coefficient (angle^0)
97  {
98  return b1_bond_angle_A_;
99  }
100 
101  /// @brief get branching atom 1 bond angle B coefficient (angle^1)
102  core::Real
104  {
105  return b1_bond_angle_B_;
106  }
107 
108  /// @brief get branching atom 1 bond angle C coefficient (angle^2)
109  core::Real
111  {
112  return b1_bond_angle_C_;
113  }
114 
115  /// @brief calculate single branching angles for a main chain bond angle
116  void
118  core::Real const m2_bond_angle,
119  core::Real & b1_torsion_offset,
120  core::Real & b1_bond_angle
121  ) const
122  {
123  b1_torsion_offset = b1_torsion_offset_A_ +
124  m2_bond_angle * (b1_torsion_offset_B_ + m2_bond_angle * b1_torsion_offset_C_);
125  b1_bond_angle = b1_bond_angle_A_ + m2_bond_angle * (b1_bond_angle_B_ + m2_bond_angle * b1_bond_angle_C_);
126  }
127 
128 private:
129 
139 };
140 
141 } // branch_angle
142 } // protocols
143 
144 #endif