28 #include "libmesh/libmesh_common.h" 29 #include "libmesh/reference_counted_object.h" 30 #include "libmesh/parallel_object.h" 31 #include "libmesh/point.h" 32 #include "libmesh/id_types.h" 33 #include "libmesh/mesh.h" 34 #include "libmesh/serial_mesh.h" 67 const int& particle_type,
73 const Point& sedimentation_body_force_density,
74 const Parallel::Communicator &comm_in);
88 std::vector<int> &
counter() {
return _counter; };
95 dof_id_type
id()
const {
return _particle_id; };
109 const Real&
charge()
const {
return _charge; }
137 const std::string&
mesh_type()
const {
return _mesh_type; };
146 { _neighbor_list = nei_list; };
154 {
return _neighbor_list; };
160 { _mesh_spring_network = msn; }
172 const std::string& smesh)
const;
181 void read_mesh(
const std::string& filename,
214 void update_mesh(
const std::vector<Point>& nodal_pos,
215 const std::vector<Point>& nodal_vel);
222 void update_mesh(
const std::vector<Point>& nodal_pos);
253 const Point&
mesh_point(
const std::size_t i)
const;
391 const Point& pt0)
const;
417 _node_velocity = node_velocity;
434 void get_node_force(std::vector<Point>& node_force)
const {node_force = _node_force;};
461 dof_id_type _particle_id;
467 std::size_t _num_mesh_node;
470 std::size_t _num_mesh_elem;
473 std::vector<Real> _mesh_size;
479 std::size_t _mesh_dim;
482 std::vector<int> _counter;
498 std::vector<std::pair<std::size_t,Real> > _neighbor_list;
504 std::string _mesh_type;
523 std::string _particle_shape;
540 Point _sedimentation_force;
543 Point _body_sedimentation_force_density;
546 Point _surface_sedimentation_force_density;
549 std::vector<Point> _node_force;
552 std::vector<Point> _node_velocity;
555 Point _centroid_velocity;
558 Point _centroid_force;
const bool & if_on_the_periodic_boundary() const
Definition: rigid_particle.h:281
void set_node_velocity(std::vector< Point > &node_velocity)
Definition: rigid_particle.h:416
Point elem_surface_normal(const Elem &s_elem, const Point &pt0) const
Definition: rigid_particle.C:812
void add_node_force(std::vector< Point > &node_force)
add force to surface nodes
Definition: rigid_particle.C:995
RigidParticle(const dof_id_type &particle_id, const int &particle_type, const Point &pt, const Point &mag, const Point &rot, const Real &charge, const Real &epsilon_in, const Point &sedimentation_body_force_density, const Parallel::Communicator &comm_in)
Definition: rigid_particle.C:48
const Real & get_area() const
Definition: rigid_particle.h:360
std::vector< Point > compute_surface_normal()
Definition: rigid_particle.C:868
const Point & centroid_velocity()
get centroid velocity
Definition: rigid_particle.h:446
const std::string & mesh_type() const
Definition: rigid_particle.h:137
void attach_mesh_spring_network(MeshSpringNetwork *msn)
Definition: rigid_particle.h:159
void read_mesh_sphere(const std::string &filename)
Definition: rigid_particle.C:166
void translate_mesh(const Point &translationDist)
Definition: rigid_particle.C:309
const Point & get_centroid0()
Definition: rigid_particle.h:370
std::vector< Real > mesh_size() const
Definition: rigid_particle.C:365
Definition: rigid_particle.h:49
const Real & get_area0() const
Definition: rigid_particle.h:355
void compute_area()
Definition: rigid_particle.C:718
void get_node_force(std::vector< Point > &node_force) const
get force on surface nodes
Definition: rigid_particle.h:434
void read_mesh(const std::string &filename, const std::string &mesh_type)
Definition: rigid_particle.C:139
Definition: brownian_system.h:58
void read_mesh_cylinder(const std::string &filename)
Definition: rigid_particle.C:198
void extract_surface_mesh(const std::string &vmesh, const std::string &smesh) const
Definition: rigid_particle.C:100
Definition: mesh_spring_network.h:55
const Real & charge() const
Definition: rigid_particle.h:109
void compute_centroid_force()
compute body force
Definition: rigid_particle.C:1018
Definition: rigid_particle.h:46
const Point & get_centroid()
Definition: rigid_particle.h:375
Definition: rigid_particle.h:60
SerialMesh & mesh()
Definition: rigid_particle.C:357
const std::string & get_particle_shape()
Definition: rigid_particle.h:380
void zero_node_force()
force on surface nodes
Definition: rigid_particle.C:981
void compute_volume()
Definition: rigid_particle.C:656
const Point & centroid_force()
Definition: rigid_particle.h:456
void build_nodal_sedimentation_force()
Definition: rigid_particle.C:528
const Real & get_volume0() const
Definition: rigid_particle.h:346
void set_neighbor_list(const std::vector< std::pair< std::size_t, Real > > &nei_list)
Definition: rigid_particle.h:145
bool on_the_periodic_boundary()
Definition: rigid_particle.C:401
const Point & get_center0() const
Definition: rigid_particle.h:365
Real radius() const
Definition: rigid_particle.h:103
const Point & mesh_point(const std::size_t i) const
Definition: rigid_particle.C:372
Definition: rigid_particle.h:47
Definition: rigid_particle.h:48
void init()
Definition: rigid_particle.C:82
void compute_centroid()
Definition: rigid_particle.C:768
std::size_t num_mesh_elem() const
Definition: rigid_particle.C:394
ParticleShape
Definition: rigid_particle.h:45
void extract_nodes(std::vector< Point > &node_xyz)
Definition: rigid_particle.C:333
MeshSpringNetwork * mesh_spring_network() const
Definition: rigid_particle.h:163
std::vector< std::pair< std::size_t, Real > > neighbor_list() const
Definition: rigid_particle.h:153
void update_mesh(const std::vector< Point > &nodal_pos, const std::vector< Point > &nodal_vel)
Definition: rigid_particle.C:241
dof_id_type id() const
Definition: rigid_particle.h:95
void compute_centroid_velocity()
compute body velocity each node of this rigid particle does not have member velocity so we can only c...
Definition: rigid_particle.C:1009
const Real & epsilon_in() const
Definition: rigid_particle.h:115
const Real & get_volume() const
Definition: rigid_particle.h:351
std::vector< int > & counter()
Definition: rigid_particle.h:88
int processor_id() const
Definition: rigid_particle.h:125
void volume_conservation()
Definition: rigid_particle.C:933
void set_processor_id(const int pid)
Definition: rigid_particle.h:131
void restore_periodic_mesh()
Definition: rigid_particle.C:495
std::size_t num_mesh_nodes() const
Definition: rigid_particle.C:386
const Real node_center_dist(const std::size_t i) const
Definition: rigid_particle.C:378
void write_mesh(const std::string &filename)
Definition: rigid_particle.C:228
Definition: rigid_particle.h:50
void rebuild_periodic_mesh()
Definition: rigid_particle.C:457
~RigidParticle()
Definition: rigid_particle.C:75
void print_info() const
Definition: rigid_particle.C:1026