Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Namespaces | Classes | Typedefs | Functions
core::optimization Namespace Reference

Namespaces

 symmetry
 

Classes

class  ArmijoLineMinimization
 
class  AtomTreeMinimizer
 High-level atom tree minimizer class. More...
 
class  AtomTreeMultifunc
 Atom tree multifunction class. More...
 
class  BrentLineMinimization
 
class  CartesianMinimizer
 High-level atom tree minimizer class. More...
 
class  CartesianMinimizerMap
 
class  CartesianMultifunc
 Atom tree multifunction class. More...
 
class  ConvergenceTest
 
class  DerivCheckDataPoint
 
class  DescentDirectionAlgorithm
 
class  DFPMinConvergedAbsolute
 
class  DFPMinConvergedFractional
 
class  DOF_DataPoint
 
class  DOF_Node
 
class  EItem
 Inner class for Genetic Algorithm, hold one population with some additional info. More...
 
class  func_1d
 
class  GA_Minimizer
 
class  JJH_Minimizer
 
class  lbfgs_iteration_data
 
class  LineMinimizationAlgorithm
 
class  Minimizer
 Simple low-level minimizer class. More...
 
class  MinimizerMap
 
class  MinimizerOptions
 
class  Multifunc
 Multifunction interface class. More...
 
class  NelderMeadSimplex
 
class  NumDerivCheckData
 
class  NumericalDerivCheckResult
 
class  Particle
 Simple data container for PSO algorithm. More...
 
class  ParticleSwarmMinimizer
 Particle Swarm Optimization engine. More...
 
class  SimpleDerivCheckResult
 
class  SingleResidueMultifunc
 A streamlined AtomTreeMultifunc designed specifically for RTMIN. More...
 
struct  sort_pred
 
class  StrongWolfeLineMinimization
 

Typedefs

typedef
utility::pointer::shared_ptr
< AtomTreeMinimizer
AtomTreeMinimizerOP
 
typedef
utility::pointer::shared_ptr
< AtomTreeMinimizer const > 
AtomTreeMinimizerCOP
 
typedef boost::tuple< Vector,
Vector, Vector, Vector
VectorQuad
 
typedef
utility::pointer::shared_ptr
< CartesianMinimizer
CartesianMinimizerOP
 
typedef
utility::pointer::shared_ptr
< CartesianMinimizer const > 
CartesianMinimizerCOP
 
typedef
utility::pointer::shared_ptr
< CartesianMinimizerMap
CartesianMinimizerMapOP
 
typedef
utility::pointer::shared_ptr
< CartesianMinimizerMap const > 
CartesianMinimizerMapCOP
 
typedef
utility::pointer::shared_ptr
< DOF_Node
DOF_NodeOP
 
typedef
utility::pointer::shared_ptr
< DOF_Node const > 
DOF_NodeCOP
 
typedef
utility::pointer::shared_ptr
< LineMinimizationAlgorithm
LineMinimizationAlgorithmOP
 
typedef
utility::pointer::shared_ptr
< LineMinimizationAlgorithm
const > 
LineMinimizationAlgorithmCOP
 
typedef
utility::pointer::shared_ptr
< MinimizerMap
MinimizerMapOP
 
typedef
utility::pointer::shared_ptr
< MinimizerMap const > 
MinimizerMapCOP
 
typedef
utility::pointer::shared_ptr
< MinimizerOptions
MinimizerOptionsOP
 
typedef
utility::pointer::shared_ptr
< MinimizerOptions const > 
MinimizerOptionsCOP
 
typedef
utility::pointer::shared_ptr
< Multifunc
MultifuncOP
 
typedef
utility::pointer::shared_ptr
< Multifunc const > 
MultifuncCOP
 
typedef
utility::pointer::shared_ptr
< SimpleDerivCheckResult
SimpleDerivCheckResultOP
 
typedef
utility::pointer::shared_ptr
< SimpleDerivCheckResult const > 
SimpleDerivCheckResultCOP
 
typedef
utility::pointer::shared_ptr
< NumDerivCheckData
NumDerivCheckDataOP
 
typedef
utility::pointer::shared_ptr
< NumDerivCheckData const > 
NumDerivCheckDataCOP
 
typedef
utility::pointer::shared_ptr
< NumericalDerivCheckResult
NumericalDerivCheckResultOP
 
typedef
utility::pointer::shared_ptr
< NumericalDerivCheckResult
const > 
NumericalDerivCheckResultCOP
 
typedef
utility::pointer::shared_ptr
< Particle
ParticleOP
 
typedef
utility::pointer::shared_ptr
< Particle const > 
ParticleCOP
 
typedef utility::vector1
< ParticleOP
ParticleOPs
 
typedef
utility::pointer::shared_ptr
< ParticleSwarmMinimizer
ParticleSwarmMinimizerOP
 
typedef
utility::pointer::shared_ptr
< ParticleSwarmMinimizer const > 
ParticleSwarmMinimizerCOP
 
typedef utility::vector1< RealMultivec
 

Functions

static basic::Tracer TR ("core.optimization")
 
void atom_tree_dfunc (pose::Pose &pose, MinimizerMap &min_map, scoring::ScoreFunction const &scorefxn, Multivec const &vars, Multivec &dE_dvars)
 
Real torsional_derivative_from_cartesian_derivatives (kinematics::tree::Atom const &atom, optimization::DOF_Node const &dof_node, Real dof_deriv, Real torsion_scale_factor)
 
void atom_tree_get_atompairE_deriv (pose::Pose &pose, MinimizerMap &min_map, scoring::ScoreFunction const &scorefxn)
 
SimpleDerivCheckResult simple_numeric_deriv_check (Multifunc const &func, Multivec const &start_vars, Multivec const &dE_dvars, bool send_to_stdout, bool verbose, Size nsteps=5, Real const increment=0.0005)
 Numeric deriv check for Multifuncs other than the AtomTreeMultifunc. More...
 
void numerical_derivative_check (MinimizerMap const &min_map, Multifunc const &func, Multivec const &start_vars, Multivec const &dE_dvars, NumericalDerivCheckResultOP deriv_check_result, bool const verbose)
 
static basic::Tracer TR ("core.optimization.AtomTreeMinimizer")
 
static basic::Tracer TR ("core.optimization")
 
void cartesian_dfunc (pose::Pose &pose, CartesianMinimizerMap &min_map, scoring::ScoreFunction const &scorefxn, Multivec const &vars, Multivec &dE_dvars)
 
void cartesian_collect_atompairE_deriv (pose::Pose &pose, CartesianMinimizerMap &min_map, scoring::ScoreFunction const &scorefxn, Multivec &dE_dvars, core::Real scale)
 
void cartesian_collect_torsional_deriv (pose::Pose &pose, CartesianMinimizerMap &min_map, core::scoring::ScoreFunction const &scorefxn, Multivec &dE_dvars, core::Real scale)
 
void cart_numerical_derivative_check (CartesianMinimizerMap const &min_map, CartesianMultifunc const &func, Multivec const &start_vars, Multivec const &dE_dvars, NumericalDerivCheckResultOP deriv_check_result, bool const verbose)
 
void tors_deriv_to_cartesian (Real dE_dtor, VectorQuad const &coords, VectorQuad &dE_dxs)
 
static basic::Tracer TR ("core.optimization.CartesianMinimizer")
 
static basic::Tracer TR ("core.optimization.GA_Minimizer")
 
static bool yes_no_random (Real probability)
 Return true with given probability. More...
 
static basic::Tracer TR ("core.optimization.LineMinimizer")
 
static basic::Tracer TR ("core.optimization.Minimizer")
 
bool DOF_Node_sorter (DOF_NodeCOP a, DOF_NodeCOP b)
 
static basic::Tracer TR ("core.optimization.NelderMeadSimplex")
 
std::ostream & operator<< (std::ostream &os, Particle const &p)
 stream output operator for Particle types More...
 
bool cmp_particles (ParticleOP a, ParticleOP b)
 

Typedef Documentation

typedef utility::pointer::shared_ptr< AtomTreeMinimizer const > core::optimization::AtomTreeMinimizerCOP
typedef utility::pointer::shared_ptr< AtomTreeMinimizer > core::optimization::AtomTreeMinimizerOP
typedef utility::pointer::shared_ptr< CartesianMinimizer const > core::optimization::CartesianMinimizerCOP
typedef utility::pointer::shared_ptr< CartesianMinimizerMap const > core::optimization::CartesianMinimizerMapCOP
typedef utility::pointer::shared_ptr< CartesianMinimizerMap > core::optimization::CartesianMinimizerMapOP
typedef utility::pointer::shared_ptr< CartesianMinimizer > core::optimization::CartesianMinimizerOP
typedef utility::pointer::shared_ptr< DOF_Node const > core::optimization::DOF_NodeCOP
typedef utility::pointer::shared_ptr< DOF_Node > core::optimization::DOF_NodeOP
typedef utility::pointer::shared_ptr< LineMinimizationAlgorithm const > core::optimization::LineMinimizationAlgorithmCOP
typedef utility::pointer::shared_ptr< MinimizerMap const > core::optimization::MinimizerMapCOP
typedef utility::pointer::shared_ptr< MinimizerMap > core::optimization::MinimizerMapOP
typedef utility::pointer::shared_ptr< MinimizerOptions const > core::optimization::MinimizerOptionsCOP
typedef utility::pointer::shared_ptr< MinimizerOptions > core::optimization::MinimizerOptionsOP
typedef utility::pointer::shared_ptr< Multifunc const > core::optimization::MultifuncCOP
typedef utility::pointer::shared_ptr< Multifunc > core::optimization::MultifuncOP
typedef utility::vector1< Real > core::optimization::Multivec
typedef utility::pointer::shared_ptr< NumDerivCheckData const > core::optimization::NumDerivCheckDataCOP
typedef utility::pointer::shared_ptr< NumDerivCheckData > core::optimization::NumDerivCheckDataOP
typedef utility::pointer::shared_ptr< NumericalDerivCheckResult const > core::optimization::NumericalDerivCheckResultCOP
typedef utility::pointer::shared_ptr< Particle const > core::optimization::ParticleCOP
typedef utility::pointer::shared_ptr< Particle > core::optimization::ParticleOP
typedef utility::vector1< ParticleOP > core::optimization::ParticleOPs
typedef utility::pointer::shared_ptr< ParticleSwarmMinimizer const > core::optimization::ParticleSwarmMinimizerCOP
typedef utility::pointer::shared_ptr< SimpleDerivCheckResult const > core::optimization::SimpleDerivCheckResultCOP

Function Documentation

void core::optimization::atom_tree_dfunc ( pose::Pose pose,
MinimizerMap &  min_map,
scoring::ScoreFunction const &  scorefxn,
Multivec const &  vars,
Multivec &  dE_dvars 
)

car note that this calculates the deriv for all torsion angles even car those that are fixed. Because of the way that the derivative is car calculated, I don't believe this is a significant slow down (ie car have to run over all the atom pairs twice, regardless of the number car of torsion angles)

car multiple neighborlists: car cendist centroid distances in current structure, cutoff for vdw car dis2_tether centroid distances in tether structure, cutoff for tether

db computes the derivative of E with respect to each db of the torsion angles. Using the chain rule, we have db db dE/d phi = dE/dr * dr/dphi db db dr/dphi = Eab x (V-Vb) . (V' - V)/|V-V'| db db (the first cross product is the displacement of V upon a rotation dphi db around the unit vector Eab, Vb is the coordinates of the second atom in db the bond) db car dE/dR = 2r (for vdw at least) db since | V-V'| = r, db db dE/ dphi = 2 Eab x (V-Vb) . (V' - V) db db note that Eab and Vb are different for each torsion angle, but V' db and V are the same. rearranging: db db = - 2 Eab X Vb . (V' - V) - 2 Eab . (V' x V). db db now we need the averages over all Vi of the difference and the db crossproduct of V and V'.

car below, Eab x Vb is 'vec' car Eab is 'unit' car (V'-V) is 'f2' car 'F2tot' = f2*dE_dR (cumulative) car (V' X V) is 'f1' ('F1_xxxE' is cumulative for potential xxx) car eval_dE_dR actually returns dE_dR/r

car if two atoms are fixed relatively in cartesian space, then dr/dphi = 0 car and there is no contribution to the derivative

References core::kinematics::AtomTree::atom(), core::optimization::DOF_Node::atom_id(), core::pose::Pose::atom_tree(), atom_tree_get_atompairE_deriv(), core::optimization::MinimizerMap::begin(), core::optimization::MinimizerMap::copy_dofs_to_pose(), core::optimization::DOF_Node::dof_id(), core::optimization::MinimizerMap::end(), core::scoring::ScoreFunction::eval_dof_derivative(), core::scoring::ScoreFunction::finalize_after_derivatives(), core::optimization::MinimizerMap::link_torsion_vectors(), core::optimization::MinimizerMap::nangles(), core::scoring::ScoreFunction::setup_for_derivatives(), core::optimization::DOF_Node::torsion_id(), core::optimization::MinimizerMap::torsion_scale_factor(), torsional_derivative_from_cartesian_derivatives(), and core::optimization::MinimizerMap::zero_torsion_vectors().

Referenced by core::optimization::AtomTreeMultifunc::dfunc(), protocols::ncbb::SecStructMinimizeMultiFunc::dfunc(), and protocols::normalmode::NormalModeMultifunc::dfunc().

void core::optimization::atom_tree_get_atompairE_deriv ( pose::Pose pose,
MinimizerMap &  min_map,
scoring::ScoreFunction const &  scorefxn 
)
void core::optimization::cart_numerical_derivative_check ( CartesianMinimizerMap const &  min_map,
CartesianMultifunc const &  func,
Multivec const &  start_vars,
Multivec const &  dE_dvars,
NumericalDerivCheckResultOP  deriv_check_result,
bool const  verbose 
)
void core::optimization::cartesian_collect_atompairE_deriv ( pose::Pose pose,
CartesianMinimizerMap min_map,
scoring::ScoreFunction const &  scorefxn,
Multivec dE_dvars,
core::Real  scale 
)
void core::optimization::cartesian_collect_torsional_deriv ( pose::Pose pose,
CartesianMinimizerMap min_map,
core::scoring::ScoreFunction const &  scorefxn,
Multivec dE_dvars,
core::Real  scale 
)
void core::optimization::cartesian_dfunc ( pose::Pose pose,
CartesianMinimizerMap min_map,
scoring::ScoreFunction const &  scorefxn,
Multivec const &  vars,
Multivec dE_dvars 
)
bool core::optimization::cmp_particles ( ParticleOP  a,
ParticleOP  b 
)
bool core::optimization::DOF_Node_sorter ( DOF_NodeCOP  a,
DOF_NodeCOP  b 
)
void core::optimization::numerical_derivative_check ( MinimizerMap const &  min_map,
Multifunc const &  func,
Multivec const &  start_vars,
Multivec const &  dE_dvars,
NumericalDerivCheckResultOP  deriv_check_result,
bool const  verbose 
)
std::ostream & core::optimization::operator<< ( std::ostream &  os,
Particle const &  p 
)
SimpleDerivCheckResult core::optimization::simple_numeric_deriv_check ( Multifunc const &  func,
Multivec const &  start_vars,
Multivec const &  dE_dvars,
bool  send_to_stdout,
bool  verbose,
Size  nsteps,
Real const  increment 
)
void core::optimization::tors_deriv_to_cartesian ( Real  dE_dtor,
VectorQuad const &  coords,
VectorQuad dE_dxs 
)
Real core::optimization::torsional_derivative_from_cartesian_derivatives ( kinematics::tree::Atom const &  atom,
optimization::DOF_Node const &  dof_node,
Real  dof_deriv,
Real  torsion_scale_factor 
)
static basic::Tracer core::optimization::TR ( "core.optimization.GA_Minimizer"  )
static
static basic::Tracer core::optimization::TR ( "core.optimization.NelderMeadSimplex"  )
static
static basic::Tracer core::optimization::TR ( "core.optimization.Minimizer"  )
static
static basic::Tracer core::optimization::TR ( "core.optimization.AtomTreeMinimizer"  )
static
static basic::Tracer core::optimization::TR ( "core.optimization.CartesianMinimizer"  )
static
static basic::Tracer core::optimization::TR ( "core.optimization.LineMinimizer"  )
static
static basic::Tracer core::optimization::TR ( "core.optimization"  )
static
static basic::Tracer core::optimization::TR ( "core.optimization"  )
static
static bool core::optimization::yes_no_random ( Real  probability)
static