21 #ifndef _intco_simple_h
22 #define _intco_simple_h
27 #include <util/class/class.h>
28 #include <util/state/state.h>
29 #include <util/keyval/keyval.h>
30 #include <chemistry/molecule/molecule.h>
31 #include <chemistry/molecule/coor.h>
33 #include <math/scmat/vector3.h>
140 #define SimpleCo_DECLARE(classname) \
142 virtual classname& operator=(const classname&); \
143 SimpleCo& operator=(const SimpleCo&); \
144 double calc_force_con(Molecule&); \
145 double calc_intco(Molecule&, double* =0, double =1); \
146 classname(StateIn&); \
147 void save_data_state(StateOut&)
149 #define SimpleCo_IMPL_eq(classname) \
150 SimpleCo& classname::operator=(const SimpleCo& c) \
152 classname *cp = dynamic_cast<classname*>((SimpleCo*)&c); \
164 #define SimpleCo_IMPL_StateIn(classname) \
165 classname::classname(StateIn&si): \
170 #define SimpleCo_IMPL_save_data_state(classname) \
171 void classname::save_data_state(StateOut&so) \
173 SimpleCo::save_data_state(so); \
176 #define SimpleCo_IMPL(classname) \
177 SimpleCo_IMPL_eq(classname) \
178 SimpleCo_IMPL_StateIn(classname) \
179 SimpleCo_IMPL_save_data_state(classname)
207 const char *
ctype()
const;
221 static const double rtd = 180.0/M_PI;
252 const char *
ctype()
const;
310 const char *
ctype()
const;
373 const char *
ctype()
const;
422 const char *
ctype()
const;
477 const char *
ctype()
const;
535 const char *
ctype()
const;
double preferred_value() const
Returns the value of the angle abc in degrees.
double degrees() const
Returns the value of the angle abc in degrees.
void bmat(const Ref< Molecule > &, RefSCVector &bmat, double coef=1.0)
Fill in a row of the B matrix.
double radians() const
Returns the value of the angle abc in radians.
The StreSimpleCo class describes an stretch internal coordinate of a molecule.
Definition: simple.h:191
The Molecule class contains information about molecules.
Definition: molecule.h:149
const char * ctype() const
Always returns the string "BEND".
double preferred_value() const
Returns the value of the angle abc in degrees.
double preferred_value() const
Returns the value of the angle abc in degrees.
const char * ctype() const
Always returns the string "LINIP".
A template class that maintains references counts.
Definition: ref.h:361
The LinOPSimpleCo class describes an out-of-plane component of a linear bend internal coordinate of a...
Definition: simple.h:515
double preferred_value() const
Returns the value of the angle abc in degrees.
const char * ctype() const
Always returns the string "STRE".
double radians() const
Returns the value of the angle abc in radians.
int operator[](int i) const
Returns the index of the i'th atom in the coordinate.
double radians() const
Returns the value of the angle abc in radians.
double angstrom() const
Returns the distance between the two atoms in angstrom units.
double degrees() const
Returns the value of the angle abc in degrees.
void update_value(const Ref< Molecule > &)
Recalculates the value of the coordinate based on the geometry in the Molecule.
const char * ctype() const
Always returns the string "LINIP".
double degrees() const
Returns the value of the angle abc in degrees.
void print_details(const Ref< Molecule > &, std::ostream &=ExEnv::out0()) const
Print the coordinate.
The RefSCVector class is a smart pointer to an SCVector specialization.
Definition: matrix.h:55
Definition: stateout.h:71
double degrees() const
Returns the value of the angle abc in degrees.
int equivalent(Ref< IntCoor > &)
Tests to see if two coordinates are equivalent to each other.
The SimpleCo abstract class describes a simple internal coordinate of a molecule.
Definition: simple.h:81
double bohr() const
Returns the distance between the two atoms in atomic units.
The LinIPSimpleCo class describes an in-plane component of a linear bend internal coordinate of a mol...
Definition: simple.h:457
a 3-element version of SCVector
Definition: vector3.h:43
static std::ostream & out0()
Return an ostream that writes from node 0.
double preferred_value() const
Returns the distance between the two atoms in angstrom units.
The IntCoor abstract class describes an internal coordinate of a molecule.
Definition: coor.h:45
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
The BendSimpleCo class describes an bend internal coordinate of a molecule.
Definition: simple.h:236
virtual double calc_intco(Molecule &, double *=0, double=1)=0
Calculate the value of the coordinate based on what's in Molecule.
virtual double calc_force_con(Molecule &)=0
Calculates an approximate force constant and returns it's value.
const char * ctype() const
Always returns the string "OUT".
double radians() const
Returns the value of the angle abc in radians.
double force_constant(Ref< Molecule > &)
Returns an approximate force constant (a la Almlof).
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
int natoms() const
Returns the number of atoms in the coordinate.
Generated at Sun Jan 26 2020 23:23:57 for MPQC
3.0.0-alpha using the documentation package Doxygen
1.8.16.