#include <mesh_node.h>
Public Member Functions | |
mesh_node () | |
~mesh_node () | |
void | move (int direction, scalar dx) |
void | set_pos (scalar x, scalar y, scalar z) |
void | print () |
void | set_linear () |
bool | am_I_linear () |
Data Fields | |
vector3 | pos |
vector3 | vel |
scalar | phi |
int | num_element_contributors |
vector3 ** | force_contributions |
int | index |
vector3 | pos_0 |
scalar | rho |
scalar | stokes_radius |
scalar | stokes_drag |
bool | linear |
Structure for a mesh_node: the points FEM meshes are built from.
mesh_node::mesh_node | ( | ) |
mesh_node::~mesh_node | ( | ) |
bool mesh_node::am_I_linear | ( | ) |
void mesh_node::move | ( | int | direction, |
scalar | dx | ||
) |
Referenced by Blob::build_linear_node_elasticity_matrix().
void mesh_node::print | ( | ) |
Referenced by tetra_element_linear::print().
void mesh_node::set_linear | ( | ) |
Referenced by Blob::load_topology().
vector3** mesh_node::force_contributions |
An array of pointers to contributions to the total force on this node. There should be one contribution from each element this node is a part of (so the length will be num_element_contributors).
Referenced by Blob::aggregate_forces_and_solve(), Blob::calculate_node_element_connectivity(), mesh_node(), and ~mesh_node().
int mesh_node::index |
Required for some general matrix constructions in which we need to know this node's 'index' in the node vector
Referenced by tetra_element_linear::add_K_alpha(), Blob::aggregate_forces_and_solve(), Blob::build_linear_node_elasticity_matrix(), Blob::build_linear_node_mass_matrix(), Blob::build_linear_node_viscosity_matrix(), Blob::build_mass_matrix(), Face::build_opposite_node(), Blob::calculate_node_element_connectivity(), VdW_solver::consider_interaction(), rod::Rod_blob_interface::do_connection_timestep(), MatrixFixedSparsityPattern::init(), ConjugateGradientSolver::init(), MassLumpedSolver::init(), SparseSubstitutionSolver::init(), NoMassCGSolver::init(), PreComp_solver::init(), Blob::init(), Blob::linearise_force(), Blob::load_nodes(), mesh_node(), rod::Rod_blob_interface::Rod_blob_interface(), Blob::solve_poisson(), and ~mesh_node().
bool mesh_node::linear |
Stores whether or not this node is linear (as the order is surface - interior, not linear - secondary)
Referenced by am_I_linear(), mesh_node(), set_linear(), and ~mesh_node().
int mesh_node::num_element_contributors |
Referenced by Blob::aggregate_forces_and_solve(), mesh_node(), and ~mesh_node().
scalar mesh_node::phi |
Electrostatic potential at this node
Referenced by Face::average_phi(), tetra_element_linear::calculate_electrostatic_forces(), tetra_element_linear::get_grad_phi_at_stu(), mesh_node(), Blob::pre_print(), Blob::read_nodes_from_file(), Blob::solve_poisson(), Blob::write_nodes_to_file(), and ~mesh_node().
vector3 mesh_node::pos |
Position of node
Referenced by Blob::apply_ctforces(), Face::barycentric_calc_point(), Face::barycentric_calc_point_f2(), BEM_Poisson_Boltzmann::build_BEM_matrices(), Blob::build_linear_node_rp_diffusion_matrix(), Face::build_opposite_node(), Face::calc_area_normal_centroid(), Blob::calc_centroid(), tetra_element_linear::calc_centroid(), SecondOrderFunctions::calc_jacobian_column_coefficients(), tetra_element_linear::calculate_jacobian(), Face::checkTetraIntersection(), Face::checkTetraIntersectionAndGetVolume(), Blob::compress_blob(), PreComp_solver::compute_bead_positions(), ffea_test::connection_energy_3(), ffea_test::connection_test(), Blob::copy_node_positions(), Blob::create_viewer_node_file(), Blob::euler_integrate(), Face::get_area(), rod::Rod_blob_interface::get_attachment_node(), rod::Rod_blob_interface::get_attachment_node_pos(), Face::get_centroid(), Blob::get_centroid(), Blob::get_CoM(), rod::Rod_blob_interface::get_element_id(), rod::get_jacobian(), Blob::get_min_max(), Blob::get_node(), rod::Rod_blob_interface::get_node_energy(), Face::getTetraIntersectionVolume(), Face::getTetraIntersectionVolumeAndArea(), Face::getTetraIntersectionVolumeTotalGradientAndShapeFunctions(), ffea_test::identify_face(), PreComp_solver::init(), ffea_test::jacobian_rotate(), Face::length_of_longest_edge(), tetra_element_linear::length_of_longest_edge(), tetra_element_linear::linearise_element(), Blob::load_nodes(), Blob::make_measurements(), mesh_node(), move(), Blob::move(), Blob::position(), Blob::pre_print(), print(), Blob::print_node_positions(), Face::print_nodes(), Blob::read_nodes_from_file(), Blob::rotate(), rod::rotate_tet(), rod::Rod_blob_interface::set_edge_vecs(), Blob::set_node_positions(), set_pos(), Blob::set_pos_0(), rod::Rod_blob_interface::set_tet(), Blob::translate_linear(), Face::vec3Vec3SubsToArr3Mod(), tetra_element_linear::volume_coord_to_xyz(), Blob::write_nodes_to_file(), and ~mesh_node().
vector3 mesh_node::pos_0 |
Equilibrium position of nodes (for RMSD calculations)
Referenced by Face::build_opposite_node(), rod::Rod_blob_interface::get_attachment_node_pos(), Blob::get_node_0(), Blob::make_measurements(), mesh_node(), Blob::set_pos_0(), and ~mesh_node().
scalar mesh_node::rho |
Charge density on this node
Referenced by tetra_element_linear::calculate_electrostatic_forces(), and Blob::init().
scalar mesh_node::stokes_drag |
The drag due to stokes on this node, not including velocity
Referenced by Blob::aggregate_forces_and_solve(), Blob::build_linear_node_rp_diffusion_matrix(), Blob::build_linear_node_viscosity_matrix(), Blob::init(), mesh_node(), and ~mesh_node().
scalar mesh_node::stokes_radius |
Stokes radius of this node
Referenced by Blob::build_linear_node_rp_diffusion_matrix(), Blob::init(), Blob::load_stokes_params(), mesh_node(), and ~mesh_node().
vector3 mesh_node::vel |
Velocity of node
Referenced by Blob::aggregate_forces_and_solve(), Blob::enforce_box_boundaries(), Blob::euler_integrate(), tetra_element_linear::get_element_velocity_vector(), Blob::load_nodes(), Blob::make_measurements(), mesh_node(), Blob::pre_print(), print(), Blob::read_nodes_from_file(), Blob::velocity_all(), Blob::write_nodes_to_file(), and ~mesh_node().