VdW_solver Class Reference

#include <VdW_solver.h>

Inheritance diagram for VdW_solver:
GenSoftSSINT_solver LJSteric_solver Steric_solver

Data Structures

struct  adjacent_cell_lookup_table_entry
 
struct  tri_gauss_point
 

Public Member Functions

 VdW_solver ()
 
 ~VdW_solver ()
 
int init (NearestNeighbourLinkedListCube *surface_face_lookup, vector3 *box_size, SSINT_matrix *ssint_matrix, scalar &steric_factor, int num_blobs, int inc_self_ssint, string ssint_type_string, scalar &steric_dr, int calc_kinetics, bool working_w_static_blobs)
 
int solve (scalar *blob_corr)
 
int solve_sticky_wall (scalar h)
 
scalar get_field_energy (int i, int j)
 
void reset_fieldenergy ()
 

Protected Member Functions

bool consider_interaction (Face *f1, int l_index_i, int motion_state_i, LinkedListNode< Face > *l_j, scalar *blob_corr)
 
virtual void do_interaction (Face *f1, Face *f2, scalar *blob_corr)
 
bool do_steric_interaction (Face *f1, Face *f2, scalar *blob_corr)
 
void do_lj_interaction (Face *f1, Face *f2, scalar *blob_corr)
 
void do_gensoft_interaction (Face *f1, Face *f2, scalar *blob_corr)
 
void do_sticky_xz_interaction (Face *f, bool bottom_wall, scalar dim_y)
 
void calc_lj_force_pair_matrix (vector3(&force_pair_matrix)[num_tri_gauss_quad_points][num_tri_gauss_quad_points], vector3(&p)[num_tri_gauss_quad_points], vector3(&q)[num_tri_gauss_quad_points], scalar &Rmin, scalar &Emin, scalar &energy)
 
void calc_ljinterpolated_force_pair_matrix (vector3(&force_pair_matrix)[num_tri_gauss_quad_points][num_tri_gauss_quad_points], vector3(&p)[num_tri_gauss_quad_points], vector3(&q)[num_tri_gauss_quad_points], scalar &Rmin, scalar &Emin, scalar &energy)
 
void calc_gensoft_force_pair_matrix (vector3(&force_pair_matrix)[num_tri_gauss_quad_points][num_tri_gauss_quad_points], vector3(&p)[num_tri_gauss_quad_points], vector3(&q)[num_tri_gauss_quad_points], scalar &Rmin, scalar &Emin, scalar &k0, scalar &energy)
 
void calc_lj_factors (scalar &mag_r, int index_k, int index_l, scalar &Emin, scalar &Rmin_6, scalar &force_mag, scalar &e)
 
void calc_ljinterpolated_factors (scalar &mag_r, int index_k, int index_l, scalar &Emin, scalar &Rmini, scalar &force_mag, scalar &e)
 
void calc_gensoft_factors (scalar &mag_r, int index_k, int index_l, scalar &Emin, scalar &Rmin_2, scalar &Rmin_3, scalar &k0, scalar &force_mag, scalar &e)
 
scalar distance2 (vector3 &p, vector3 &q)
 
scalar dot (vector3 *p, vector3 *q)
 
scalar dot_with_normal (vector3 *p, vector3 *q, vector3 *n)
 
scalar minimum_image (scalar delta, scalar size)
 

Protected Attributes

int total_num_surface_faces
 
NearestNeighbourLinkedListCubesurface_face_lookup
 
vector3 box_size
 
SSINT_matrixssint_matrix
 
scalar ** fieldenergy
 
int num_blobs
 
int inc_self_ssint
 whether to include interactions between faces within the same blob, or not. More...
 
int calc_kinetics
 
bool working_w_static_blobs
 
scalar steric_factor
 Proportionality factor to the Steric repulsion. More...
 
scalar steric_dr
 Constant to calculate the numerical derivative. More...
 
int ssint_type
 

Static Protected Attributes

static const int adjacent_cell_lookup_table [27][3]
 
static const int num_tri_gauss_quad_points = 3
 
static const tri_gauss_point gauss_points []
 

Constructor & Destructor Documentation

◆ VdW_solver()

VdW_solver::VdW_solver ( )

◆ ~VdW_solver()

VdW_solver::~VdW_solver ( )

Member Function Documentation

◆ calc_gensoft_factors()

void VdW_solver::calc_gensoft_factors ( scalar mag_r,
int  index_k,
int  index_l,
scalar Emin,
scalar Rmin_2,
scalar Rmin_3,
scalar k0,
scalar force_mag,
scalar e 
)
protected

◆ calc_gensoft_force_pair_matrix()

void VdW_solver::calc_gensoft_force_pair_matrix ( vector3(&)  force_pair_matrix[num_tri_gauss_quad_points][num_tri_gauss_quad_points],
vector3(&)  p[num_tri_gauss_quad_points],
vector3(&)  q[num_tri_gauss_quad_points],
scalar Rmin,
scalar Emin,
scalar k0,
scalar energy 
)
protected

Referenced by do_gensoft_interaction().

◆ calc_lj_factors()

void VdW_solver::calc_lj_factors ( scalar mag_r,
int  index_k,
int  index_l,
scalar Emin,
scalar Rmin_6,
scalar force_mag,
scalar e 
)
protected

Given (mag_r), get LJ force magnitude (force_mag) and energy (e)

Referenced by calc_lj_force_pair_matrix(), and calc_ljinterpolated_force_pair_matrix().

◆ calc_lj_force_pair_matrix()

void VdW_solver::calc_lj_force_pair_matrix ( vector3(&)  force_pair_matrix[num_tri_gauss_quad_points][num_tri_gauss_quad_points],
vector3(&)  p[num_tri_gauss_quad_points],
vector3(&)  q[num_tri_gauss_quad_points],
scalar Rmin,
scalar Emin,
scalar energy 
)
protected

Referenced by do_lj_interaction().

◆ calc_ljinterpolated_factors()

void VdW_solver::calc_ljinterpolated_factors ( scalar mag_r,
int  index_k,
int  index_l,
scalar Emin,
scalar Rmini,
scalar force_mag,
scalar e 
)
protected

Given (mag_r), get LJ_interpolated force magnitude (force_mag) and energy (e)

Referenced by calc_ljinterpolated_force_pair_matrix().

◆ calc_ljinterpolated_force_pair_matrix()

void VdW_solver::calc_ljinterpolated_force_pair_matrix ( vector3(&)  force_pair_matrix[num_tri_gauss_quad_points][num_tri_gauss_quad_points],
vector3(&)  p[num_tri_gauss_quad_points],
vector3(&)  q[num_tri_gauss_quad_points],
scalar Rmin,
scalar Emin,
scalar energy 
)
protected

Referenced by do_lj_interaction().

◆ consider_interaction()

bool VdW_solver::consider_interaction ( Face f1,
int  l_index_i,
int  motion_state_i,
LinkedListNode< Face > *  l_j,
scalar blob_corr 
)
protected

Referenced by solve().

◆ distance2()

scalar VdW_solver::distance2 ( vector3 p,
vector3 q 
)
protected

◆ do_gensoft_interaction()

void VdW_solver::do_gensoft_interaction ( Face f1,
Face f2,
scalar blob_corr 
)
protected

◆ do_interaction()

void VdW_solver::do_interaction ( Face f1,
Face f2,
scalar blob_corr 
)
protectedvirtual

Alters interaction calculations to apply periodic boundary conditions

Reimplemented in GenSoftSSINT_solver, LJSteric_solver, and Steric_solver.

Referenced by solve().

◆ do_lj_interaction()

void VdW_solver::do_lj_interaction ( Face f1,
Face f2,
scalar blob_corr 
)
protected

◆ do_steric_interaction()

bool VdW_solver::do_steric_interaction ( Face f1,
Face f2,
scalar blob_corr 
)
protected

◆ do_sticky_xz_interaction()

void VdW_solver::do_sticky_xz_interaction ( Face f,
bool  bottom_wall,
scalar  dim_y 
)
protected

Referenced by solve_sticky_wall().

◆ dot()

scalar VdW_solver::dot ( vector3 p,
vector3 q 
)
protected

◆ dot_with_normal()

scalar VdW_solver::dot_with_normal ( vector3 p,
vector3 q,
vector3 n 
)
protected

◆ get_field_energy()

scalar VdW_solver::get_field_energy ( int  i,
int  j 
)

◆ init()

int VdW_solver::init ( NearestNeighbourLinkedListCube surface_face_lookup,
vector3 box_size,
SSINT_matrix ssint_matrix,
scalar steric_factor,
int  num_blobs,
int  inc_self_ssint,
string  ssint_type_string,
scalar steric_dr,
int  calc_kinetics,
bool  working_w_static_blobs 
)

Referenced by World::init().

◆ minimum_image()

scalar VdW_solver::minimum_image ( scalar  delta,
scalar  size 
)
protected

◆ reset_fieldenergy()

void VdW_solver::reset_fieldenergy ( )

Zero measurement stuff, AKA fieldenergy

Referenced by solve().

◆ solve()

int VdW_solver::solve ( scalar blob_corr)

Solve VdW

Referenced by World::run().

◆ solve_sticky_wall()

int VdW_solver::solve_sticky_wall ( scalar  h)

Allow protein VdW interactions along the top and bottom x-z planes

Referenced by World::run().

Field Documentation

◆ adjacent_cell_lookup_table

const int VdW_solver::adjacent_cell_lookup_table
staticprotected
Initial value:
= {
{-1, -1, -1},
{-1, -1, 0},
{-1, -1, +1},
{-1, 0, -1},
{-1, 0, 0},
{-1, 0, +1},
{-1, +1, -1},
{-1, +1, 0},
{-1, +1, +1},
{0, -1, -1},
{0, -1, 0},
{0, -1, +1},
{0, 0, -1},
{0, 0, 0},
{0, 0, +1},
{0, +1, -1},
{0, +1, 0},
{0, +1, +1},
{+1, -1, -1},
{+1, -1, 0},
{+1, -1, +1},
{+1, 0, -1},
{+1, 0, 0},
{+1, 0, +1},
{+1, +1, -1},
{+1, +1, 0},
{+1, +1, +1}
}

Referenced by solve().

◆ box_size

vector3 VdW_solver::box_size
protected

Referenced by VdW_solver(), and ~VdW_solver().

◆ calc_kinetics

int VdW_solver::calc_kinetics
protected

Referenced by init(), and solve().

◆ fieldenergy

◆ gauss_points

const VdW_solver::tri_gauss_point VdW_solver::gauss_points
staticprotected
Initial value:
= {
{ 0.333333333333333,
{0.666666666666667, 0.166666666666667, 0.166666666666667}
},
{ 0.333333333333333,
{0.166666666666667, 0.666666666666667, 0.166666666666667}
},
{ 0.333333333333333,
{0.166666666666667, 0.166666666666667, 0.666666666666667}
}
}

Referenced by calc_gensoft_factors(), calc_lj_factors(), calc_ljinterpolated_factors(), do_gensoft_interaction(), do_lj_interaction(), and do_sticky_xz_interaction().

◆ inc_self_ssint

int VdW_solver::inc_self_ssint
protected

whether to include interactions between faces within the same blob, or not.

Referenced by consider_interaction(), and init().

◆ num_blobs

int VdW_solver::num_blobs
protected

◆ num_tri_gauss_quad_points

◆ ssint_matrix

SSINT_matrix* VdW_solver::ssint_matrix
protected

◆ ssint_type

int VdW_solver::ssint_type
protected

◆ steric_dr

scalar VdW_solver::steric_dr
protected

Constant to calculate the numerical derivative.

Referenced by do_steric_interaction(), and init().

◆ steric_factor

scalar VdW_solver::steric_factor
protected

Proportionality factor to the Steric repulsion.

Referenced by do_steric_interaction(), and init().

◆ surface_face_lookup

NearestNeighbourLinkedListCube* VdW_solver::surface_face_lookup
protected

◆ total_num_surface_faces

int VdW_solver::total_num_surface_faces
protected

Referenced by solve(), VdW_solver(), and ~VdW_solver().

◆ working_w_static_blobs

bool VdW_solver::working_w_static_blobs
protected

Referenced by consider_interaction(), init(), and solve().


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