The Virtual Cell Model  1.0
ECM Class Reference

#include <ECM.h>

Public Member Functions

void import_config (vector< string > configlines)
 
void export_for_resume (int MD_step)
 
void export_for_resume (int MD_step, MyAtomInfo atoms[], int atom_count)
 
void set_state (MyAtomInfo all_atoms[], int atom_count)
 Set the current state (OpenMM) of the class. More...
 
void set_label (std::string lab)
 Assigns the label(pdb) used to write to the trajectory files. More...
 
std::string get_label (void)
 return the label(pdb) used to write to the trajectory files. More...
 
void set_file_time (char *buffer)
 
void set_index (int ind)
 
double get_spring_stiffness_coefficient (void)
 Return spring stiffness coefficient. More...
 
double get_stiffness_gradient_x (void)
 Return spring stiffness gradient_x. More...
 
double get_stiffness_gradient_y (void)
 Return spring stiffness gradient_y. More...
 
double get_stiffness_gradient_z (void)
 Return spring stiffness gradient_z. More...
 
int get_receptor_type (void)
 Return receptor type. More...
 
double get_receptor_density (void)
 Return receptor density. More...
 
double get_receptor_center_x (void)
 Return receptor center_x. More...
 
double get_receptor_center_y (void)
 Return receptor center_y. More...
 
double get_receptor_center_z (void)
 Return receptor center_z. More...
 
double get_receptor_gradient_x (void)
 Return receptor density gradient_x. More...
 
double get_receptor_gradient_y (void)
 Return receptor density gradient_y. More...
 
double get_receptor_gradient_z (void)
 Return receptor density gradient_z. More...
 
int get_num_of_nodes (void)
 public access to total number of ECM nodes. More...
 
int get_num_of_triangles (void)
 public access to the total number of triangles in the ECM. More...
 
double get_node_mass (void)
 Return the node mass. More...
 
int get_num_of_node_pairs (void)
 Return the number of bonds between membrane nodes. More...
 
int get_spring_model (void)
 Return input spring model, used to setup the openmm system for the bonds. More...
 
int get_node_pair (int bond_num, int node_id)
 Return the id(int) of the nodes in the bonds. More...
 
double get_avg_node_dist (void)
 Return the average distance of the nodes as calculated from the mesh. More...
 
double get_sigma_LJ_12_6 (void)
 Return the Lenard Jones 12 6 sigma, used to setup the openmm system for the LJ interaction. More...
 
double get_epsilon_LJ_12_6 (void)
 Return the Lenard Jones 12 6 sigma, used to setup the openmm system for the LJ interaction. More...
 
double get_node_radius (void)
 
double get_interaction_range (void)
 
void set_interaction_range (double range)
 
double get_epsilon (void)
 
double get_sigma (void)
 
int get_ext_force_model (void)
 Return external force model. More...
 
double get_kx (void)
 
double get_ky (void)
 
double get_kz (void)
 
double get_node_position (int node_number, int node_coordinate)
 
void add_to_force (double force, int index, int coor)
 
void shift_node_positions (void)
 
void shift_velocity (double vx, double vy, double vz)
 
double get_node_velocity (int node_number, int node_coordinate)
 Returns the x (0), y (1), and z (2) velocities of the node index (number). More...
 
void update_COM_velocity (void)
 
void update_COM_position (void)
 
void set_FENE_param (double &le0, double &le1, double &lmin, double &lmax)
 Set FENE calculated parameters. More...
 
 ECM ()
 
std::map< string, vector< string > > get_map ()
 
vector< string > get_insertOrder ()
 
void assign_key_value (string key, string value)
 

Public Attributes

std::string output_file_neme
 
std::map< string, vector< string > > Params
 
vector< string > insertOrder
 
vector< string > values
 

Private Member Functions

void Node_Bond_identifier_2D (void)
 
void Node_Bond_identifier_3D (void)
 
void Node_Bond_identifier_3D_square (void)
 
void initialise (int dimension)
 
void Node_neighbour_list_constructor (void)
 
void read_gmesh_file_2D (std::string gmesh_file)
 
void read_gmesh_file_3D (std::string gmesh_file)
 
void read_gmesh_file_3D_square (std::string gmesh_file)
 
void normal_direction_Identifier (double x, double y, double z)
 
void normal_direction_Identifier (void)
 
void check (void)
 

Private Attributes

std::string label
 
std::string Mesh_file_name
 
std::string file_time
 
int index
 
std::map< std::string, double > param_map
 
double Node_Mass =1
 
double Node_radius =1
 
int spring_model =1
 
double Spring_coefficient =10
 
double stiffness_gradient_x =0
 
double stiffness_gradient_y =0
 
double stiffness_gradient_z =0
 
int receptor_type = 1
 
double receptor_density = 0.5
 
double receptor_center_x = 0
 
double receptor_center_y = 0
 
double receptor_center_z = 0
 
double receptor_gradient_x = 0
 
double receptor_gradient_y = 0
 
double receptor_gradient_z = 0
 
double Shift_in_X_direction =0
 
double Shift_in_Y_direction =0
 
double Shift_in_Z_direction =0
 
int Num_of_Nodes =0
 
int Num_of_Triangle_Pairs =0
 
int Num_of_Node_Pairs =0
 
int Num_of_Triangles =0
 
double x_speed =0.0
 
double y_speed =0.0
 
double z_speed =0.0
 
int ext_force_model =0
 
double kx =10
 
double ky =10
 
double kz =10
 
double Kelvin_Damping_Coefficient =100
 
double Dashpot_Viscosity =0.02
 
vector< vector< double > > Node_Force
 
vector< vector< double > > Node_Position
 
vector< vector< int > > Triangle_List
 
vector< vector< int > > Pyramid_Nodes
 
vector< vector< int > > square_Nodes
 
double interaction_range =1.0
 
double epsilon =0.6
 
double sigma =15.0
 
double COM_velocity [3] ={0}
 
double COM_position [3] ={0}
 
double Min_node_pair_length
 
double Max_node_pair_length
 
double Average_node_pair_length
 
double rescale_factor
 
double sigma_LJ_12_6 =0
 
double epsilon_LJ_12_6 =0
 
vector< vector< double > > Node_Velocity
 
vector< vector< int > > Node_Bond_list
 
vector< vector< int > > Node_neighbour_list
 

Constructor & Destructor Documentation

◆ ECM()

ECM::ECM ( )
inline

Member Function Documentation

◆ add_to_force()

void ECM::add_to_force ( double  force,
int  index,
int  coor 
)
inline

◆ assign_key_value()

void ECM::assign_key_value ( string  key,
string  value 
)
inline

◆ check()

void ECM::check ( void  )
private

◆ export_for_resume() [1/2]

void ECM::export_for_resume ( int  MD_step)

◆ export_for_resume() [2/2]

void ECM::export_for_resume ( int  MD_step,
MyAtomInfo  atoms[],
int  atom_count 
)

◆ get_avg_node_dist()

double ECM::get_avg_node_dist ( void  )
inline

Return the average distance of the nodes as calculated from the mesh.

◆ get_epsilon()

double ECM::get_epsilon ( void  )
inline

◆ get_epsilon_LJ_12_6()

double ECM::get_epsilon_LJ_12_6 ( void  )
inline

Return the Lenard Jones 12 6 sigma, used to setup the openmm system for the LJ interaction.

◆ get_ext_force_model()

int ECM::get_ext_force_model ( void  )
inline

Return external force model.

◆ get_insertOrder()

vector<string > ECM::get_insertOrder ( )
inline

◆ get_interaction_range()

double ECM::get_interaction_range ( void  )
inline

◆ get_kx()

double ECM::get_kx ( void  )
inline

◆ get_ky()

double ECM::get_ky ( void  )
inline

◆ get_kz()

double ECM::get_kz ( void  )
inline

◆ get_label()

std::string ECM::get_label ( void  )
inline

return the label(pdb) used to write to the trajectory files.

◆ get_map()

std::map<string, vector<string> > ECM::get_map ( )
inline

◆ get_node_mass()

double ECM::get_node_mass ( void  )
inline

Return the node mass.

At the current stage of this code all membrane nodes have the same mass.

◆ get_node_pair()

int ECM::get_node_pair ( int  bond_num,
int  node_id 
)
inline

Return the id(int) of the nodes in the bonds.

The id of each node in the bond list is stored in the first (0) and the second (1) id slot.

◆ get_node_position()

double ECM::get_node_position ( int  node_number,
int  node_coordinate 
)
inline

◆ get_node_radius()

double ECM::get_node_radius ( void  )
inline

◆ get_node_velocity()

double ECM::get_node_velocity ( int  node_number,
int  node_coordinate 
)
inline

Returns the x (0), y (1), and z (2) velocities of the node index (number).

◆ get_num_of_node_pairs()

int ECM::get_num_of_node_pairs ( void  )
inline

Return the number of bonds between membrane nodes.

◆ get_num_of_nodes()

int ECM::get_num_of_nodes ( void  )
inline

public access to total number of ECM nodes.

Returns
integer number of nodes in the ECM.

◆ get_num_of_triangles()

int ECM::get_num_of_triangles ( void  )
inline

public access to the total number of triangles in the ECM.

◆ get_receptor_center_x()

double ECM::get_receptor_center_x ( void  )
inline

Return receptor center_x.

◆ get_receptor_center_y()

double ECM::get_receptor_center_y ( void  )
inline

Return receptor center_y.

◆ get_receptor_center_z()

double ECM::get_receptor_center_z ( void  )
inline

Return receptor center_z.

◆ get_receptor_density()

double ECM::get_receptor_density ( void  )
inline

Return receptor density.

◆ get_receptor_gradient_x()

double ECM::get_receptor_gradient_x ( void  )
inline

Return receptor density gradient_x.

◆ get_receptor_gradient_y()

double ECM::get_receptor_gradient_y ( void  )
inline

Return receptor density gradient_y.

◆ get_receptor_gradient_z()

double ECM::get_receptor_gradient_z ( void  )
inline

Return receptor density gradient_z.

◆ get_receptor_type()

int ECM::get_receptor_type ( void  )
inline

Return receptor type.

◆ get_sigma()

double ECM::get_sigma ( void  )
inline

◆ get_sigma_LJ_12_6()

double ECM::get_sigma_LJ_12_6 ( void  )
inline

Return the Lenard Jones 12 6 sigma, used to setup the openmm system for the LJ interaction.

◆ get_spring_model()

int ECM::get_spring_model ( void  )
inline

Return input spring model, used to setup the openmm system for the bonds.

◆ get_spring_stiffness_coefficient()

double ECM::get_spring_stiffness_coefficient ( void  )
inline

Return spring stiffness coefficient.

◆ get_stiffness_gradient_x()

double ECM::get_stiffness_gradient_x ( void  )
inline

Return spring stiffness gradient_x.

◆ get_stiffness_gradient_y()

double ECM::get_stiffness_gradient_y ( void  )
inline

Return spring stiffness gradient_y.

◆ get_stiffness_gradient_z()

double ECM::get_stiffness_gradient_z ( void  )
inline

Return spring stiffness gradient_z.

◆ import_config()

void ECM::import_config ( vector< string >  configlines)

◆ initialise()

void ECM::initialise ( int  dimension)
private

◆ Node_Bond_identifier_2D()

void ECM::Node_Bond_identifier_2D ( void  )
private

◆ Node_Bond_identifier_3D()

void ECM::Node_Bond_identifier_3D ( void  )
private

◆ Node_Bond_identifier_3D_square()

void ECM::Node_Bond_identifier_3D_square ( void  )
private

◆ Node_neighbour_list_constructor()

void ECM::Node_neighbour_list_constructor ( void  )
private

◆ normal_direction_Identifier() [1/2]

void ECM::normal_direction_Identifier ( double  x,
double  y,
double  z 
)
private

◆ normal_direction_Identifier() [2/2]

void ECM::normal_direction_Identifier ( void  )
private

◆ read_gmesh_file_2D()

void ECM::read_gmesh_file_2D ( std::string  gmesh_file)
private

◆ read_gmesh_file_3D()

void ECM::read_gmesh_file_3D ( std::string  gmesh_file)
private

◆ read_gmesh_file_3D_square()

void ECM::read_gmesh_file_3D_square ( std::string  gmesh_file)
private

◆ set_FENE_param()

void ECM::set_FENE_param ( double &  le0,
double &  le1,
double &  lmin,
double &  lmax 
)
inline

Set FENE calculated parameters.

◆ set_file_time()

void ECM::set_file_time ( char *  buffer)
inline

◆ set_index()

void ECM::set_index ( int  ind)
inline

◆ set_interaction_range()

void ECM::set_interaction_range ( double  range)
inline

◆ set_label()

void ECM::set_label ( std::string  lab)
inline

Assigns the label(pdb) used to write to the trajectory files.

◆ set_state()

void ECM::set_state ( MyAtomInfo  all_atoms[],
int  atom_count 
)

Set the current state (OpenMM) of the class.

◆ shift_node_positions()

void ECM::shift_node_positions ( void  )
inline

◆ shift_velocity()

void ECM::shift_velocity ( double  vx,
double  vy,
double  vz 
)
inline

◆ update_COM_position()

void ECM::update_COM_position ( void  )
inline

◆ update_COM_velocity()

void ECM::update_COM_velocity ( void  )
inline

Member Data Documentation

◆ Average_node_pair_length

double ECM::Average_node_pair_length
private

◆ COM_position

double ECM::COM_position[3] ={0}
private

◆ COM_velocity

double ECM::COM_velocity[3] ={0}
private

◆ Dashpot_Viscosity

double ECM::Dashpot_Viscosity =0.02
private

◆ epsilon

double ECM::epsilon =0.6
private

◆ epsilon_LJ_12_6

double ECM::epsilon_LJ_12_6 =0
private

◆ ext_force_model

int ECM::ext_force_model =0
private

◆ file_time

std::string ECM::file_time
private

◆ index

int ECM::index
private

◆ insertOrder

vector<string> ECM::insertOrder

◆ interaction_range

double ECM::interaction_range =1.0
private

◆ Kelvin_Damping_Coefficient

double ECM::Kelvin_Damping_Coefficient =100
private

◆ kx

double ECM::kx =10
private

◆ ky

double ECM::ky =10
private

◆ kz

double ECM::kz =10
private

◆ label

std::string ECM::label
private

◆ Max_node_pair_length

double ECM::Max_node_pair_length
private

◆ Mesh_file_name

std::string ECM::Mesh_file_name
private

◆ Min_node_pair_length

double ECM::Min_node_pair_length
private

◆ Node_Bond_list

vector<vector<int> > ECM::Node_Bond_list
private

◆ Node_Force

vector<vector<double> > ECM::Node_Force
private

◆ Node_Mass

double ECM::Node_Mass =1
private

◆ Node_neighbour_list

vector<vector<int> > ECM::Node_neighbour_list
private

◆ Node_Position

vector<vector<double> > ECM::Node_Position
private

◆ Node_radius

double ECM::Node_radius =1
private

◆ Node_Velocity

vector<vector<double> > ECM::Node_Velocity
private

◆ Num_of_Node_Pairs

int ECM::Num_of_Node_Pairs =0
private

◆ Num_of_Nodes

int ECM::Num_of_Nodes =0
private

◆ Num_of_Triangle_Pairs

int ECM::Num_of_Triangle_Pairs =0
private

◆ Num_of_Triangles

int ECM::Num_of_Triangles =0
private

◆ output_file_neme

std::string ECM::output_file_neme

◆ param_map

std::map<std::string, double> ECM::param_map
private

◆ Params

std::map<string, vector<string> > ECM::Params

◆ Pyramid_Nodes

vector<vector<int> > ECM::Pyramid_Nodes
private

◆ receptor_center_x

double ECM::receptor_center_x = 0
private

◆ receptor_center_y

double ECM::receptor_center_y = 0
private

◆ receptor_center_z

double ECM::receptor_center_z = 0
private

◆ receptor_density

double ECM::receptor_density = 0.5
private

◆ receptor_gradient_x

double ECM::receptor_gradient_x = 0
private

◆ receptor_gradient_y

double ECM::receptor_gradient_y = 0
private

◆ receptor_gradient_z

double ECM::receptor_gradient_z = 0
private

◆ receptor_type

int ECM::receptor_type = 1
private

◆ rescale_factor

double ECM::rescale_factor
private

◆ Shift_in_X_direction

double ECM::Shift_in_X_direction =0
private

◆ Shift_in_Y_direction

double ECM::Shift_in_Y_direction =0
private

◆ Shift_in_Z_direction

double ECM::Shift_in_Z_direction =0
private

◆ sigma

double ECM::sigma =15.0
private

◆ sigma_LJ_12_6

double ECM::sigma_LJ_12_6 =0
private

◆ Spring_coefficient

double ECM::Spring_coefficient =10
private

◆ spring_model

int ECM::spring_model =1
private

◆ square_Nodes

vector<vector<int> > ECM::square_Nodes
private

◆ stiffness_gradient_x

double ECM::stiffness_gradient_x =0
private

◆ stiffness_gradient_y

double ECM::stiffness_gradient_y =0
private

◆ stiffness_gradient_z

double ECM::stiffness_gradient_z =0
private

◆ Triangle_List

vector<vector<int> > ECM::Triangle_List
private

◆ values

vector<string> ECM::values

◆ x_speed

double ECM::x_speed =0.0
private

◆ y_speed

double ECM::y_speed =0.0
private

◆ z_speed

double ECM::z_speed =0.0
private

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