OpenMD 3.2
Molecular Dynamics in the Open
Loading...
Searching...
No Matches
OpenMD::RPYMobility Class Reference

Public Member Functions

 RPYMobility (const std::vector< RealType > &radii, RealType viscosity)
bool update (const std::vector< Vector3d > &positions)
 (Re)build M, R = M^{-1}, and S = chol(R) from current bead positions. Positions must be the unwrapped intramolecular coordinates. Returns false if R is not positive definite (Cholesky hit a non-positive pivot).
std::vector< Vector3d > effectiveAmbient (const std::vector< Vector3d > &positions, const std::vector< Vector3d > &ambient, const Mat3x3d &E) const
 vinf_eff_i = ambient_i + sum{j!=i} mu_td_ij : E (E symmetric traceless)
std::vector< Vector3d > dragForce (const std::vector< Vector3d > &vEff, const std::vector< Vector3d > &vel) const
 Hydrodynamic drag: f_i = sum_j R_ij ( vEff_j - vel_j ).
std::vector< Vector3d > randomForce (const std::vector< RealType > &Z, RealType kT, RealType dt) const
 FDT random force: sqrt(2 kT / dt) * S * Z, with Z a 3N vector of independent standard normal draws (row 3i+a is bead i, component a).
std::size_t size () const
bool isPositiveDefinite () const
const DynamicRectMatrix< RealType > & mobility () const
const DynamicRectMatrix< RealType > & resistance () const
const DynamicRectMatrix< RealType > & cholesky () const

Detailed Description

Definition at line 71 of file RPYMobility.hpp.

Constructor & Destructor Documentation

◆ RPYMobility()

OpenMD::RPYMobility::RPYMobility ( const std::vector< RealType > & radii,
RealType viscosity )

Definition at line 51 of file RPYMobility.cpp.

Member Function Documentation

◆ cholesky()

const DynamicRectMatrix< RealType > & OpenMD::RPYMobility::cholesky ( ) const
inline

Definition at line 98 of file RPYMobility.hpp.

◆ dragForce()

std::vector< Vector3d > OpenMD::RPYMobility::dragForce ( const std::vector< Vector3d > & vEff,
const std::vector< Vector3d > & vel ) const

Hydrodynamic drag: f_i = sum_j R_ij ( vEff_j - vel_j ).

Definition at line 115 of file RPYMobility.cpp.

References dragForce().

Referenced by dragForce().

◆ effectiveAmbient()

std::vector< Vector3d > OpenMD::RPYMobility::effectiveAmbient ( const std::vector< Vector3d > & positions,
const std::vector< Vector3d > & ambient,
const Mat3x3d & E ) const

vinf_eff_i = ambient_i + sum{j!=i} mu_td_ij : E (E symmetric traceless)

Definition at line 101 of file RPYMobility.cpp.

References effectiveAmbient().

Referenced by effectiveAmbient().

◆ isPositiveDefinite()

bool OpenMD::RPYMobility::isPositiveDefinite ( ) const
inline

Definition at line 95 of file RPYMobility.hpp.

◆ mobility()

const DynamicRectMatrix< RealType > & OpenMD::RPYMobility::mobility ( ) const
inline

Definition at line 96 of file RPYMobility.hpp.

◆ randomForce()

std::vector< Vector3d > OpenMD::RPYMobility::randomForce ( const std::vector< RealType > & Z,
RealType kT,
RealType dt ) const

FDT random force: sqrt(2 kT / dt) * S * Z, with Z a 3N vector of independent standard normal draws (row 3i+a is bead i, component a).

Definition at line 136 of file RPYMobility.cpp.

References randomForce().

Referenced by randomForce().

◆ resistance()

const DynamicRectMatrix< RealType > & OpenMD::RPYMobility::resistance ( ) const
inline

Definition at line 97 of file RPYMobility.hpp.

◆ size()

std::size_t OpenMD::RPYMobility::size ( ) const
inline

Definition at line 94 of file RPYMobility.hpp.

◆ update()

bool OpenMD::RPYMobility::update ( const std::vector< Vector3d > & positions)

(Re)build M, R = M^{-1}, and S = chol(R) from current bead positions. Positions must be the unwrapped intramolecular coordinates. Returns false if R is not positive definite (Cholesky hit a non-positive pivot).

Definition at line 60 of file RPYMobility.cpp.

References OpenMD::invertMatrix(), and update().

Referenced by update().


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