LOOS 4.1.0
The Lightweight Object Oriented Structural analysis library/toolkit
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ENM::VSA Class Reference

Vibrational subsystem analysis ENM. More...

#include <vsa-lib.hpp>

Inheritance diagram for ENM::VSA:
Inheritance graph
[legend]
Collaboration diagram for ENM::VSA:
Collaboration graph
[legend]

Public Member Functions

 VSA (SuperBlock *blocker, const uint subn)
 Constructor for VSA without masses.
 
 VSA (SuperBlock *blocker, const uint subn, const loos::DoubleMatrix &M)
 Constructor for VSA with masses.
 
void solve ()
 Computes the hessian and solves for the eigenpairs.
 
void setMasses (const loos::DoubleMatrix &M)
 Sets the mass matrix and determines what kind of VSA calc to use.
 
void free ()
 Free up internal storage...
 
- Public Member Functions inherited from ENM::ElasticNetworkModel
 ElasticNetworkModel (SuperBlock *blocker)
 Base constructor for all ENMs.
 
void setSuperBlockFunction (SuperBlock *p)
 
void prefix (const std::string &s)
 Filename prefix when we have to write something out.
 
std::string prefix () const
 
void meta (const std::string &s)
 Any metadata that gets added to matrices written out.
 
std::string meta () const
 
void debugging (const bool b)
 Debugging flag (generally means write out all intermediate matrices)
 
bool debugging () const
 
void verbosity (const int i)
 How wordy are we?
 
int verbosity () const
 
SpringFunction::Params setParams (const SpringFunction::Params &v)
 Forwards to contained superblock.
 
bool validParams () const
 Forwards to contained superblock.
 
uint paramSize () const
 Forwards to contained superblock.
 
const loos::DoubleMatrixeigenvectors () const
 Accessors for eigenpairs and hessian.
 
const loos::DoubleMatrixeigenvalues () const
 Accessors for eigenpairs and hessian.
 
const loos::DoubleMatrixhessian () const
 Accessors for eigenpairs and hessian.
 

Additional Inherited Members

- Protected Member Functions inherited from ENM::ElasticNetworkModel
void buildHessian ()
 Construct the hessian using the contained SuperBlock.
 
- Protected Attributes inherited from ENM::ElasticNetworkModel
SuperBlockblocker_
 
std::string name_
 
std::string prefix_
 
std::string meta_
 
bool debugging_
 
int verbosity_
 
loos::DoubleMatrix eigenvecs_
 
loos::DoubleMatrix eigenvals_
 
loos::DoubleMatrix hessian_
 

Detailed Description

Vibrational subsystem analysis ENM.

References:

The VSA class expects that the list of nodes contained in the passed SuperBlock instance represents the combined system, i.e. subsystem and environment. The first subn nodes are the subsystem.

Constructor & Destructor Documentation

◆ VSA() [1/2]

ENM::VSA::VSA ( SuperBlock * blocker,
const uint subn )
inline

Constructor for VSA without masses.

Arguments:

  • blocker Determines how the Hessian is built
  • subn The number of nodes in the subsystem

◆ VSA() [2/2]

ENM::VSA::VSA ( SuperBlock * blocker,
const uint subn,
const loos::DoubleMatrix & M )
inline

Constructor for VSA with masses.

Arguments:

  • c blocker Determines how the Hessian is built
  • c subn The number of nodes in the subsystem
  • c M Diagonal 3N x 3N matrix of node masses

Member Function Documentation

◆ setMasses()

void ENM::VSA::setMasses ( const loos::DoubleMatrix & M)
inline

Sets the mass matrix and determines what kind of VSA calc to use.

Setting the mass matrix to an initialized matrix implies that VSA will use the mass-VSA version. On the other hand, setting the matrix to a default, uninitialized matrix will switch to the mass-less VSA:

vsa.setMasses(DoubleMatrix());
Simple matrix template class using policy classes to determine behavior.
Definition MatrixImpl.hpp:148

◆ solve()

void ENM::VSA::solve ( )
virtual

Computes the hessian and solves for the eigenpairs.

Implements ENM::ElasticNetworkModel.


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