![]() |
The Virtual Cell Model
1.0
|
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... | |
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.
Contact: a.farnudi@gmail.com
|
inline |
|
inline |
| void Membrane::add_ulm_mode_real | ( | int | Ell, |
| int | M, | ||
| double | uLM, | ||
| double | radius | ||
| ) |
| void Membrane::analysis_init | ( | std::string | Mesh_path | ) |
| void Membrane::assign_parameters | ( | void | ) |
|
protected |
|
protected |
| void Membrane::Bond_triangle_neighbour_list_constructor | ( | ) |
Construct a vector that lists the triangle neighbours of each node pair.
| double Membrane::calc_assoc_legendre | ( | int | ell, |
| int | m, | ||
| double | x | ||
| ) |
| std::complex<double> Membrane::calc_complex_ylm_surface_integral | ( | int | ell, |
| int | m, | ||
| double | radius | ||
| ) |
| 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
| double Membrane::calc_real_ylmthetaphi | ( | int | l, |
| int | m, | ||
| double | theta, | ||
| double | phi | ||
| ) |
| 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.
| double Membrane::calc_vectorlist_vectorlist_surface_integral | ( | vector< double > | vectorlist1, |
| vector< double > | vectorlist2 | ||
| ) |
| std::complex<double> Membrane::calc_vectorlist_vectorlist_surface_integral | ( | vector< std::complex< double > > | vectorlist1, |
| vector< double > | vectorlist2 | ||
| ) |
| std::complex<double> Membrane::calc_vectorlist_vectorlist_surface_integral | ( | vector< std::complex< double > > | vectorlist1, |
| vector< std::complex< double > > | vectorlist2 | ||
| ) |
| void Membrane::calculate_2D_amplitudes_Alexandra | ( | int | q_max | ) |
| void Membrane::calculate_2D_amplitudes_Alexandra_projection | ( | int | q_max, |
| int | numpoints | ||
| ) |
| double Membrane::calculate_bending_energy | ( | void | ) |
Returns the total bending energy of the membrane (indepentant of OpenMM calculations)
| void Membrane::calculate_contourRadius | ( | void | ) |
| void Membrane::calculate_contourSegmentLength | ( | void | ) |
| void Membrane::calculate_deltaphi | ( | void | ) |
| void Membrane::calculate_deltaphi_Alexandra | ( | void | ) |
| void Membrane::calculate_dOmega | ( | void | ) |
| void Membrane::calculate_freqs | ( | ArgStruct_Analysis | args | ) |
| void Membrane::calculate_freqs_projection | ( | ArgStruct_Analysis | args | ) |
| void Membrane::calculate_modeAmplitudes2D | ( | void | ) |
| void Membrane::calculate_real_ulm | ( | ArgStruct_Analysis | args | ) |
| void Membrane::calculate_real_ulm | ( | ArgStruct_Analysis | args, |
| char | Requiv, | ||
| bool | clear | ||
| ) |
| void Membrane::calculate_surface_area_with_voronoi | ( | void | ) |
Calculate the volume of a closed membrane by summing triangular pyramids.
| void Membrane::calculate_ulm | ( | ArgStruct_Analysis | args | ) |
| void Membrane::calculate_ulm_radiustest | ( | int | ell_max, |
| int | analysis_averaging_option | ||
| ) |
| void Membrane::calculate_ulm_radiustest_real | ( | int | ell_max, |
| int | analysis_averaging_option | ||
| ) |
| void Membrane::calculate_ulm_sub_particles | ( | int | ell_max, |
| int | analysis_averaging_option | ||
| ) |
| void Membrane::calculate_volume_and_surface_area | ( | void | ) |
Calculate the volume of a closed membrane by summing triangular pyramids.
| void Membrane::calculateH_2D_amplitudes | ( | int | q_max | ) |
| void Membrane::calculateH_2D_amplitudes_projection | ( | int | q_max, |
| int | numpoints | ||
| ) |
|
protected |
| 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 | ||
| ) |
| double Membrane::calculating_the_bend_energy_2 | ( | int | uncommon1, |
| int | common2, | ||
| int | common3, | ||
| int | uncommon4, | ||
| MyAtomInfo | atoms[], | ||
| int | number_of_privious_mem_nodes | ||
| ) |
| double Membrane::calculating_the_bond_energy | ( | int | index, |
| bool | initial_or_final, | ||
| MyAtomInfo | atoms[], | ||
| int | number_of_privious_mem_nodes | ||
| ) |
| double Membrane::calculating_the_bond_energy_check | ( | int | p1, |
| int | p2, | ||
| MyAtomInfo | atoms[] | ||
| ) |
| double Membrane::calculating_the_bond_length_check | ( | int | p1, |
| int | p2, | ||
| MyAtomInfo | atoms[] | ||
| ) |
| void Membrane::check | ( | void | ) |
| void Membrane::check_before_update | ( | int | triangle_A, |
| int | triangle_B, | ||
| int | new_neighbour_dihedrals[4][6], | ||
| int & | pyramid_counter, | ||
| bool & | accept | ||
| ) |
| bool Membrane::check_Pyramid | ( | vector< int > | A_neighbors, |
| vector< int > | B_neighbors | ||
| ) |
| bool Membrane::check_Pyramid_2 | ( | int | initial_pair, |
| vector< int > | A_neighbours_dihedral_index, | ||
| vector< int > | B_neighbours_dihedral_index | ||
| ) |
| void Membrane::check_radius_update_values | ( | void | ) |
| void Membrane::check_the_flip | ( | MyOpenMMData * | omm, |
| Bonds * | bonds, | ||
| Dihedrals * | dihedrals | ||
| ) |
| void Membrane::consistancy_check | ( | void | ) |
| void Membrane::convert_spherical_positions_to_cartisian | ( | ) |
|
protected |
| void Membrane::Elastic_Force_Calculator | ( | double | theta_0 | ) |
| void Membrane::export_for_resume | ( | int | MD_step | ) |
| void Membrane::export_for_resume | ( | int | MD_step, |
| MyAtomInfo | atoms[], | ||
| int | atom_count | ||
| ) |
| void Membrane::Export_Mechanical_Energy | ( | string | filename, |
| int | frame | ||
| ) |
|
protected |
| void Membrane::find_the_new_neighbour | ( | int | neighbour_id[6], |
| int | previous_dihedral_index, | ||
| int | initial_pair, | ||
| bool | A_or_B | ||
| ) |
| void Membrane::generate_ulm_mode | ( | int | ell, |
| int | m, | ||
| double | ulm, | ||
| double | radius | ||
| ) |
| void Membrane::generate_ulm_mode_real | ( | int | Ell, |
| int | M, | ||
| double | uLM, | ||
| double | radius | ||
| ) |
|
inline |
|
inline |
Return the average distance of the nodes as calculated from the mesh.
|
inline |
Return the new node radius 'begin update time' in Ps.
|
inline |
Return input spring model, used to setup the openmm system for the bonds.
|
inline |
Return bending stiffness coefficient.
| void Membrane::get_bond_length_distribution | ( | void | ) |
|
inline |
Return damp coefficient.
|
inline |
Return the node IDs of the dihedral angles.
|
inline |
Return the new node radius 'end update time' in Ps.
|
inline |
Return the Lenard Jones 12 6 sigma, used to setup the openmm system for the LJ interaction.
|
inline |
Return external force model.
|
inline |
Return the geometrical properties write status.
|
inline |
| void Membrane::get_ground_state_from_frame | ( | ArgStruct_Analysis | args | ) |
| void Membrane::get_ground_state_from_mesh | ( | ArgStruct_Analysis | args | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
return the label(pdb) used to write to the trajectory files.
|
inline |
|
inline |
|
inline |
|
inline |
Returns the node radius update value (set value in the configuration file).
|
inline |
Return the node mass.
At the current stage of this code all membrane nodes have the same mass.
|
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.
|
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.
|
inline |
Return the distance between node pair index.
This list is initiated at the begining of the simulation.
|
inline |
Returns the x (0), y (1), and z (2) coordinate of the node index (number).
|
inline |
|
inline |
Returns the x (0), y (1), and z (2) velocities of the node index (number).
|
inline |
return the voronoi area associated with each node.
|
inline |
Return the number of bonds between membrane nodes.
|
inline |
public access to total number of membrane nodes.
|
inline |
Returns the calculated number of triangles in the imported mesh file.
|
inline |
Return the spontaneous bending angle between triangle pairs in radians.
Returns the calculated number of triangles in the imported mesh file.
| vector<double> Membrane::get_real_ylm_vectorlist_for_mesh | ( | int | ell, |
| int | m | ||
| ) |
| void Membrane::get_ring | ( | ArgStruct_Analysis | args | ) |
| void Membrane::get_ring_from_projection | ( | ArgStruct_Analysis | args, |
| int | numpoints | ||
| ) |
|
inline |
Return the Lenard Jones 12 6 sigma, used to setup the openmm system for the LJ interaction.
|
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.
|
inline |
Return the spontaneous bending angle between triangle pairs in radians.
|
inline |
Return input spring model, used to setup the openmm system for the bonds.
|
inline |
Return spring stiffness coefficient.
|
inline |
Returns the last saved surface area.
|
inline |
Return the sum of the voronoi area of each node.
|
inline |
Return the node ID of the dihedral angles member.
|
inline |
Return the node IDs of the dihedral angles.
| vector<double> Membrane::get_ulmYlm_vectorlist_for_mesh | ( | ) |
| vector<double> Membrane::get_ulmYlm_vectorlist_for_mesh | ( | char | Requiv | ) |
|
inline |
Returns whether the Membrane is setup for radius change (true) or not (false).
|
inline |
Returns the last saved volume.
|
inline |
Calculate the voronoi area of each node and return a list that indicated the voronoi area of each node.
| vector<std::complex<double> > Membrane::get_ylm_vectorlist_for_mesh | ( | int | ell, |
| int | m, | ||
| bool | complex_conjugate | ||
| ) |
| void Membrane::harmonic_potential_calculator | ( | void | ) |
| void Membrane::import | ( | std::string | import_file_name | ) |
| void Membrane::import_config | ( | vector< string > | configlines | ) |
| void Membrane::import_pdb_frames | ( | ArgStruct_Analysis | args, |
| int | file_index | ||
| ) |
| void Membrane::initialise | ( | std::string | Mesh_file_name | ) |
| void Membrane::load_pdb_frame | ( | int | frame, |
| ArgStruct_Analysis | args | ||
| ) |
| void Membrane::Mechanical_Energy_calculator | ( | ) |
| 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 | ||
| ) |
| void Membrane::myWritePDBFrame | ( | int | frameNum, |
| std::string | traj_name | ||
| ) |
|
protected |
| 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'.
|
protected |
| void Membrane::ranfomundulationgenerator | ( | void | ) |
|
protected |
|
protected |
|
inline |
| void Membrane::rotate_coordinates | ( | double | theta, |
| double | phi | ||
| ) |
| void Membrane::rotate_particle_to_axes | ( | ArgStruct_Analysis | args | ) |
| void Membrane::set_bending_nominal_angle | ( | void | ) |
| void Membrane::set_bond_nominal_length | ( | void | ) |
|
inline |
| void Membrane::set_dihedral_atoms | ( | void | ) |
|
inline |
Set FENE calculated parameters.
|
inline |
|
inline |
|
inline |
|
inline |
Assigns the label(pdb) used to write to the trajectory files.
| void Membrane::set_node_radius | ( | void | ) |
| void Membrane::set_state | ( | MyAtomInfo | all_atoms[], |
| int | atom_count | ||
| ) |
Set the current state (OpenMM) of the class.
|
inline |
This function shifts the whole membrane.
|
inline |
| void Membrane::Triangle_Pair_and_Node_Bonds_Identifier | ( | ) |
|
protected |
|
protected |
|
inline |
|
inline |
|
inline |
| void Membrane::Update_Membrane | ( | int | initial_pair, |
| int | triangle_A, | ||
| int | triangle_B, | ||
| int | new_neighbour_dihedrals[4][6], | ||
| int & | bond_index | ||
| ) |
| 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 | ||
| ) |
| void Membrane::update_spherical_positions | ( | ) |
| void Membrane::updatepos | ( | double | ) |
| void Membrane::write_geometrics | ( | ) |
| void Membrane::write_pov_traj | ( | std::string | traj_name, |
| std::string | label, | ||
| int | currentstep | ||
| ) |
| void Membrane::write_ulm | ( | ArgStruct_Analysis | args, |
| int | file_index | ||
| ) |
| void Membrane::write_un_uq | ( | ArgStruct_Analysis | args, |
| int | file_index | ||
| ) |
| void Membrane::write_un_uq_projection | ( | ArgStruct_Analysis | args, |
| int | file_index | ||
| ) |
| void Membrane::write_uq_SH | ( | ArgStruct_Analysis | args, |
| int | file_index | ||
| ) |
| void Membrane::WriteMemPDBFrame | ( | ArgStruct_Analysis | args, |
| vector< int > | chainlist | ||
| ) |
| bool Membrane::AddRandomModes = false |
| vector<vector<double> > Membrane::aq_alexandra |
| vector<vector<double> > Membrane::aq_alexandra_proj |
| vector<vector<double> > Membrane::Aq_H |
| vector<vector<double> > Membrane::Aq_H_proj |
| double Membrane::Average_node_pair_length |
|
protected |
| double Membrane::Bending_coefficient =0. |
| int Membrane::bending_model =0 |
| vector<int> Membrane::Bond_triangle_neighbour_indices |
| vector<vector<double> > Membrane::bq_alexandra |
| vector<vector<double> > Membrane::bq_alexandra_proj |
| vector<vector<double> > Membrane::Bq_H |
| vector<vector<double> > Membrane::Bq_H_proj |
| vector<int> Membrane::chainlist |
| bool Membrane::check_monte_carlo =0 |
|
protected |
|
protected |
| vector<double> Membrane::contourradii |
| double Membrane::contourRadius |
| vector<double> Membrane::contourSegmentLength |
| double Membrane::Damping_coefficient =0.0 |
| vector<double> Membrane::deltaphi |
|
protected |
| int Membrane::EllMaxOfRandomModes |
|
protected |
|
protected |
| int Membrane::ext_force_model =0 |
|
protected |
|
protected |
|
protected |
|
protected |
| std::string Membrane::file_time |
| vector<double> Membrane::GompperBondPotentialLminLc1Lc0Lmax |
|
protected |
Store the mem index the instance of the class has in the vector of Membranes in the main programme.
| bool Membrane::initial_random_rotation_coordinates = false |
| vector<string> Membrane::insertOrder |
| double Membrane::kx =10 |
| double Membrane::ky =10 |
| double Membrane::kz =10 |
|
protected |
Store the label(pdb) used to write to the trajectory file.
| double Membrane::Max_node_pair_length |
|
protected |
| string Membrane::mesh_format |
| double Membrane::Min_node_pair_length |
|
protected |
|
protected |
| vector<vector<int> > Membrane::Node_Bond_list |
| vector<double> Membrane::Node_Bond_Nominal_Length_in_Nm |
| string Membrane::Node_Bond_Nominal_Length_stat |
| double Membrane::Node_Bond_user_defined_Nominal_Length_in_Nm |
| vector<double> Membrane::node_dOmega |
| vector<vector<double> > Membrane::Node_Force |
|
protected |
| 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.
| 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
| vector<vector<double> > Membrane::Node_Position |
|
protected |
|
protected |
| vector<vector<double> > Membrane::Node_Velocity |
| vector<double> Membrane::node_voronoi_area |
| vector<vector<double> > Membrane::node_voronoi_normal_vec |
|
protected |
|
protected |
Number of nodes in the membrane.
|
protected |
|
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)
| int Membrane::NumberOfRandomModes |
| std::string Membrane::output_file_neme |
|
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.
| std::map<string, vector<string> > Membrane::Params |
| vector<vector<vector<double> > > Membrane::pdb_frames |
| vector<double> Membrane::pdb_frames_time |
|
protected |
| double Membrane::rescale_factor =1 |
|
protected |
| vector<int> Membrane::ringNodeList |
| vector<double> Membrane::Shift_position_xyzVector |
| vector<double> Membrane::Shift_velocities_xyzVector |
|
protected |
| vector<vector<double> > Membrane::spherical_positions |
| double Membrane::SpontaneousTriangleBendingInDegrees =0. |
| double Membrane::Spring_coefficient =0. |
| int Membrane::spring_model =0 |
|
protected |
Store the surface area of the membrane.
| double Membrane::surface_area_voronoi =0 |
|
protected |
|
protected |
|
protected |
|
protected |
| vector<vector<int> > Membrane::Triangle_list |
| string Membrane::Triangle_pair_angle_stat |
| vector<double> Membrane::Triangle_pair_angles_in_radians |
| vector<vector<int> > Membrane::Triangle_pair_list |
| vector<vector<int> > Membrane::Triangle_Pair_Nodes |
| double Membrane::Triangle_pair_Nominal_angle_in_degrees =-1 |
| vector<vector<double> > Membrane::ulm_avg |
| vector<vector<double> > Membrane::ulm_Mesh |
| vector<vector<double> > Membrane::ulm_std |
| vector<vector<double> > Membrane::ulm_temp_for_analysis |
| double Membrane::UlmOfRandomModes |
|
protected |
| vector<string> Membrane::values |
|
protected |
Store the volume of the membrane.
|
protected |
write geometrical properties if it is true.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |