#include <particle_mesh.h>
|
| PointMesh (libMesh::ParticleMesh< KDDim > &particle_mesh, const Real &search_radius_p, const Real &search_radius_e) |
|
| PointMesh (MeshBase &mesh, std::vector< PolymerChain > &polymer_chains, const Real &search_radius_p, const Real &search_radius_e) |
|
| PointMesh (MeshBase &mesh, PolymerChain &polymer_chain, const Real &search_radius_p, const Real &search_radius_e) |
|
| ~PointMesh () |
|
std::vector< PointParticle * > | particles () const |
|
PolymerChain * | polymer_chain () const |
|
std::size_t | num_particles () const |
|
std::size_t | num_chains () const |
|
std::size_t | num_bonds () const |
|
bool | is_sorted () const |
|
const std::map< const std::size_t, std::vector< std::size_t > > & | elem_neighbor_list () const |
|
const std::vector< std::size_t > | elem_neighbor_list (const Elem *elem) |
|
const std::vector< std::size_t > | local_elem_neighbor_list (const Elem *elem) |
|
virtual void | clear_kd_tree () |
|
virtual void | build_particle_neighbor_list (const Point &query_pt, const bool is_sorted, std::vector< std::pair< std::size_t, Real > > &IndicesDists) |
|
virtual void | build_particle_neighbor_list () |
|
virtual void | build_particle_neighbor_list_naively () |
|
virtual void | reinit_neighbor_vector () |
|
virtual void | build_elem_neighbor_list (const Elem *elem, const bool is_sorted, std::vector< std::size_t > &n_list) |
|
virtual void | build_elem_neighbor_list () |
|
void | reinit (const bool &with_hi, bool &neighbor_list_update_flag) |
|
void | update_particle_mesh (ParticleMesh< KDDim > *particle_mesh) const |
|
void | print_point_info () const |
|
void | print_elem_neighbor_list (std::ostream &out=libMesh::out) const |
|
void | set_search_radius (const Real rp, const Real re) |
|
Real | search_radius (const std::string &p_e) const |
|
void | add_periodic_boundary (PMPeriodicBoundary &_periodic_bdry) |
|
PMPeriodicBoundary * | pm_periodic_boundary () |
|
void | set_bead_velocity (const std::vector< Real > &vel) |
|
const Real & | maximum_bead_velocity () const |
|
const Real & | minimum_bead_velocity () const |
|
const void | write_initial_surface_node_pos () const |
|
template<unsigned int KDDim>
template<unsigned int KDDim>
template<unsigned int KDDim>
template<unsigned int KDDim>
template<unsigned int KDDim>
Add periodic boundary condition
template<unsigned int KDDim>
void libMesh::PointMesh< KDDim >::build_elem_neighbor_list |
( |
const Elem * |
elem, |
|
|
const bool |
is_sorted, |
|
|
std::vector< std::size_t > & |
n_list |
|
) |
| |
|
virtual |
Build the neighbor list of partilces for a given elem Output the n_list, which gives the particle ids around elem's centroid within search_radius_e.
Note we don't need the distance between particles and elem centroid here, because this list is only used to evaluate element-wise load vector due to the neighboring particles.
template<unsigned int KDDim>
FIXME: Should we build this locally and globally(by allgather)???
Build the particle neighbor list for each element within the search radius this will generate the _elem_neighbor_list and _elem_neighbor_list_vector NOTE this takes advantage of KD Tree
template<unsigned int KDDim>
void libMesh::PointMesh< KDDim >::build_particle_neighbor_list |
( |
const Point & |
query_pt, |
|
|
const bool |
is_sorted, |
|
|
std::vector< std::pair< std::size_t, Real > > & |
IndicesDists |
|
) |
| |
|
virtual |
Build the neighbor list of a particle within the search_radius_p using KD-tree. This includes the query particle itself, if the query_pt is also in the particle list. For example, the coords of the query_pt is the same as that of a particle in the list.
IndicesDists output pair<particle_id, distance> Note we need the particle distance to compute their interaction forces.
template<unsigned int KDDim>
Build the particle-particle neighbor list for all the particles with the search_radius_p using KD tree(logN complexity).
This directly call the function above! In fact, the particle neighbor list has been built in "reinit()", so this is NOT USED!
template<unsigned int KDDim>
template<unsigned int KDDim>
Clear the KD-Tree if need Note, different from the construct_kd_tree, this is a public function.
template<unsigned int KDDim>
Build & initialize the KD tree through nanoFlann, if needed.
template<unsigned int KDDim>
const std::map<const std::size_t, std::vector<std::size_t> >& libMesh::PointMesh< KDDim >::elem_neighbor_list |
( |
| ) |
const |
|
inline |
Return the information of element neighbor list around the search radius _search_radius_e Mapping between elem id and element neighbor list of particles
template<unsigned int KDDim>
const std::vector<std::size_t> libMesh::PointMesh< KDDim >::elem_neighbor_list |
( |
const Elem * |
elem | ) |
|
|
inline |
Return the particle neighbor list around a given element around the search radius _search_radius_e
template<unsigned int KDDim>
Check if the neighbor list is constructed sortedly
template<unsigned int KDDim>
const std::vector<std::size_t> libMesh::PointMesh< KDDim >::local_elem_neighbor_list |
( |
const Elem * |
elem | ) |
|
|
inline |
Return the particle neighbor list around a given LOCAL element around the search radius _search_radius_e
template<unsigned int KDDim>
Set rigid particle velocity vel.size() = nui Calculate maximum point particle (or rigid particle surface nodes) velocity
template<unsigned int KDDim>
Calculate minimum point particle (or rigid particle surface nodes) velocity
template<unsigned int KDDim>
Return the total number of bonds
template<unsigned int KDDim>
template<unsigned int KDDim>
Return the total number of particles
template<unsigned int KDDim>
Generate random point data within the bounding box and write the data to a local file "random_points_data.txt" Return the information of particles
template<unsigned int KDDim>
Retrun the pointer to the periodic boundary for use
template<unsigned int KDDim>
Return the information of polymer chain
template<unsigned int KDDim>
void libMesh::PointMesh< KDDim >::print_elem_neighbor_list |
( |
std::ostream & |
out = libMesh::out | ) |
const |
print out the element neighbor list information
template<unsigned int KDDim>
print out the particle information
template<unsigned int KDDim>
void libMesh::PointMesh< KDDim >::reinit |
( |
const bool & |
with_hi, |
|
|
bool & |
neighbor_list_update_flag |
|
) |
| |
template<unsigned int KDDim>
reinit neighbor distance for all particles
template<unsigned int KDDim>
template<unsigned int KDDim>
Set particle (bead or surface node) velocity vel.size() = nui
template<unsigned int KDDim>
Set the values of search radii
template<unsigned int KDDim>
template<unsigned int KDDim>
Write bead positions to csv file
The documentation for this class was generated from the following files: