The Virtual Cell Model  1.0
Membrane Class Reference

The class 'Membrane' manages the required enviroment (system, forces, etc) of coordinates on a triangular mesh. More...

#include <Include/Membrane.h>

Public Member Functions

void rotate_coordinates (double theta, double phi)
 
void rotate_particle_to_axes (ArgStruct_Analysis args)
 
void update_spherical_positions ()
 
void convert_spherical_positions_to_cartisian ()
 
void analysis_init (std::string Mesh_path)
 
void get_ground_state_from_mesh (ArgStruct_Analysis args)
 
void get_ground_state_from_frame (ArgStruct_Analysis args)
 
void calculate_dOmega (void)
 
void load_pdb_frame (int frame, ArgStruct_Analysis args)
 
void import_pdb_frames (ArgStruct_Analysis args, int file_index)
 
void generate_ulm_mode (int ell, int m, double ulm, double radius)
 
void generate_ulm_mode_real (int Ell, int M, double uLM, double radius)
 
void add_ulm_mode_real (int Ell, int M, double uLM, double radius)
 
void myWritePDBFrame (int frameNum, std::string traj_name)
 
std::complex< double > calc_vectorlist_vectorlist_surface_integral (vector< std::complex< double > > vectorlist1, vector< std::complex< double > > vectorlist2)
 
std::complex< double > calc_vectorlist_vectorlist_surface_integral (vector< std::complex< double > > vectorlist1, vector< double > vectorlist2)
 
double calc_vectorlist_vectorlist_surface_integral (vector< double > vectorlist1, vector< double > vectorlist2)
 
vector< std::complex< double > > get_ylm_vectorlist_for_mesh (int ell, int m, bool complex_conjugate)
 
vector< double > get_real_ylm_vectorlist_for_mesh (int ell, int m)
 
vector< double > get_ulmYlm_vectorlist_for_mesh ()
 
vector< double > get_ulmYlm_vectorlist_for_mesh (char Requiv)
 
void get_ring (ArgStruct_Analysis args)
 
void get_ring_from_projection (ArgStruct_Analysis args, int numpoints)
 
void calculate_freqs (ArgStruct_Analysis args)
 
void calculate_freqs_projection (ArgStruct_Analysis args)
 
void calculate_2D_amplitudes_Alexandra (int q_max)
 
void calculate_deltaphi (void)
 
void calculate_deltaphi_Alexandra (void)
 
void updatepos (double)
 
void WriteMemPDBFrame (ArgStruct_Analysis args, vector< int > chainlist)
 
void calculate_contourSegmentLength (void)
 
void calculate_contourRadius (void)
 
void calculate_modeAmplitudes2D (void)
 
std::complex< double > calc_complex_ylm_surface_integral (int ell, int m, double radius)
 
std::complex< double > calc_complex_ylmthetaphi (int l, int m, double theta, double phi)
 return the complex spherical harmonic for the provided parameters: Y_l,m (theta, phi). More...
 
double calc_real_ylmthetaphi (int l, int m, double theta, double phi)
 
void calculate_ulm (ArgStruct_Analysis args)
 
void calculate_real_ulm (ArgStruct_Analysis args)
 
void calculate_real_ulm (ArgStruct_Analysis args, char Requiv, bool clear)
 
void calculate_ulm_radiustest (int ell_max, int analysis_averaging_option)
 
void calculate_ulm_radiustest_real (int ell_max, int analysis_averaging_option)
 
void calculate_ulm_sub_particles (int ell_max, int analysis_averaging_option)
 
void write_ulm (ArgStruct_Analysis args, int file_index)
 
void write_un_uq (ArgStruct_Analysis args, int file_index)
 
void write_un_uq_projection (ArgStruct_Analysis args, int file_index)
 
void write_uq_SH (ArgStruct_Analysis args, int file_index)
 
double calc_assoc_legendre (int ell, int m, double x)
 
void calculateH_2D_amplitudes (int q_max)
 
void calculateH_2D_amplitudes_projection (int q_max, int numpoints)
 
void calculate_2D_amplitudes_Alexandra_projection (int q_max, int numpoints)
 
void set_com_to_zero ()
 
bool get_GeometricProps_flag ()
 Return the geometrical properties write status. More...
 
void write_geometrics ()
 
double calculate_bending_energy (void)
 Returns the total bending energy of the membrane (indepentant of OpenMM calculations) More...
 
double get_new_radius (void)
 Returns the node radius update value (set value in the configuration file). More...
 
bool get_update_status (void)
 Returns whether the Membrane is setup for radius change (true) or not (false). More...
 
void check (void)
 
void get_bond_length_distribution (void)
 
void set_bond_nominal_length (void)
 
void set_node_radius (void)
 
void set_bending_nominal_angle (void)
 
void set_dihedral_atoms (void)
 
void check_radius_update_values (void)
 
void Triangle_Pair_and_Node_Bonds_Identifier ()
 
void Elastic_Force_Calculator (double theta_0)
 
void Mechanical_Energy_calculator ()
 
void Export_Mechanical_Energy (string filename, int frame)
 
void harmonic_potential_calculator (void)
 
void Node_neighbour_list_constructor ()
 Construct a vector that lists all the neighbours of each node and their respective index in the 'Node_Bond_list'. More...
 
void Bond_triangle_neighbour_list_constructor ()
 Construct a vector that lists the triangle neighbours of each node pair. More...
 
void export_for_resume (int MD_step)
 
void find_the_new_neighbour (int neighbour_id[6], int previous_dihedral_index, int initial_pair, bool A_or_B)
 
void monte_carlo_flip (MyOpenMMData *omm, Bonds *bonds, Dihedrals *dihedrals, MyAtomInfo atoms[], double &localDeltaE, int &Accepted_Try_Counter, int &pyramid_counter, int &MC_total_tries, double &MC_Acceptance_Rate)
 
double calculating_the_bond_energy (int index, bool initial_or_final, MyAtomInfo atoms[], int number_of_privious_mem_nodes)
 
double calculating_the_bond_energy_check (int p1, int p2, MyAtomInfo atoms[])
 
double calculating_the_bend_energy (int uncommn1, int common2, int common3, int uncommon4, bool initial_or_final, MyAtomInfo atoms[], int number_of_privious_mem_nodes)
 
double calculating_the_bend_energy_2 (int uncommon1, int common2, int common3, int uncommon4, MyAtomInfo atoms[], int number_of_privious_mem_nodes)
 
double calculating_the_bond_length_check (int p1, int p2, MyAtomInfo atoms[])
 
void check_before_update (int triangle_A, int triangle_B, int new_neighbour_dihedrals[4][6], int &pyramid_counter, bool &accept)
 
void update_Membrane_class_and_openmm (int initial_pair, int triangle_A, int triangle_B, int new_neighbour_dihedrals[4][6], MyOpenMMData *omm, Bonds *bonds, Dihedrals *dihedrals)
 
void Update_Membrane (int initial_pair, int triangle_A, int triangle_B, int new_neighbour_dihedrals[4][6], int &bond_index)
 
bool check_Pyramid (vector< int > A_neighbors, vector< int > B_neighbors)
 
bool check_Pyramid_2 (int initial_pair, vector< int > A_neighbours_dihedral_index, vector< int > B_neighbours_dihedral_index)
 
void check_the_flip (MyOpenMMData *omm, Bonds *bonds, Dihedrals *dihedrals)
 
void export_for_resume (int MD_step, MyAtomInfo atoms[], int atom_count)
 
void initialise (std::string Mesh_file_name)
 
void import (std::string import_file_name)
 
void import_config (vector< string > configlines)
 
void write_pov_traj (std::string traj_name, std::string label, int currentstep)
 
vector< double > get_gompper_params_lminlc1lc0lmax ()
 
double get_volume (void)
 Returns the last saved volume. More...
 
vector< double > get_voronoi_node_area ()
 Calculate the voronoi area of each node and return a list that indicated the voronoi area of each node. More...
 
void calculate_volume_and_surface_area (void)
 Calculate the volume of a closed membrane by summing triangular pyramids. More...
 
void calculate_surface_area_with_voronoi (void)
 Calculate the volume of a closed membrane by summing triangular pyramids. More...
 
double get_surface_area (void)
 Returns the last saved surface area. More...
 
double get_End_update_time_in_Ps (void)
 Return the new node radius 'end update time' in Ps. More...
 
double get_Begin_update_time_in_Ps (void)
 Return the new node radius 'begin update time' in Ps. More...
 
vector< double > get_node_normal_vec (int node)
 return normal vector of each node. More...
 
double get_node_voronoi_area (int node)
 return the voronoi area associated with each node. More...
 
double get_surface_area_voronoi ()
 Return the sum of the voronoi area of each node. More...
 
void rescale_membrane (double factor)
 
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...
 
int get_num_of_nodes (void)
 public access to total number of membrane nodes. More...
 
int get_num_of_node_pairs (void)
 Return the number of bonds between membrane nodes. More...
 
int get_node_pair (int bond_num, int node_id)
 Return the id(int) of the nodes in the bonds. More...
 
double get_node_pair_Nominal_Length_in_Nm (int bond_num)
 Return the distance between node pair index. More...
 
double get_node_mass (void)
 Return the node mass. More...
 
double get_avg_node_dist (void)
 Return the average distance of the nodes as calculated from the mesh. More...
 
double get_spring_stiffness_coefficient (void)
 Return spring stiffness coefficient. More...
 
double get_damping_coefficient (void)
 Return damp coefficient. More...
 
double get_bending_stiffness_coefficient (void)
 Return bending stiffness coefficient. More...
 
double get_spontaneous_angle_in_Rad (int nodePairIndex)
 Return the spontaneous bending angle between triangle pairs in radians. More...
 
int get_num_of_triangle_pairs ()
 Return the spontaneous bending angle between triangle pairs in radians. More...
 
vector< int > get_traingle_pair_nodes_list (int triangle_pair)
 Return the node IDs of the dihedral angles. More...
 
vector< int > get_dihedral_atoms_list (int index)
 Return the node IDs of the dihedral angles. More...
 
int get_traingle_pair_node (int triangle_pair, int index)
 Return the node ID of the dihedral angles member. More...
 
int get_spring_model (void)
 Return input spring model, used to setup the openmm system for the bonds. More...
 
int get_bending_model (void)
 Return input spring model, used to setup the openmm system for the bonds. 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...
 
int get_ext_force_model (void)
 Return external force model. More...
 
double get_kx (void)
 
double get_ky (void)
 
double get_kz (void)
 
void set_FENE_param_2 (double &lmin, double &lmax, double &epsilon, double &k)
 
double calc_theta_angle_ABC (int node_A, int node_B, int node_C)
 Calculate and return the cot of the angle between nodes A(middle of the angle), B, and C. More...
 
void set_FENE_param (double &le0, double &le1, double &lmin, double &lmax)
 Set FENE calculated parameters. More...
 
void shift_velocity (double vx, double vy, double vz)
 
int get_num_of_triangle ()
 Returns the calculated number of triangles in the imported mesh file. More...
 
double get_spherical_position (int node_number, int node_coordinate)
 Returns the r (0), theta (1), and phi (2) spherical coordinate of the node index (number). More...
 
double get_node_position (int node_number, int node_coordinate)
 Returns the x (0), y (1), and z (2) coordinate of the node index (number). More...
 
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 set_state (MyAtomInfo all_atoms[], int atom_count)
 Set the current state (OpenMM) of the class. More...
 
void set_file_time (char *buffer)
 
void set_index (int ind)
 
double get_node_radius (int index)
 
double get_membrane_weighted_radius (void)
 
void add_to_force (double force, int index, int coor)
 
void update_COM_velocity (void)
 
void update_COM_position (void)
 
void shift_position (double x, double y, double z)
 This function shifts the whole membrane. More...
 
void update_average_Membrane_radius (void)
 
double get_average_Membrane_radius (void)
 
double get_new_Membrane_radius (void)
 
void ranfomundulationgenerator (void)
 
 Membrane ()
 
std::map< string, vector< string > > get_map ()
 
vector< string > get_insertOrder ()
 
void assign_parameters (void)
 
void consistancy_check (void)
 

Public Attributes

bool initial_random_rotation_coordinates = false
 
vector< double > node_dOmega
 
vector< int > ringNodeList
 
vector< double > contourradii
 
vector< double > contourSegmentLength
 
vector< vector< double > > aq_alexandra
 
vector< vector< double > > bq_alexandra
 
vector< vector< double > > Aq_H
 
vector< vector< double > > Bq_H
 
vector< vector< double > > aq_alexandra_proj
 
vector< vector< double > > bq_alexandra_proj
 
vector< vector< double > > Aq_H_proj
 
vector< vector< double > > Bq_H_proj
 
vector< double > deltaphi
 
vector< int > chainlist
 
vector< vector< double > > ulm_avg
 
vector< vector< double > > ulm_std
 
vector< vector< double > > ulm_Mesh
 
vector< vector< double > > ulm_temp_for_analysis
 
double contourRadius
 
vector< double > pdb_frames_time
 
vector< vector< vector< double > > > pdb_frames
 
vector< vector< double > > spherical_positions
 
std::string output_file_neme
 
std::string file_time
 
vector< vector< double > > Node_Position
 
vector< vector< int > > Triangle_list
 
vector< vector< int > > Triangle_pair_list
 
vector< vector< int > > Node_Bond_list
 
vector< double > Node_Bond_Nominal_Length_in_Nm
 
string Node_Bond_Nominal_Length_stat
 
double Node_Bond_user_defined_Nominal_Length_in_Nm
 
vector< double > Triangle_pair_angles_in_radians
 
string Triangle_pair_angle_stat
 
double Triangle_pair_Nominal_angle_in_degrees =-1
 
vector< vector< int > > Triangle_Pair_Nodes
 
vector< vector< double > > Node_Velocity
 
vector< vector< double > > Node_Force
 
vector< vector< int > > Node_neighbour_list
 This list is used to store all the neighbours of nodes: Example: If node i has 4 neighbours: m, n, o, p Then we find these neighbours in the 'Node_neighbour_list' as follows: Node_neighbour_list [ i ][0] = m Node_neighbour_list [ i ][1] = n Node_neighbour_list [ i ][2] = o Node_neighbour_list [ i ][3] = p. More...
 
vector< vector< int > > Node_neighbour_list_respective_bond_index
 This list is used to cross reference the neighbouring nodes to their respective index in the 'Node_neighbour_list'. More...
 
vector< vector< double > > node_voronoi_normal_vec
 
vector< double > node_voronoi_area
 
double surface_area_voronoi =0
 
vector< double > GompperBondPotentialLminLc1Lc0Lmax
 
vector< int > Bond_triangle_neighbour_indices
 
bool check_monte_carlo =0
 
int spring_model =0
 
int bending_model =0
 
string mesh_format
 
double Spring_coefficient =0.
 
double Bending_coefficient =0.
 
double SpontaneousTriangleBendingInDegrees =0.
 
double Damping_coefficient =0.0
 
vector< double > Shift_position_xyzVector
 
vector< double > Shift_velocities_xyzVector
 
int ext_force_model =0
 
double kx =10
 
double ky =10
 
double kz =10
 
double Min_node_pair_length
 
double Max_node_pair_length
 
double Average_node_pair_length
 
double rescale_factor =1
 
bool AddRandomModes = false
 
int NumberOfRandomModes
 
int EllMaxOfRandomModes
 
double UlmOfRandomModes
 
std::map< string, vector< string > > Params
 
vector< string > insertOrder
 
vector< string > values
 

Protected Member Functions

double Average_Node_Distance ()
 
void read_gmesh_file (std::string gmesh_file)
 
void read_ply_file (std::string ply_file)
 
void Triangle_pair_counter ()
 
void Normal_direction_Identifier ()
 
void FENE_log (void)
 
void custom (void)
 
void Node_Bonds_identifier (void)
 
void Triangle_pair_identifier (void)
 
void Bending_potetial_2 (double theta_0)
 
void calculating_dihedral_energy ()
 

Protected Attributes

std::string label
 Store the label(pdb) used to write to the trajectory file. More...
 
int index
 Store the mem index the instance of the class has in the vector of Membranes in the main programme. More...
 
double volume
 Store the volume of the membrane. More...
 
double surface_area
 Store the surface area of the membrane. More...
 
int Num_of_Nodes =0
 Number of nodes in the membrane. More...
 
int Num_of_Triangles
 This is the number of nodes on the membrane (Both the outer membrane and the Nucleus). This is the first number that appears in the 'membrane' file (once opend with a text editor) More...
 
std::map< std::string, double > param_map
 This is the number of triangles on the membrane (Both the outer membrane and the Nucleus). This is the number that appears in the 'membrane' file after the node position list is finished and before Gmesh lists the nodes that make a triangle. More...
 
std::string Mesh_file_name ="None"
 
std::string resume_file_name ="None"
 
double sigma_LJ_12_6 =0
 
double epsilon_LJ_12_6 =0
 
double Node_Mass =1.0
 
double Total_Potential_Energy =0.0
 
double Total_Bond_Energy =0.0
 
double Total_Bending_Energy =0.0
 
double Total_Kinetic_Energy
 
double Radius =0
 
string Node_radius_stat
 
vector< double > Node_radius
 
double New_Radius =-1
 
double New_node_radius =-1
 
double Begin_update_time_in_Ps =0
 
double End_update_time_in_Ps =0
 
bool update_radius_stat =false
 
double COM_velocity [3] ={0}
 
double COM_position [3] ={0}
 
double FENE_min =0
 
double FENE_max =0
 
double FENE_epsilon =0
 
double FENE_k =0
 
int Num_of_Node_Pairs
 
int Num_of_Triangle_Pairs
 
double X_in =0
 
double Y_in =0
 
double Z_in =0
 
double X_scale =0
 
double Y_scale =0
 
double Z_scale =0
 
vector< vector< int > > dihedral_atoms
 
bool WantGeometricProps =false
 write geometrical properties if it is true. More...
 

Detailed Description

The class 'Membrane' manages the required enviroment (system, forces, etc) of coordinates on a triangular mesh.

The Membrane class deciphers the mesh coordinates from the input mesh file provided in the configuration file. The bond information is also extracted from the mesh file and stored in the class. The various interactions of membrane nodes and all the membrane node info is also stored in this class.

Note
Work in progress.

Contact: a.far.nosp@m.nudi.nosp@m.@gmai.nosp@m.l.co.nosp@m.m

Constructor & Destructor Documentation

◆ Membrane()

Membrane::Membrane ( )
inline

Member Function Documentation

◆ add_to_force()

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

◆ add_ulm_mode_real()

void Membrane::add_ulm_mode_real ( int  Ell,
int  M,
double  uLM,
double  radius 
)

◆ analysis_init()

void Membrane::analysis_init ( std::string  Mesh_path)

◆ assign_parameters()

void Membrane::assign_parameters ( void  )

◆ Average_Node_Distance()

double Membrane::Average_Node_Distance ( )
protected

◆ Bending_potetial_2()

void Membrane::Bending_potetial_2 ( double  theta_0)
protected

◆ Bond_triangle_neighbour_list_constructor()

void Membrane::Bond_triangle_neighbour_list_constructor ( )

Construct a vector that lists the triangle neighbours of each node pair.

◆ calc_assoc_legendre()

double Membrane::calc_assoc_legendre ( int  ell,
int  m,
double  x 
)

◆ calc_complex_ylm_surface_integral()

std::complex<double> Membrane::calc_complex_ylm_surface_integral ( int  ell,
int  m,
double  radius 
)

◆ calc_complex_ylmthetaphi()

std::complex<double> Membrane::calc_complex_ylmthetaphi ( int  l,
int  m,
double  theta,
double  phi 
)

return the complex spherical harmonic for the provided parameters: Y_l,m (theta, phi).

Where l is a positiv integer, m is defined -l <= m <= l, theta is 0 <= theta <= pi, and phi is defined 0 <= phi <= 2pi. s

◆ calc_real_ylmthetaphi()

double Membrane::calc_real_ylmthetaphi ( int  l,
int  m,
double  theta,
double  phi 
)

◆ calc_theta_angle_ABC()

double Membrane::calc_theta_angle_ABC ( int  node_A,
int  node_B,
int  node_C 
)

Calculate and return the cot of the angle between nodes A(middle of the angle), B, and C.

◆ calc_vectorlist_vectorlist_surface_integral() [1/3]

double Membrane::calc_vectorlist_vectorlist_surface_integral ( vector< double >  vectorlist1,
vector< double >  vectorlist2 
)

◆ calc_vectorlist_vectorlist_surface_integral() [2/3]

std::complex<double> Membrane::calc_vectorlist_vectorlist_surface_integral ( vector< std::complex< double > >  vectorlist1,
vector< double >  vectorlist2 
)

◆ calc_vectorlist_vectorlist_surface_integral() [3/3]

std::complex<double> Membrane::calc_vectorlist_vectorlist_surface_integral ( vector< std::complex< double > >  vectorlist1,
vector< std::complex< double > >  vectorlist2 
)

◆ calculate_2D_amplitudes_Alexandra()

void Membrane::calculate_2D_amplitudes_Alexandra ( int  q_max)

◆ calculate_2D_amplitudes_Alexandra_projection()

void Membrane::calculate_2D_amplitudes_Alexandra_projection ( int  q_max,
int  numpoints 
)

◆ calculate_bending_energy()

double Membrane::calculate_bending_energy ( void  )

Returns the total bending energy of the membrane (indepentant of OpenMM calculations)

◆ calculate_contourRadius()

void Membrane::calculate_contourRadius ( void  )

◆ calculate_contourSegmentLength()

void Membrane::calculate_contourSegmentLength ( void  )

◆ calculate_deltaphi()

void Membrane::calculate_deltaphi ( void  )

◆ calculate_deltaphi_Alexandra()

void Membrane::calculate_deltaphi_Alexandra ( void  )

◆ calculate_dOmega()

void Membrane::calculate_dOmega ( void  )

◆ calculate_freqs()

void Membrane::calculate_freqs ( ArgStruct_Analysis  args)

◆ calculate_freqs_projection()

void Membrane::calculate_freqs_projection ( ArgStruct_Analysis  args)

◆ calculate_modeAmplitudes2D()

void Membrane::calculate_modeAmplitudes2D ( void  )

◆ calculate_real_ulm() [1/2]

void Membrane::calculate_real_ulm ( ArgStruct_Analysis  args)

◆ calculate_real_ulm() [2/2]

void Membrane::calculate_real_ulm ( ArgStruct_Analysis  args,
char  Requiv,
bool  clear 
)

◆ calculate_surface_area_with_voronoi()

void Membrane::calculate_surface_area_with_voronoi ( void  )

Calculate the volume of a closed membrane by summing triangular pyramids.

◆ calculate_ulm()

void Membrane::calculate_ulm ( ArgStruct_Analysis  args)

◆ calculate_ulm_radiustest()

void Membrane::calculate_ulm_radiustest ( int  ell_max,
int  analysis_averaging_option 
)

◆ calculate_ulm_radiustest_real()

void Membrane::calculate_ulm_radiustest_real ( int  ell_max,
int  analysis_averaging_option 
)

◆ calculate_ulm_sub_particles()

void Membrane::calculate_ulm_sub_particles ( int  ell_max,
int  analysis_averaging_option 
)

◆ calculate_volume_and_surface_area()

void Membrane::calculate_volume_and_surface_area ( void  )

Calculate the volume of a closed membrane by summing triangular pyramids.

◆ calculateH_2D_amplitudes()

void Membrane::calculateH_2D_amplitudes ( int  q_max)

◆ calculateH_2D_amplitudes_projection()

void Membrane::calculateH_2D_amplitudes_projection ( int  q_max,
int  numpoints 
)

◆ calculating_dihedral_energy()

void Membrane::calculating_dihedral_energy ( )
protected

◆ calculating_the_bend_energy()

double Membrane::calculating_the_bend_energy ( int  uncommn1,
int  common2,
int  common3,
int  uncommon4,
bool  initial_or_final,
MyAtomInfo  atoms[],
int  number_of_privious_mem_nodes 
)

◆ calculating_the_bend_energy_2()

double Membrane::calculating_the_bend_energy_2 ( int  uncommon1,
int  common2,
int  common3,
int  uncommon4,
MyAtomInfo  atoms[],
int  number_of_privious_mem_nodes 
)

◆ calculating_the_bond_energy()

double Membrane::calculating_the_bond_energy ( int  index,
bool  initial_or_final,
MyAtomInfo  atoms[],
int  number_of_privious_mem_nodes 
)

◆ calculating_the_bond_energy_check()

double Membrane::calculating_the_bond_energy_check ( int  p1,
int  p2,
MyAtomInfo  atoms[] 
)

◆ calculating_the_bond_length_check()

double Membrane::calculating_the_bond_length_check ( int  p1,
int  p2,
MyAtomInfo  atoms[] 
)

◆ check()

void Membrane::check ( void  )

◆ check_before_update()

void Membrane::check_before_update ( int  triangle_A,
int  triangle_B,
int  new_neighbour_dihedrals[4][6],
int &  pyramid_counter,
bool &  accept 
)

◆ check_Pyramid()

bool Membrane::check_Pyramid ( vector< int >  A_neighbors,
vector< int >  B_neighbors 
)

◆ check_Pyramid_2()

bool Membrane::check_Pyramid_2 ( int  initial_pair,
vector< int >  A_neighbours_dihedral_index,
vector< int >  B_neighbours_dihedral_index 
)

◆ check_radius_update_values()

void Membrane::check_radius_update_values ( void  )

◆ check_the_flip()

void Membrane::check_the_flip ( MyOpenMMData omm,
Bonds bonds,
Dihedrals dihedrals 
)

◆ consistancy_check()

void Membrane::consistancy_check ( void  )

◆ convert_spherical_positions_to_cartisian()

void Membrane::convert_spherical_positions_to_cartisian ( )

◆ custom()

void Membrane::custom ( void  )
protected

◆ Elastic_Force_Calculator()

void Membrane::Elastic_Force_Calculator ( double  theta_0)

◆ export_for_resume() [1/2]

void Membrane::export_for_resume ( int  MD_step)

◆ export_for_resume() [2/2]

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

◆ Export_Mechanical_Energy()

void Membrane::Export_Mechanical_Energy ( string  filename,
int  frame 
)

◆ FENE_log()

void Membrane::FENE_log ( void  )
protected

◆ find_the_new_neighbour()

void Membrane::find_the_new_neighbour ( int  neighbour_id[6],
int  previous_dihedral_index,
int  initial_pair,
bool  A_or_B 
)

◆ generate_ulm_mode()

void Membrane::generate_ulm_mode ( int  ell,
int  m,
double  ulm,
double  radius 
)

◆ generate_ulm_mode_real()

void Membrane::generate_ulm_mode_real ( int  Ell,
int  M,
double  uLM,
double  radius 
)

◆ get_average_Membrane_radius()

double Membrane::get_average_Membrane_radius ( void  )
inline

◆ get_avg_node_dist()

double Membrane::get_avg_node_dist ( void  )
inline

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

◆ get_Begin_update_time_in_Ps()

double Membrane::get_Begin_update_time_in_Ps ( void  )
inline

Return the new node radius 'begin update time' in Ps.

◆ get_bending_model()

int Membrane::get_bending_model ( void  )
inline

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

◆ get_bending_stiffness_coefficient()

double Membrane::get_bending_stiffness_coefficient ( void  )
inline

Return bending stiffness coefficient.

◆ get_bond_length_distribution()

void Membrane::get_bond_length_distribution ( void  )

◆ get_damping_coefficient()

double Membrane::get_damping_coefficient ( void  )
inline

Return damp coefficient.

◆ get_dihedral_atoms_list()

vector<int> Membrane::get_dihedral_atoms_list ( int  index)
inline

Return the node IDs of the dihedral angles.

◆ get_End_update_time_in_Ps()

double Membrane::get_End_update_time_in_Ps ( void  )
inline

Return the new node radius 'end update time' in Ps.

◆ get_epsilon_LJ_12_6()

double Membrane::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 Membrane::get_ext_force_model ( void  )
inline

Return external force model.

◆ get_GeometricProps_flag()

bool Membrane::get_GeometricProps_flag ( )
inline

Return the geometrical properties write status.

◆ get_gompper_params_lminlc1lc0lmax()

vector<double > Membrane::get_gompper_params_lminlc1lc0lmax ( )
inline

◆ get_ground_state_from_frame()

void Membrane::get_ground_state_from_frame ( ArgStruct_Analysis  args)

◆ get_ground_state_from_mesh()

void Membrane::get_ground_state_from_mesh ( ArgStruct_Analysis  args)

◆ get_insertOrder()

vector<string > Membrane::get_insertOrder ( )
inline

◆ get_kx()

double Membrane::get_kx ( void  )
inline

◆ get_ky()

double Membrane::get_ky ( void  )
inline

◆ get_kz()

double Membrane::get_kz ( void  )
inline

◆ get_label()

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

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

◆ get_map()

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

◆ get_membrane_weighted_radius()

double Membrane::get_membrane_weighted_radius ( void  )
inline

◆ get_new_Membrane_radius()

double Membrane::get_new_Membrane_radius ( void  )
inline

◆ get_new_radius()

double Membrane::get_new_radius ( void  )
inline

Returns the node radius update value (set value in the configuration file).

◆ get_node_mass()

double Membrane::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_normal_vec()

vector<double> Membrane::get_node_normal_vec ( int  node)
inline

return normal vector of each node.

The normal vector of node N is the average of vectors normal to triangles that have node N as one of their vertices. It is garanteed that the vector will point away from the Membrane centre of mass.

◆ get_node_pair()

int Membrane::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_pair_Nominal_Length_in_Nm()

double Membrane::get_node_pair_Nominal_Length_in_Nm ( int  bond_num)
inline

Return the distance between node pair index.

This list is initiated at the begining of the simulation.

◆ get_node_position()

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

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

◆ get_node_radius()

double Membrane::get_node_radius ( int  index)
inline

◆ get_node_velocity()

double Membrane::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_node_voronoi_area()

double Membrane::get_node_voronoi_area ( int  node)
inline

return the voronoi area associated with each node.

◆ get_num_of_node_pairs()

int Membrane::get_num_of_node_pairs ( void  )
inline

Return the number of bonds between membrane nodes.

◆ get_num_of_nodes()

int Membrane::get_num_of_nodes ( void  )
inline

public access to total number of membrane nodes.

Returns
integer number of nodes in the membrane

◆ get_num_of_triangle()

int Membrane::get_num_of_triangle ( )
inline

Returns the calculated number of triangles in the imported mesh file.

◆ get_num_of_triangle_pairs()

int Membrane::get_num_of_triangle_pairs ( )
inline

Return the spontaneous bending angle between triangle pairs in radians.

Returns the calculated number of triangles in the imported mesh file.

◆ get_real_ylm_vectorlist_for_mesh()

vector<double> Membrane::get_real_ylm_vectorlist_for_mesh ( int  ell,
int  m 
)

◆ get_ring()

void Membrane::get_ring ( ArgStruct_Analysis  args)

◆ get_ring_from_projection()

void Membrane::get_ring_from_projection ( ArgStruct_Analysis  args,
int  numpoints 
)

◆ get_sigma_LJ_12_6()

double Membrane::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_spherical_position()

double Membrane::get_spherical_position ( int  node_number,
int  node_coordinate 
)
inline

Returns the r (0), theta (1), and phi (2) spherical coordinate of the node index (number).

Note: update_spherical_positions(); should be called to upddate the values.

◆ get_spontaneous_angle_in_Rad()

double Membrane::get_spontaneous_angle_in_Rad ( int  nodePairIndex)
inline

Return the spontaneous bending angle between triangle pairs in radians.

◆ get_spring_model()

int Membrane::get_spring_model ( void  )
inline

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

◆ get_spring_stiffness_coefficient()

double Membrane::get_spring_stiffness_coefficient ( void  )
inline

Return spring stiffness coefficient.

◆ get_surface_area()

double Membrane::get_surface_area ( void  )
inline

Returns the last saved surface area.

◆ get_surface_area_voronoi()

double Membrane::get_surface_area_voronoi ( )
inline

Return the sum of the voronoi area of each node.

◆ get_traingle_pair_node()

int Membrane::get_traingle_pair_node ( int  triangle_pair,
int  index 
)
inline

Return the node ID of the dihedral angles member.

◆ get_traingle_pair_nodes_list()

vector<int> Membrane::get_traingle_pair_nodes_list ( int  triangle_pair)
inline

Return the node IDs of the dihedral angles.

◆ get_ulmYlm_vectorlist_for_mesh() [1/2]

vector<double> Membrane::get_ulmYlm_vectorlist_for_mesh ( )

◆ get_ulmYlm_vectorlist_for_mesh() [2/2]

vector<double> Membrane::get_ulmYlm_vectorlist_for_mesh ( char  Requiv)

◆ get_update_status()

bool Membrane::get_update_status ( void  )
inline

Returns whether the Membrane is setup for radius change (true) or not (false).

◆ get_volume()

double Membrane::get_volume ( void  )
inline

Returns the last saved volume.

◆ get_voronoi_node_area()

vector<double> Membrane::get_voronoi_node_area ( )
inline

Calculate the voronoi area of each node and return a list that indicated the voronoi area of each node.

◆ get_ylm_vectorlist_for_mesh()

vector<std::complex<double> > Membrane::get_ylm_vectorlist_for_mesh ( int  ell,
int  m,
bool  complex_conjugate 
)

◆ harmonic_potential_calculator()

void Membrane::harmonic_potential_calculator ( void  )

◆ import()

void Membrane::import ( std::string  import_file_name)

◆ import_config()

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

◆ import_pdb_frames()

void Membrane::import_pdb_frames ( ArgStruct_Analysis  args,
int  file_index 
)

◆ initialise()

void Membrane::initialise ( std::string  Mesh_file_name)

◆ load_pdb_frame()

void Membrane::load_pdb_frame ( int  frame,
ArgStruct_Analysis  args 
)

◆ Mechanical_Energy_calculator()

void Membrane::Mechanical_Energy_calculator ( )

◆ monte_carlo_flip()

void Membrane::monte_carlo_flip ( MyOpenMMData omm,
Bonds bonds,
Dihedrals dihedrals,
MyAtomInfo  atoms[],
double &  localDeltaE,
int &  Accepted_Try_Counter,
int &  pyramid_counter,
int &  MC_total_tries,
double &  MC_Acceptance_Rate 
)

◆ myWritePDBFrame()

void Membrane::myWritePDBFrame ( int  frameNum,
std::string  traj_name 
)

◆ Node_Bonds_identifier()

void Membrane::Node_Bonds_identifier ( void  )
protected

◆ Node_neighbour_list_constructor()

void Membrane::Node_neighbour_list_constructor ( )

Construct a vector that lists all the neighbours of each node and their respective index in the 'Node_Bond_list'.

◆ Normal_direction_Identifier()

void Membrane::Normal_direction_Identifier ( )
protected

◆ ranfomundulationgenerator()

void Membrane::ranfomundulationgenerator ( void  )

◆ read_gmesh_file()

void Membrane::read_gmesh_file ( std::string  gmesh_file)
protected

◆ read_ply_file()

void Membrane::read_ply_file ( std::string  ply_file)
protected

◆ rescale_membrane()

void Membrane::rescale_membrane ( double  factor)
inline

◆ rotate_coordinates()

void Membrane::rotate_coordinates ( double  theta,
double  phi 
)

◆ rotate_particle_to_axes()

void Membrane::rotate_particle_to_axes ( ArgStruct_Analysis  args)

◆ set_bending_nominal_angle()

void Membrane::set_bending_nominal_angle ( void  )

◆ set_bond_nominal_length()

void Membrane::set_bond_nominal_length ( void  )

◆ set_com_to_zero()

void Membrane::set_com_to_zero ( )
inline

◆ set_dihedral_atoms()

void Membrane::set_dihedral_atoms ( void  )

◆ set_FENE_param()

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

Set FENE calculated parameters.

◆ set_FENE_param_2()

void Membrane::set_FENE_param_2 ( double &  lmin,
double &  lmax,
double &  epsilon,
double &  k 
)
inline

◆ set_file_time()

void Membrane::set_file_time ( char *  buffer)
inline

◆ set_index()

void Membrane::set_index ( int  ind)
inline

◆ set_label()

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

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

◆ set_node_radius()

void Membrane::set_node_radius ( void  )

◆ set_state()

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

Set the current state (OpenMM) of the class.

◆ shift_position()

void Membrane::shift_position ( double  x,
double  y,
double  z 
)
inline

This function shifts the whole membrane.

◆ shift_velocity()

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

◆ Triangle_Pair_and_Node_Bonds_Identifier()

void Membrane::Triangle_Pair_and_Node_Bonds_Identifier ( )

◆ Triangle_pair_counter()

void Membrane::Triangle_pair_counter ( )
protected

◆ Triangle_pair_identifier()

void Membrane::Triangle_pair_identifier ( void  )
protected

◆ update_average_Membrane_radius()

void Membrane::update_average_Membrane_radius ( void  )
inline

◆ update_COM_position()

void Membrane::update_COM_position ( void  )
inline

◆ update_COM_velocity()

void Membrane::update_COM_velocity ( void  )
inline

◆ Update_Membrane()

void Membrane::Update_Membrane ( int  initial_pair,
int  triangle_A,
int  triangle_B,
int  new_neighbour_dihedrals[4][6],
int &  bond_index 
)

◆ update_Membrane_class_and_openmm()

void Membrane::update_Membrane_class_and_openmm ( int  initial_pair,
int  triangle_A,
int  triangle_B,
int  new_neighbour_dihedrals[4][6],
MyOpenMMData omm,
Bonds bonds,
Dihedrals dihedrals 
)

◆ update_spherical_positions()

void Membrane::update_spherical_positions ( )

◆ updatepos()

void Membrane::updatepos ( double  )

◆ write_geometrics()

void Membrane::write_geometrics ( )

◆ write_pov_traj()

void Membrane::write_pov_traj ( std::string  traj_name,
std::string  label,
int  currentstep 
)

◆ write_ulm()

void Membrane::write_ulm ( ArgStruct_Analysis  args,
int  file_index 
)

◆ write_un_uq()

void Membrane::write_un_uq ( ArgStruct_Analysis  args,
int  file_index 
)

◆ write_un_uq_projection()

void Membrane::write_un_uq_projection ( ArgStruct_Analysis  args,
int  file_index 
)

◆ write_uq_SH()

void Membrane::write_uq_SH ( ArgStruct_Analysis  args,
int  file_index 
)

◆ WriteMemPDBFrame()

void Membrane::WriteMemPDBFrame ( ArgStruct_Analysis  args,
vector< int >  chainlist 
)

Member Data Documentation

◆ AddRandomModes

bool Membrane::AddRandomModes = false

◆ aq_alexandra

vector<vector<double> > Membrane::aq_alexandra

◆ aq_alexandra_proj

vector<vector<double> > Membrane::aq_alexandra_proj

◆ Aq_H

vector<vector<double> > Membrane::Aq_H

◆ Aq_H_proj

vector<vector<double> > Membrane::Aq_H_proj

◆ Average_node_pair_length

double Membrane::Average_node_pair_length

◆ Begin_update_time_in_Ps

double Membrane::Begin_update_time_in_Ps =0
protected

◆ Bending_coefficient

double Membrane::Bending_coefficient =0.

◆ bending_model

int Membrane::bending_model =0

◆ Bond_triangle_neighbour_indices

vector<int> Membrane::Bond_triangle_neighbour_indices

◆ bq_alexandra

vector<vector<double> > Membrane::bq_alexandra

◆ bq_alexandra_proj

vector<vector<double> > Membrane::bq_alexandra_proj

◆ Bq_H

vector<vector<double> > Membrane::Bq_H

◆ Bq_H_proj

vector<vector<double> > Membrane::Bq_H_proj

◆ chainlist

vector<int> Membrane::chainlist

◆ check_monte_carlo

bool Membrane::check_monte_carlo =0

◆ COM_position

double Membrane::COM_position[3] ={0}
protected

◆ COM_velocity

double Membrane::COM_velocity[3] ={0}
protected

◆ contourradii

vector<double> Membrane::contourradii

◆ contourRadius

double Membrane::contourRadius

◆ contourSegmentLength

vector<double> Membrane::contourSegmentLength

◆ Damping_coefficient

double Membrane::Damping_coefficient =0.0

◆ deltaphi

vector<double> Membrane::deltaphi

◆ dihedral_atoms

vector<vector< int > > Membrane::dihedral_atoms
protected

◆ EllMaxOfRandomModes

int Membrane::EllMaxOfRandomModes

◆ End_update_time_in_Ps

double Membrane::End_update_time_in_Ps =0
protected

◆ epsilon_LJ_12_6

double Membrane::epsilon_LJ_12_6 =0
protected

◆ ext_force_model

int Membrane::ext_force_model =0

◆ FENE_epsilon

double Membrane::FENE_epsilon =0
protected

◆ FENE_k

double Membrane::FENE_k =0
protected

◆ FENE_max

double Membrane::FENE_max =0
protected

◆ FENE_min

double Membrane::FENE_min =0
protected

◆ file_time

std::string Membrane::file_time

◆ GompperBondPotentialLminLc1Lc0Lmax

vector<double> Membrane::GompperBondPotentialLminLc1Lc0Lmax

◆ index

int Membrane::index
protected

Store the mem index the instance of the class has in the vector of Membranes in the main programme.

◆ initial_random_rotation_coordinates

bool Membrane::initial_random_rotation_coordinates = false

◆ insertOrder

vector<string> Membrane::insertOrder

◆ kx

double Membrane::kx =10

◆ ky

double Membrane::ky =10

◆ kz

double Membrane::kz =10

◆ label

std::string Membrane::label
protected

Store the label(pdb) used to write to the trajectory file.

◆ Max_node_pair_length

double Membrane::Max_node_pair_length

◆ Mesh_file_name

std::string Membrane::Mesh_file_name ="None"
protected

◆ mesh_format

string Membrane::mesh_format

◆ Min_node_pair_length

double Membrane::Min_node_pair_length

◆ New_node_radius

double Membrane::New_node_radius =-1
protected

◆ New_Radius

double Membrane::New_Radius =-1
protected

◆ Node_Bond_list

vector<vector<int> > Membrane::Node_Bond_list

◆ Node_Bond_Nominal_Length_in_Nm

vector<double> Membrane::Node_Bond_Nominal_Length_in_Nm

◆ Node_Bond_Nominal_Length_stat

string Membrane::Node_Bond_Nominal_Length_stat

◆ Node_Bond_user_defined_Nominal_Length_in_Nm

double Membrane::Node_Bond_user_defined_Nominal_Length_in_Nm

◆ node_dOmega

vector<double> Membrane::node_dOmega

◆ Node_Force

vector<vector<double> > Membrane::Node_Force

◆ Node_Mass

double Membrane::Node_Mass =1.0
protected

◆ Node_neighbour_list

vector<vector<int> > Membrane::Node_neighbour_list

This list is used to store all the neighbours of nodes: Example: If node i has 4 neighbours: m, n, o, p Then we find these neighbours in the 'Node_neighbour_list' as follows: Node_neighbour_list [ i ][0] = m Node_neighbour_list [ i ][1] = n Node_neighbour_list [ i ][2] = o Node_neighbour_list [ i ][3] = p.

◆ Node_neighbour_list_respective_bond_index

vector<vector<int> > Membrane::Node_neighbour_list_respective_bond_index

This list is used to cross reference the neighbouring nodes to their respective index in the 'Node_neighbour_list'.

Example: Suppose node i has 4 neighbours: m, n, o, p Then we find these neighbours in the 'Node_neighbour_list' as follows: Node_neighbour_list [ i ][0] = m Node_neighbour_list [ i ][1] = n Node_neighbour_list [ i ][2] = o Node_neighbour_list [ i ][3] = p

Then the i'th index of the 'Node_neighbour_list_respective_bond_index' will also contain 4 elements: Node_neighbour_list_respective_bond_index [ i ][0] = index_1 Node_neighbour_list_respective_bond_index [ i ][1] = index_2 Node_neighbour_list_respective_bond_index [ i ][2] = index_3 Node_neighbour_list_respective_bond_index [ i ][3] = index_4

The index_::s will point to the index in the 'Node_Bond_list' that has stored the respective nodes as pairs: Node_Bond_list [ index_1 ][ 0 ] and Node_Bond_list [ index_1 ][ 1 ] = i, m Node_Bond_list [ index_2 ][ 0 ] and Node_Bond_list [ index_2 ][ 1 ] = i, n Node_Bond_list [ index_3 ][ 0 ] and Node_Bond_list [ index_3 ][ 1 ] = i, o Node_Bond_list [ index_4 ][ 0 ] and Node_Bond_list [ index_4 ][ 1 ] = i, p

◆ Node_Position

vector<vector<double> > Membrane::Node_Position

◆ Node_radius

vector<double> Membrane::Node_radius
protected

◆ Node_radius_stat

string Membrane::Node_radius_stat
protected

◆ Node_Velocity

vector<vector<double> > Membrane::Node_Velocity

◆ node_voronoi_area

vector<double> Membrane::node_voronoi_area

◆ node_voronoi_normal_vec

vector<vector<double> > Membrane::node_voronoi_normal_vec

◆ Num_of_Node_Pairs

int Membrane::Num_of_Node_Pairs
protected

◆ Num_of_Nodes

int Membrane::Num_of_Nodes =0
protected

Number of nodes in the membrane.

◆ Num_of_Triangle_Pairs

int Membrane::Num_of_Triangle_Pairs
protected

◆ Num_of_Triangles

int Membrane::Num_of_Triangles
protected

This is the number of nodes on the membrane (Both the outer membrane and the Nucleus). This is the first number that appears in the 'membrane' file (once opend with a text editor)

◆ NumberOfRandomModes

int Membrane::NumberOfRandomModes

◆ output_file_neme

std::string Membrane::output_file_neme

◆ param_map

std::map<std::string, double> Membrane::param_map
protected

This is the number of triangles on the membrane (Both the outer membrane and the Nucleus). This is the number that appears in the 'membrane' file after the node position list is finished and before Gmesh lists the nodes that make a triangle.

◆ Params

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

◆ pdb_frames

vector<vector<vector<double> > > Membrane::pdb_frames

◆ pdb_frames_time

vector<double> Membrane::pdb_frames_time

◆ Radius

double Membrane::Radius =0
protected

◆ rescale_factor

double Membrane::rescale_factor =1

◆ resume_file_name

std::string Membrane::resume_file_name ="None"
protected

◆ ringNodeList

vector<int> Membrane::ringNodeList

◆ Shift_position_xyzVector

vector<double> Membrane::Shift_position_xyzVector

◆ Shift_velocities_xyzVector

vector<double> Membrane::Shift_velocities_xyzVector

◆ sigma_LJ_12_6

double Membrane::sigma_LJ_12_6 =0
protected

◆ spherical_positions

vector<vector<double> > Membrane::spherical_positions

◆ SpontaneousTriangleBendingInDegrees

double Membrane::SpontaneousTriangleBendingInDegrees =0.

◆ Spring_coefficient

double Membrane::Spring_coefficient =0.

◆ spring_model

int Membrane::spring_model =0

◆ surface_area

double Membrane::surface_area
protected

Store the surface area of the membrane.

◆ surface_area_voronoi

double Membrane::surface_area_voronoi =0

◆ Total_Bending_Energy

double Membrane::Total_Bending_Energy =0.0
protected

◆ Total_Bond_Energy

double Membrane::Total_Bond_Energy =0.0
protected

◆ Total_Kinetic_Energy

double Membrane::Total_Kinetic_Energy
protected

◆ Total_Potential_Energy

double Membrane::Total_Potential_Energy =0.0
protected

◆ Triangle_list

vector<vector<int> > Membrane::Triangle_list

◆ Triangle_pair_angle_stat

string Membrane::Triangle_pair_angle_stat

◆ Triangle_pair_angles_in_radians

vector<double> Membrane::Triangle_pair_angles_in_radians

◆ Triangle_pair_list

vector<vector<int> > Membrane::Triangle_pair_list

◆ Triangle_Pair_Nodes

vector<vector<int> > Membrane::Triangle_Pair_Nodes

◆ Triangle_pair_Nominal_angle_in_degrees

double Membrane::Triangle_pair_Nominal_angle_in_degrees =-1

◆ ulm_avg

vector<vector<double> > Membrane::ulm_avg

◆ ulm_Mesh

vector<vector<double> > Membrane::ulm_Mesh

◆ ulm_std

vector<vector<double> > Membrane::ulm_std

◆ ulm_temp_for_analysis

vector<vector<double> > Membrane::ulm_temp_for_analysis

◆ UlmOfRandomModes

double Membrane::UlmOfRandomModes

◆ update_radius_stat

bool Membrane::update_radius_stat =false
protected

◆ values

vector<string> Membrane::values

◆ volume

double Membrane::volume
protected

Store the volume of the membrane.

◆ WantGeometricProps

bool Membrane::WantGeometricProps =false
protected

write geometrical properties if it is true.

◆ X_in

double Membrane::X_in =0
protected

◆ X_scale

double Membrane::X_scale =0
protected

◆ Y_in

double Membrane::Y_in =0
protected

◆ Y_scale

double Membrane::Y_scale =0
protected

◆ Z_in

double Membrane::Z_in =0
protected

◆ Z_scale

double Membrane::Z_scale =0
protected

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