MPQC  3.0.0-alpha
sc::WavefunctionWorld Class Reference

Class WavefunctionWorld describes the environment of a Wavefunction. More...

#include <chemistry/qc/lcao/wfnworld.h>

Inheritance diagram for sc::WavefunctionWorld:
sc::SavableState sc::DescribedClass sc::RefCount

Public Types

typedef MOIntsTransform::StoreMethod StoreMethod
 Describes the method of storing transformed MO integrals.
 

Public Member Functions

 WavefunctionWorld (StateIn &)
 
 WavefunctionWorld (const Ref< KeyVal > &keyval)
 KeyVal constructor uses the following keywords. More...
 
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. More...
 
void obsolete ()
 obsoletes this object every wavefunction that owns a WavefunctionWorld must call this method when it's obsolete() method is called More...
 
void dynamic (bool dynamic)
 Sets whether to use dynamic load balancing in parallel MO transformations.
 
void print_percent (double print_percent)
 Sets how frequently updates of progress are printed out. Default is 10%.
 
void debug_level (int debug)
 Set debug level. Default is 0.
 
void ints_method (const StoreMethod::type method)
 Sets the method of storing transformed MO integrals. More...
 
void ints_file (const std::string &filename)
 Sets name of the file used to store transformed integrals. More...
 
Wavefunctionwfn () const
 
void set_wfn (Wavefunction *w)
 
bool df () const
 
const Ref< GaussianBasisSet > & basis_df () const
 
const Ref< MemoryGrp > & mem () const
 
const Ref< MessageGrp > & msg () const
 
const Ref< ThreadGrp > & thr () const
 
Ref< Integralintegral () const
 
bool dynamic () const
 
double print_percent () const
 
int debug_level () const
 
StoreMethod::type ints_method () const
 
const std::string & ints_file () const
 
double ints_precision () const
 
const Ref< MOIntsTransformFactory > & tfactory () const
 Returns the MOIntsTransformFactory object.
 
const Ref< MOIntsRuntime > & moints_runtime () const
 Returns the MOIntsRuntime object.
 
const Ref< TwoBodyFourCenterMOIntsRuntime > & moints_runtime4 () const
 
const Ref< FockBuildRuntime > & fockbuild_runtime () const
 Returns the FockBuildRuntime object that can build Fock matrices.
 
void print (std::ostream &o) const
 Print the object.
 
void initialize_ao_spaces ()
 
- Public Member Functions inherited from sc::SavableState
SavableStateoperator= (const SavableState &)
 
void save_state (StateOut &)
 Save the state of the object as specified by the StateOut object. More...
 
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. More...
 
virtual void save_vbase_state (StateOut &)
 Save the virtual bases for the object. More...
 
- Public Member Functions inherited from sc::DescribedClass
 DescribedClass (const DescribedClass &)
 
DescribedClassoperator= (const DescribedClass &)
 
ClassDescclass_desc () const MPQC__NOEXCEPT
 This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More...
 
const char * class_name () const
 Return the name of the object's exact type.
 
int class_version () const
 Return the version of the class.
 
Ref< DescribedClassref ()
 Return this object wrapped up in a Ref smart pointer. More...
 
- Public Member Functions inherited from sc::RefCount
size_t identifier () const
 Return the unique identifier for this object that can be compared for different objects of different types. More...
 
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. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from sc::SavableState
static void save_state (SavableState *s, StateOut &)
 
static SavableStaterestore_state (StateIn &si)
 Restores objects saved with save_state. More...
 
static SavableStatekey_restore_state (StateIn &si, const char *keyword)
 Like restore_state, but keyword is used to override values while restoring.
 
static SavableStatedir_restore_state (StateIn &si, const char *objectname, const char *keyword=0)
 
- 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. More...
 
- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 

Detailed Description

Class WavefunctionWorld describes the environment of a Wavefunction.

Constructor & Destructor Documentation

◆ WavefunctionWorld()

sc::WavefunctionWorld::WavefunctionWorld ( const Ref< KeyVal > &  keyval)

KeyVal constructor uses the following keywords.

wfn

This specifies the Wavefunction that is in charge of the World ("Czar"). There is no default.

store_ints

This specifies how to store transformed MO integrals. Valid values are:

posix

Store integrals in a binary file on task 0's node using POSIX I/O. This method does not allow all steps to be parallelized but it is most likely to work in all environments.

mpi

Store integrals in a binary file using MPI-I/O. This method allows parallelization of all steps, but requires MPI-I/O capability (including MPI-I/O capable file system; see keyword ints_file)

mem

Store integrals in memory. Can only be used with single-pass transformations for MP2-R12/A and MP2-R12/A' methods. This choice is the most efficient, but requires significant amount memory. It is probably only feasible when stdapprox = A'.

mem-posix

The program will choose between mem and posix automatically.

mem-mpi

The program will choose between mem and mpi automatically.

The default is posix.

ints_file

This specifies the prefix for the transformed MO integrals file if ints is set to posix or mpi. If the prefix ends in '/' (slash character) then basename.moints is appended to it where basename is the basename as defined in SCFormIO. The default value for the prefix is "./". If MPI-I/O is used then it is user's responsibility to ensure that the file resides on a file system that supports MPI-I/O.

df
This optional boolean specifies whether to perform density fitting. The default is to not perform density fitting, unless df_basis is provided.
Note
The default is likely to change before MPQC 3 release.
df_basis

This optional GaussianBasisSet object specifies the density-fitting basis to use for all density fitting tasks. If df=true, the default is to (try to) find the matching density fitting basis for the orbital basis.

df_kernel

If density fitting is requsted, this keyword will be queried to determine the kernel for density-fitting. By default this keyword is not needed as the DensityFittingRuntime and other runtime components will try to determine the best density fitting method. If provided, this will provide the world-wide choice for the density fitting kernel. The only supported values are coulomb (this corresponds to the fitting the density to reproduce the electric field), delta (the overlap), and exp(X) (this corresponds to fitting the density to reproduce the potential) where X is a positive parameter that determines the lengthscale of the region in which to fit the potential.

df_solver

If df_basis is specified, this keyword will be queried to determine the method by which density-fitting will be performed. Valid values are:

cholesky_inv
Use Cholesky inverse. Only valid if df_kernel=coulomb. This is the cheapest option and the default.
cholesky
Use Cholesky linear solver. Only valid if df_kernel=coulomb.
cholesky_refine

Use Cholesky linear solver + iterative refinement. Only valid if df_kernel=coulomb.

bunchkaufman_inv
Use Bunch-Kaufman inverse. Valid for any value of df_kernel.
bunchkaufman
Use Bunch-Kaufman linear solver. Valid for any value of df_kernel.
bunchkaufman_refine

Use Bunch-Kaufman linear solver + iterative refinement. Valid for any value of df_kernel. Use this option if you want the maximum numerical precision of the density fitting.

dynamic

This boolean keyword specifies whether dynamic load balancing is used by MO integrals transforms. The default is false.

ints_precision

This real keyword specifies the precision of MO integrals. Currently, this keyword specifies the precision of AO integrals. The default is to determine the desired precision heuristically according to the desired accuracy of the Czar (the current heuristics set the precision to 1e-15 regardless of the Czar accuracy).

Member Function Documentation

◆ ints_file()

void sc::WavefunctionWorld::ints_file ( const std::string &  filename)
inline

Sets name of the file used to store transformed integrals.

Default depends on how the object was constructed.

◆ ints_method()

void sc::WavefunctionWorld::ints_method ( const StoreMethod::type  method)
inline

Sets the method of storing transformed MO integrals.

Default depends on how the object was constructed.

◆ obsolete()

void sc::WavefunctionWorld::obsolete ( )

obsoletes this object every wavefunction that owns a WavefunctionWorld must call this method when it's obsolete() method is called

See also
Compute::obsolete()

◆ save_data_state()

void sc::WavefunctionWorld::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::SavableState.


The documentation for this class was generated from the following file:

Generated at Sun Jan 26 2020 23:24:14 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.