Parallel Finite Element - General geometry Ewald-like Method
Part of Continuum-particle Simulation Suite under MICCOM
|
#include <pm_system_stokes.h>
Public Types | |
typedef PMSystemStokes | sys_type |
Public Types inherited from libMesh::PMLinearImplicitSystem | |
typedef PMLinearImplicitSystem | sys_type |
Public Member Functions | |
PMSystemStokes (EquationSystems &es, const std::string &name, const unsigned int number) | |
virtual | ~PMSystemStokes () |
sys_type & | system () |
void | reinit_hi_system (bool &neighbor_list_update_flag) |
void | reinit_fd_system (bool &neighbor_list_update_flag) |
void | clear () |
void | assemble_matrix (const std::string &system_name, const std::string &option) |
void | assemble_rhs (const std::string &system_name, const std::string &option) |
void | solve (const std::string &option, const bool &re_init) |
void | add_local_solution () |
void | test_l2_norm (bool &neighbor_list_update_flag) |
void | write_equation_systems (const std::size_t time_step, const std::string &output_filename, const std::string &output_format) |
StokesSolver & | stokes_solver () |
void | compute_point_velocity (const std::string &option, std::vector< Real > &pv) |
std::vector< Real > | compute_unperturbed_point_velocity () |
std::vector< Real > | point_velocity (const std::vector< Real > &vel_beads, const std::size_t i) const |
std::vector< Real > | local_velocity_fluid (const Point &p, const std::string &force_type) const |
std::vector< Real > | local_velocity_fluid (const Elem *elem, const Point &p, const std::string &force_type) const |
Point | local_velocity_bead (const std::size_t &bead_id, const std::string &force_type) const |
Point | global_self_exclusion (const std::size_t p_id) const |
void | test_velocity_profile (bool &neighbor_list_update_flag) |
void | write_fluid_velocity_data (const std::string &filename) |
Public Member Functions inherited from libMesh::PMLinearImplicitSystem | |
PMLinearImplicitSystem (EquationSystems &es, const std::string &name, const unsigned int number) | |
virtual | ~PMLinearImplicitSystem () |
sys_type & | system () |
void | attach_point_mesh (PointMesh< 3 > *pm) |
PointMesh< 3 > * | point_mesh () |
PointMesh< 3 > * | point_mesh () const |
void | attach_particle_mesh (ParticleMesh< 3 > *pm) |
ParticleMesh< 3 > * | particle_mesh () |
ParticleMesh< 3 > * | particle_mesh () const |
void | attach_fixes (std::vector< Fix * > fixes) |
std::vector< Fix * > | fixes () |
std::vector< Fix * > | fixes () const |
void | write_out_single_particle (const Point &coords, const std::vector< Real > &vel, const int i_step, const Real time) const |
void | write_out_point_coordinate (Vec *ROUT, const std::size_t istep, const Real &time, const std::string &f_name, const std::string &openmode) const |
void | write_point_csv (const std::string &filename, const std::vector< Real > &pv, const bool write_velocity) const |
PetscErrorCode | write_point_csv (const std::string &filename, Vec *petsc_vector, const bool write_velocity) const |
Additional Inherited Members | |
Protected Attributes inherited from libMesh::PMLinearImplicitSystem | |
PointMesh< 3 > * | _point_mesh |
ParticleMesh< 3 > * | _particle_mesh |
std::vector< Fix * > | _fixes |
The type of system.
libMesh::PMSystemStokes::PMSystemStokes | ( | EquationSystems & | es, |
const std::string & | name, | ||
const unsigned int | number | ||
) |
Constructor.
|
virtual |
Destructor.
|
virtual |
Implements libMesh::PMLinearImplicitSystem.
|
virtual |
Assemble the system matrix. option == "undisturbed" : undisturbed velocity field (without particles) option == "disturbed" : disturbed velocity field (with particles)
Implements libMesh::PMLinearImplicitSystem.
|
virtual |
Assemble the system rhs.
Implements libMesh::PMLinearImplicitSystem.
|
virtual |
Clear all the data structures associated with the system.
Implements libMesh::PMLinearImplicitSystem.
void libMesh::PMSystemStokes::compute_point_velocity | ( | const std::string & | option, |
std::vector< Real > & | pv | ||
) |
Compute the purturbed velocity vector of moving points according to physical fields. which is a dim*N vector NOTE that the "self-term" should be excluded, which is done in GGEMSystem. See ref. [1] Y Zhang, J J de Pablo, and M D Graham, J Chem Phys (2012) 014901. [2] P Pranay, S G Anekal, J P Hernandez-Ortiz, Phys Fluids (2010)
option = "disturbed" or "undistrubed" pv = particle_velocity
std::vector< Real > libMesh::PMSystemStokes::compute_unperturbed_point_velocity | ( | ) |
Compute the unperturbed velocity vector at the location of particles
Point libMesh::PMSystemStokes::global_self_exclusion | ( | const std::size_t | p_id | ) | const |
Point libMesh::PMSystemStokes::local_velocity_bead | ( | const std::size_t & | bead_id, |
const std::string & | force_type | ||
) | const |
Local velocity of a bead in an unbounded space, which is computed from Green's function. force_type: "regularized" or "smooth"
std::vector< Number > libMesh::PMSystemStokes::local_velocity_fluid | ( | const Point & | p, |
const std::string & | force_type | ||
) | const |
Local velocity of a fluid point in an unbounded space, which is computed from Green's function force_type: "regularized" or "smooth"
std::vector< Number > libMesh::PMSystemStokes::local_velocity_fluid | ( | const Elem * | elem, |
const Point & | p, | ||
const std::string & | force_type | ||
) | const |
Local velocity of a fluid point in an unbounded space, which is computed from Green's function force_type: "regularized" or "smooth"
std::vector< Real > libMesh::PMSystemStokes::point_velocity | ( | const std::vector< Real > & | vel_beads, |
const std::size_t | i | ||
) | const |
void libMesh::PMSystemStokes::reinit_fd_system | ( | bool & | neighbor_list_update_flag | ) |
void libMesh::PMSystemStokes::reinit_hi_system | ( | bool & | neighbor_list_update_flag | ) |
|
virtual |
Solve the system.
Implements libMesh::PMLinearImplicitSystem.
|
inline |
|
inline |
|
virtual |
Implements libMesh::PMLinearImplicitSystem.
void libMesh::PMSystemStokes::test_velocity_profile | ( | bool & | neighbor_list_update_flag | ) |
|
virtual |
Implements libMesh::PMLinearImplicitSystem.
void libMesh::PMSystemStokes::write_fluid_velocity_data | ( | const std::string & | filename | ) |