# sc_SumMolecularEnergy - Man Page

sc::SumMolecularEnergy

## Synopsis

Inherits **sc::MolecularEnergy**.

Inherited by **sc::MP2BasisExtrap**.

### Public Member Functions

**SumMolecularEnergy** (const **Ref**< **KeyVal** > &)**SumMolecularEnergy** (**StateIn** &)

void **save_data_state** (**StateOut** &)

Save the base classes (with save_data_state) and the members in the same order that the **StateIn** CTOR initializes them.

int **value_implemented** () const

Information about the availability of values, gradients, and hessians.

int **gradient_implemented** () const

int **hessian_implemented** () const

void **set_x** (const **RefSCVector** &)

Set and retrieve the coordinate values.

Public Member Functions inherited from **sc::MolecularEnergy****MolecularEnergy** (const **MolecularEnergy** &)**MolecularEnergy** (const **Ref**< **KeyVal** > &)

The **KeyVal** constructor. **MolecularEnergy** (**StateIn** &)

void **save_data_state** (**StateOut** &)

Save the base classes (with save_data_state) and the members in the same order that the **StateIn** CTOR initializes them.

void **set_checkpoint** ()

Set up checkpointing.

void **set_checkpoint_file** (const char *)

void **set_checkpoint_freq** (int freq)

bool **if_to_checkpoint** () const

Check if need to checkpoint.

const char * **checkpoint_file** () const

int **checkpoint_freq** () const**MolecularEnergy** & **operator=** (const **MolecularEnergy** &)

virtual double **energy** ()

A wrapper around **value()**;.

virtual **Ref**< **Molecule** > **molecule** () const

virtual **RefSCDimension moldim** () const

void **guess_hessian** (**RefSymmSCMatrix** &)**Compute** a quick, approximate hessian. **RefSymmSCMatrix inverse_hessian** (**RefSymmSCMatrix** &)**RefSymmSCMatrix hessian** ()

If a molecule hessian object is given, it will be used to provide a hessian.

int **hessian_implemented** () const

void **set_x** (const **RefSCVector** &)

Set and retrieve the coordinate values. **RefSCVector get_cartesian_x** ()

Return the cartesian coordinates. **RefSCVector get_cartesian_gradient** ()

Return the cartesian gradient. **RefSymmSCMatrix get_cartesian_hessian** ()

Return the cartesian hessian. **Ref**< **MolecularCoor** > **molecularcoor** ()

virtual void **symmetry_changed** ()

Call this if you have changed the molecular symmetry of the molecule contained by this **MolecularEnergy**. **Ref**< **NonlinearTransform** > **change_coordinates** ()

An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system.

void **print_natom_3** (const **RefSCVector** &, const char *t=0, std::ostream &o=**ExEnv::out0**()) const

Nicely print n x 3 data that are stored in a vector.

void **print_natom_3** (double **, const char *t=0, std::ostream &o=**ExEnv::out0**()) const

void **print_natom_3** (double *, const char *t=0, std::ostream &o=**ExEnv::out0**()) const

virtual void **print** (std::ostream &=**ExEnv::out0**()) const

Print information about the object.

Public Member Functions inherited from **sc::Function**

virtual **RefSCVector gradient** ()

int **gradient_needed** () const

int **do_gradient** (int)

virtual void **set_desired_gradient_accuracy** (double)

virtual double **actual_gradient_accuracy** () const

virtual double **desired_gradient_accuracy** () const**AccResultRefSCVector** & **gradient_result** ()

int **hessian_needed** () const

int **do_hessian** (int)

virtual void **set_desired_hessian_accuracy** (double)

virtual double **actual_hessian_accuracy** () const

virtual double **desired_hessian_accuracy** () const**AccResultRefSymmSCMatrix** & **hessian_result** ()**RefSCVector get_x** () const

const **RefSCVector** & **get_x_no_copy** () const**Function** ()**Function** (**StateIn** &)**Function** (const **Function** &)**Function** (const **Ref**< **KeyVal** > &, double funcacc=DBL_EPSILON, double gradacc=DBL_EPSILON, double hessacc=DBL_EPSILON)

The keyval constructor reads the following keywords:

virtual **~Function** ()**Function** & **operator=** (const **Function** &)**Ref**< **SCMatrixKit** > **matrixkit** () const

Return the **SCMatrixKit** used to construct vectors and matrices. **RefSCDimension dimension** () const

Return the **SCDimension** of the problem.

virtual double **value** ()

Return the value of the function.

int **value_needed** () const

Returns nonzero if the current value is not up-to-date.

int **do_value** (int)

If passed a nonzero number, compute the value the next time **compute()** is called. **AccResultdouble** & **value_result** ()

virtual void **set_desired_value_accuracy** (double)

Set the accuracy to which the value is to be computed.

virtual double **actual_value_accuracy** () const

Return the accuracy with which the value has been computed.

virtual double **desired_value_accuracy** () const

Return the accuracy with which the value is to be computed.

Public Member Functions inherited from **sc::SavableState****SavableState** & **operator=** (const **SavableState** &)

void **save_state** (**StateOut** &)

Save the state of the object as specified by the **StateOut** object.

void **save_object_state** (**StateOut** &)

This can be used for saving state when the exact type of the object is known for both the save and the restore.

virtual void **save_vbase_state** (**StateOut** &)

Save the virtual bases for the object.

virtual void **save_data_state** (**StateOut** &)

Save the base classes (with save_data_state) and the members in the same order that the **StateIn** CTOR initializes them.

Public Member Functions inherited from **sc::DescribedClass****DescribedClass** (const **DescribedClass** &)**DescribedClass** & **operator=** (const **DescribedClass** &)**ClassDesc** * **class_desc** () const throw ()

This returns the unique pointer to the **ClassDesc** corresponding to the given type_info object.

const char * **class_name** () const

Return the name of the object's exact type.

int **class_version** () const

Return the version of the class.

virtual void **print** (std::ostream &=**ExEnv::out0**()) const

Print the object.

Public Member Functions inherited from **sc::RefCount**

int **lock_ptr** () const

Lock this object.

int **unlock_ptr** () const

Unlock this object.

void **use_locks** (bool inVal)

start and stop using locks on this object

refcount_t **nreference** () const

Return the reference count.

refcount_t **reference** ()

Increment the reference count and return the new count.

refcount_t **dereference** ()

Decrement the reference count and return the new count.

int **managed** () const

void **unmanage** ()

Turn off the reference counting mechanism for this object.

int **managed** () const

Return 1 if the object is managed. Otherwise return 0.

Public Member Functions inherited from **sc::Identity****Identifier identifier** ()

Return the **Identifier** for this argument.

Public Member Functions inherited from **sc::Compute**

virtual void **obsolete** ()

Marks all results as being out of date.

### Protected Member Functions

void **compute** ()

Recompute at least the results that have compute true and are not already computed.

Protected Member Functions inherited from **sc::MolecularEnergy**

void **failure** (const char *)

virtual void **set_energy** (double)

This is just a wrapper around set_value().

virtual void **set_gradient** (**RefSCVector** &)

These are passed gradients and hessian in cartesian coordinates.

virtual void **set_hessian** (**RefSymmSCMatrix** &)

void **x_to_molecule** ()

void **molecule_to_x** ()

Protected Member Functions inherited from **sc::Function**

virtual void **set_value** (double)

virtual void **set_matrixkit** (const **Ref**< **SCMatrixKit** > &)

Set the **SCMatrixKit** that should be used to construct the requisite vectors and matrices.

virtual void **set_dimension** (const **RefSCDimension** &)

virtual void **set_actual_value_accuracy** (double)

virtual void **set_actual_gradient_accuracy** (double)

virtual void **set_actual_hessian_accuracy** (double)**RefSCVector** & **get_x_reference** ()

Get read/write access to the coordinates for modification.

void **do_change_coordinates** (const **Ref**< **NonlinearTransform** > &)

Change the coordinate system and apply the given transform to intermediates matrices and vectors.

Protected Member Functions inherited from **sc::SavableState****SavableState** (const **SavableState** &)**SavableState** (**StateIn** &)

Each derived class **StateIn** CTOR handles the restore corresponding to calling save_object_state, save_vbase_state, and save_data_state listed above.

Protected Member Functions inherited from **sc::RefCount****RefCount** (const **RefCount** &)**RefCount** & **operator=** (const **RefCount** &)

virtual void **compute** ()=0

Recompute at least the results that have compute true and are not already computed.

### Protected Attributes

int **n_****Ref**< **MolecularEnergy** > * **mole_**

double * **coef_**

Protected Attributes inherited from **sc::MolecularEnergy****Ref**< **PointGroup** > **initial_pg_**

int **print_molecule_when_changed_**

Protected Attributes inherited from **sc::Function****Ref**< **SCMatrixKit** > **matrixkit_**

Used to construct new matrices. **RefSCVector x_**

The variables. **RefSCDimension dim_**

The dimension of x_. **AccResultdouble value_**

The value of the function at x_. **AccResultRefSCVector gradient_**

The gradient at x_. **AccResultRefSymmSCMatrix hessian_**

The hessian at x_.

### Additional Inherited Members

Static Public Member Functions inherited from **sc::SavableState**

static void **save_state** (**SavableState** *s, **StateOut** &)

static **SavableState** * **restore_state** (**StateIn** &si)

Restores objects saved with save_state.

static **SavableState** * **key_restore_state** (**StateIn** &si, const char *keyword)

Like restore_state, but keyword is used to override values while restoring.

static **SavableState** * **dir_restore_state** (**StateIn** &si, const char *objectname, const char *keyword=0)

## Member Function Documentation

### void sc::SumMolecularEnergy::compute () [protected], [virtual]

Recompute at least the results that have compute true and are not already computed. This should only be called by **Result**'s members.

Implements **sc::Compute**.

Reimplemented in **sc::MP2BasisExtrap**.

### int sc::SumMolecularEnergy::gradient_implemented () const [virtual]

Reimplemented from **sc::Function**.

### int sc::SumMolecularEnergy::hessian_implemented () const [virtual]

Reimplemented from **sc::MolecularEnergy**.

### void sc::SumMolecularEnergy::save_data_state (StateOut &) [virtual]

Save the base classes (with save_data_state) and the members in the same order that the **StateIn** CTOR initializes them. This must be implemented by the derived class if the class has data.

Reimplemented from **sc::MolecularEnergy**.

Reimplemented in **sc::MP2BasisExtrap**.

### void sc::SumMolecularEnergy::set_x (const RefSCVector &) [virtual]

Set and retrieve the coordinate values.

Reimplemented from **sc::MolecularEnergy**.

### int sc::SumMolecularEnergy::value_implemented () const [virtual]

Information about the availability of values, gradients, and hessians.

Reimplemented from **sc::Function**.

## Author

Generated automatically by Doxygen for MPQC from the source code.