Parallel Finite Element - General geometry Ewald-like Method
Part of Continuum-particle Simulation Suite under MICCOM
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
libMesh::Copss Class Referenceabstract

#include <copss.h>

Inheritance diagram for libMesh::Copss:
Inheritance graph
[legend]
Collaboration diagram for libMesh::Copss:
Collaboration graph
[legend]

Public Member Functions

 Copss (CopssInit &init)
 
 ~Copss ()
 
int check_libmesh ()
 
void start_time (struct tm *timeinfo)
 
void end_time (struct tm *timeinfo)
 
EquationSystems init_system (std::string input_file)
 
void read_input ()
 
virtual void create_object_mesh ()=0
 
EquationSystems create_equation_systems ()
 
virtual void run (EquationSystems &equation_systems)=0
 
void destroy ()
 

Public Attributes

Parallel::Communicator * comm_in
 
std::string error_msg
 
std::string output_msg
 
GetPot input_file
 
std::string control_fileName
 
std::string test_name
 
bool print_info
 
const Real kB = 1.380662E-17
 
const Real PI = libMesh::pi
 
Real T
 
Real kBT
 
Real viscosity
 
Real Rb
 
Real drag_c
 
Real Db
 
std::string particle_type
 
Real tc
 
Real uc
 
Real fc
 
Real muc
 
unsigned int dim
 
std::string wall_type
 
std::vector< Real > wall_params
 
std::vector< bool > periodicity
 
std::vector< bool > inlet
 
std::vector< Real > inlet_pressure
 
std::vector< bool > shear
 
std::vector< Real > shear_rate
 
std::vector< unsigned int > shear_direction
 
bool generate_mesh
 
std::string domain_mesh_file
 
std::vector< unsigned int > n_mesh
 
std::vector< Fix * > fixes
 
FixFactoryfix_factory
 
unsigned int numForceTypes
 
std::vector< std::string > forceTypes
 
std::vector< Fix::type_forceforces
 
Real alpha
 
int max_linear_iterations
 
Real linear_solver_rtol
 
Real linear_solver_atol
 
bool user_defined_pc
 
bool schur_user_ksp
 
Real schur_user_ksp_rtol
 
Real schur_user_ksp_atol
 
std::string schur_pc_type
 
std::string stokes_solver_type
 
StokesSolverType solver_type
 
unsigned int max_n_cheb
 
Real tol_cheb
 
Real eig_factor
 
Real tol_eigen
 
bool compute_eigen
 
bool read_eigen
 
bool with_hi
 
bool with_brownian
 
std::size_t random_seed
 
bool adaptive_dt
 
std::vector< Real > max_dr_coeff
 
Real max_dr
 
bool restart
 
std::size_t restart_step
 
unsigned int nstep
 
unsigned int n_relax_step
 
bool debug_info
 
unsigned int write_interval
 
std::vector< std::string > output_file
 
SerialMesh * mesh
 
PointMesh< 3 > * point_mesh
 
Real min_mesh_size
 
Real max_mesh_size
 
Real search_radius_p
 
Real search_radius_e
 
PMPeriodicBoundarypm_periodic_boundary
 
unsigned int u_var
 
unsigned int v_var
 
unsigned int w_var
 
unsigned int p_var
 
bool reinit_stokes
 
unsigned int NP
 
unsigned int n_vec
 
Real hminf
 
Real hmaxf
 
Real hmin
 
Real hmax
 
bool cheb_converge = false
 
unsigned int n_chebyshev_failure = 0
 
Real eig_min = 0
 
Real eig_max = 0
 
const std::string out_system_filename = "output_pm_system.e"
 
UniquePtr< NumericVector< Real > > v0_ptr
 
ExodusII_IO * exodus_ptr
 
Vec U0
 
Vec R0
 
Vec R_mid
 
Vec RIN
 
Vec ROUT
 
Vec dw
 
Vec dw_mid
 
PetscViewer viewer
 
Mat M
 
PetscRandom rand_ctx
 
PetscScalar coef = 0.0
 
BrownianSystembrownian_sys
 
std::vector< Point > center0
 
unsigned int istart
 
unsigned int o_step
 
Real real_time
 
bool update_neighbor_list_everyStep
 
unsigned int neighbor_list_update_interval = 0
 
unsigned int timestep_duration
 
bool neighbor_list_update_flag
 
std::vector< Real > vel0
 
std::vector< Real > vel1
 

Protected Member Functions

void read_system_info ()
 
void read_physical_info ()
 
virtual void read_particle_info ()=0
 
void read_domain_info ()
 
void read_force_info ()
 
virtual void read_ggem_info ()=0
 
void read_stokes_solver_info ()
 
void read_chebyshev_info ()
 
void read_run_info ()
 
void read_restart_time ()
 
void read_restart_eigenvalue ()
 
void create_domain_mesh ()
 
void create_periodic_boundary ()
 
virtual void create_object ()=0
 
virtual void attach_object_mesh (PMLinearImplicitSystem &system)=0
 
void attach_period_boundary (PMLinearImplicitSystem &system)
 
virtual void set_parameters (EquationSystems &equation_systems)=0
 
void attach_fixes (PMLinearImplicitSystem &system)
 
void solve_undisturbed_system (EquationSystems &equation_systems)
 
void create_brownian_system (EquationSystems &equation_systems)
 
void fixman_integrate (EquationSystems &equation_systems, unsigned int &i)
 
void langevin_integrate (EquationSystems &equation_systems, unsigned int &i)
 
virtual void update_object ()
 
virtual void write_object (unsigned int step_id)=0
 

Protected Attributes

const int o_precision = 6
 

Constructor & Destructor Documentation

libMesh::Copss::Copss ( CopssInit init)

class constructor

Here is the call graph for this function:

libMesh::Copss::~Copss ( )

class destructor

Member Function Documentation

void libMesh::Copss::attach_fixes ( PMLinearImplicitSystem system)
protected

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void libMesh::Copss::attach_object_mesh ( PMLinearImplicitSystem system)
protectedpure virtual

Steps for create_equation_systems

Implemented in libMesh::CopssPointParticleSystem, and libMesh::CopssRigidParticleSystem.

Here is the caller graph for this function:

void libMesh::Copss::attach_period_boundary ( PMLinearImplicitSystem system)
protected

Here is the call graph for this function:

Here is the caller graph for this function:

int libMesh::Copss::check_libmesh ( )

Check libmesh support

PETSC or laspack SLEPC AMR at least 2D

Here is the caller graph for this function:

void libMesh::Copss::create_brownian_system ( EquationSystems &  equation_systems)
protected

Create vectors and Shell Mat for use Create brownian system

Here is the call graph for this function:

Here is the caller graph for this function:

void libMesh::Copss::create_domain_mesh ( )
protected

Steps for create_object_mesh()

Here is the call graph for this function:

Here is the caller graph for this function:

EquationSystems libMesh::Copss::create_equation_systems ( )

Create equation_system object step 1: initialize equation_systems using mesh; add a PMLinearImplicitSystem, system, to equation_systems; add variables step 3: attach_object_mesh() step 4: attach_period_boundary() step 5: initialize equation systems and preconditioning matrix step 5: set_parameters() for equation_systems step 6: Initialize the force field

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void libMesh::Copss::create_object ( )
protectedpure virtual
virtual void libMesh::Copss::create_object_mesh ( )
pure virtual

Create object_mesh this object_mesh can be point_mesh or particle_mesh step 1: create_domain_mesh() step 2: create_periodid_boundary() step 3: create_object() step 4: create object_mesh by combining domain mesh, object and periodic boundary

Implemented in libMesh::CopssPointParticleSystem, and libMesh::CopssRigidParticleSystem.

Here is the caller graph for this function:

void libMesh::Copss::create_periodic_boundary ( )
protected

Here is the caller graph for this function:

void libMesh::Copss::destroy ( )

destroy PETSC objects

Here is the caller graph for this function:

void libMesh::Copss::end_time ( struct tm *  timeinfo)

Print out end time

Here is the caller graph for this function:

void libMesh::Copss::fixman_integrate ( EquationSystems &  equation_systems,
unsigned int &  i 
)
protected

Integrate particle motions using Fixman's midpoint scheme

Here is the call graph for this function:

Here is the caller graph for this function:

EquationSystems libMesh::Copss::init_system ( std::string  input_file)

Build and initialized an Equation system step 1: read_input() step 2: create_object_mesh() step 3: create_equation_systems()

Here is the call graph for this function:

Here is the caller graph for this function:

void libMesh::Copss::langevin_integrate ( EquationSystems &  equation_systems,
unsigned int &  i 
)
protected

Integrate particle motions using overdamped Langevin(Brownian dynamics) scheme

Here is the call graph for this function:

Here is the caller graph for this function:

void libMesh::Copss::read_chebyshev_info ( )
protected

Here is the call graph for this function:

Here is the caller graph for this function:

void libMesh::Copss::read_domain_info ( )
protected

Here is the call graph for this function:

Here is the caller graph for this function:

void libMesh::Copss::read_force_info ( )
protected

Here is the caller graph for this function:

virtual void libMesh::Copss::read_ggem_info ( )
protectedpure virtual

Implemented in libMesh::CopssPointParticleSystem, and libMesh::CopssRigidParticleSystem.

Here is the caller graph for this function:

void libMesh::Copss::read_input ( )

Read input and create necessary objects step 1: read_system_info() step 2: read_physical_info() step 3: read_particle_info() step 4: read_domain_info() step 5: read_force_info() step 6: read_ggem_info() step 7: read_stokes_solver_info() step 8: read_chebyshev_info() step 9: read_run_info()

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void libMesh::Copss::read_particle_info ( )
protectedpure virtual

Implemented in libMesh::CopssPointParticleSystem, and libMesh::CopssRigidParticleSystem.

Here is the caller graph for this function:

void libMesh::Copss::read_physical_info ( )
protected

Here is the caller graph for this function:

void libMesh::Copss::read_restart_eigenvalue ( )
protected

Here is the caller graph for this function:

void libMesh::Copss::read_restart_time ( )
protected

Here is the caller graph for this function:

void libMesh::Copss::read_run_info ( )
protected

Here is the call graph for this function:

Here is the caller graph for this function:

void libMesh::Copss::read_stokes_solver_info ( )
protected

Here is the caller graph for this function:

void libMesh::Copss::read_system_info ( )
protected

Steps for read_input()

Here is the caller graph for this function:

virtual void libMesh::Copss::run ( EquationSystems &  equation_systems)
pure virtual
virtual void libMesh::Copss::set_parameters ( EquationSystems &  equation_systems)
protectedpure virtual

Implemented in libMesh::CopssPointParticleSystem, and libMesh::CopssRigidParticleSystem.

Here is the caller graph for this function:

void libMesh::Copss::solve_undisturbed_system ( EquationSystems &  equation_systems)
protected

Steps for integrate()

Compute undisturbed velocity field without particles. NOTE: We MUST re-init particle-mesh before solving Stokes

Here is the call graph for this function:

Here is the caller graph for this function:

void libMesh::Copss::start_time ( struct tm *  timeinfo)

Print out start time

Here is the caller graph for this function:

virtual void libMesh::Copss::update_object ( )
inlineprotectedvirtual

Reimplemented in libMesh::CopssPointParticleSystem, and libMesh::CopssRigidParticleSystem.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void libMesh::Copss::write_object ( unsigned int  step_id)
protectedpure virtual

Implemented in libMesh::CopssPointParticleSystem, and libMesh::CopssRigidParticleSystem.

Here is the caller graph for this function:

Member Data Documentation

bool libMesh::Copss::adaptive_dt
Real libMesh::Copss::alpha
BrownianSystem* libMesh::Copss::brownian_sys
std::vector<Point> libMesh::Copss::center0
bool libMesh::Copss::cheb_converge = false
PetscScalar libMesh::Copss::coef = 0.0
Parallel::Communicator* libMesh::Copss::comm_in
bool libMesh::Copss::compute_eigen
std::string libMesh::Copss::control_fileName
Real libMesh::Copss::Db
bool libMesh::Copss::debug_info
unsigned int libMesh::Copss::dim
std::string libMesh::Copss::domain_mesh_file
Real libMesh::Copss::drag_c
Vec libMesh::Copss::dw
Vec libMesh::Copss::dw_mid
Real libMesh::Copss::eig_factor
Real libMesh::Copss::eig_max = 0
Real libMesh::Copss::eig_min = 0
std::string libMesh::Copss::error_msg
ExodusII_IO* libMesh::Copss::exodus_ptr
Real libMesh::Copss::fc
FixFactory* libMesh::Copss::fix_factory
std::vector<Fix*> libMesh::Copss::fixes
std::vector<Fix::type_force> libMesh::Copss::forces
std::vector<std::string> libMesh::Copss::forceTypes
bool libMesh::Copss::generate_mesh
Real libMesh::Copss::hmax
Real libMesh::Copss::hmaxf
Real libMesh::Copss::hmin
Real libMesh::Copss::hminf
std::vector<bool> libMesh::Copss::inlet
std::vector<Real> libMesh::Copss::inlet_pressure
GetPot libMesh::Copss::input_file
unsigned int libMesh::Copss::istart
const Real libMesh::Copss::kB = 1.380662E-17
Real libMesh::Copss::kBT
Real libMesh::Copss::linear_solver_atol
Real libMesh::Copss::linear_solver_rtol
Mat libMesh::Copss::M
Real libMesh::Copss::max_dr
std::vector<Real> libMesh::Copss::max_dr_coeff
int libMesh::Copss::max_linear_iterations
Real libMesh::Copss::max_mesh_size
unsigned int libMesh::Copss::max_n_cheb
SerialMesh* libMesh::Copss::mesh
Real libMesh::Copss::min_mesh_size
Real libMesh::Copss::muc
unsigned int libMesh::Copss::n_chebyshev_failure = 0
std::vector<unsigned int> libMesh::Copss::n_mesh
unsigned int libMesh::Copss::n_relax_step
unsigned int libMesh::Copss::n_vec
bool libMesh::Copss::neighbor_list_update_flag
unsigned int libMesh::Copss::neighbor_list_update_interval = 0
unsigned int libMesh::Copss::NP
unsigned int libMesh::Copss::nstep
unsigned int libMesh::Copss::numForceTypes
const int libMesh::Copss::o_precision = 6
protected
unsigned int libMesh::Copss::o_step
const std::string libMesh::Copss::out_system_filename = "output_pm_system.e"
std::vector<std::string> libMesh::Copss::output_file
std::string libMesh::Copss::output_msg
unsigned int libMesh::Copss::p_var
std::string libMesh::Copss::particle_type
std::vector<bool> libMesh::Copss::periodicity
const Real libMesh::Copss::PI = libMesh::pi
PMPeriodicBoundary* libMesh::Copss::pm_periodic_boundary
PointMesh<3>* libMesh::Copss::point_mesh
bool libMesh::Copss::print_info
Vec libMesh::Copss::R0
Vec libMesh::Copss::R_mid
PetscRandom libMesh::Copss::rand_ctx
std::size_t libMesh::Copss::random_seed
Real libMesh::Copss::Rb
bool libMesh::Copss::read_eigen
Real libMesh::Copss::real_time
bool libMesh::Copss::reinit_stokes
bool libMesh::Copss::restart
std::size_t libMesh::Copss::restart_step
Vec libMesh::Copss::RIN
Vec libMesh::Copss::ROUT
std::string libMesh::Copss::schur_pc_type
bool libMesh::Copss::schur_user_ksp
Real libMesh::Copss::schur_user_ksp_atol
Real libMesh::Copss::schur_user_ksp_rtol
Real libMesh::Copss::search_radius_e
Real libMesh::Copss::search_radius_p
std::vector<bool> libMesh::Copss::shear
std::vector<unsigned int> libMesh::Copss::shear_direction
std::vector<Real> libMesh::Copss::shear_rate
StokesSolverType libMesh::Copss::solver_type
std::string libMesh::Copss::stokes_solver_type
Real libMesh::Copss::T
Real libMesh::Copss::tc
std::string libMesh::Copss::test_name
unsigned int libMesh::Copss::timestep_duration
Real libMesh::Copss::tol_cheb
Real libMesh::Copss::tol_eigen
Vec libMesh::Copss::U0
unsigned int libMesh::Copss::u_var
Real libMesh::Copss::uc
bool libMesh::Copss::update_neighbor_list_everyStep
bool libMesh::Copss::user_defined_pc
UniquePtr<NumericVector<Real> > libMesh::Copss::v0_ptr
unsigned int libMesh::Copss::v_var
std::vector<Real> libMesh::Copss::vel0
std::vector<Real> libMesh::Copss::vel1
PetscViewer libMesh::Copss::viewer
Real libMesh::Copss::viscosity
unsigned int libMesh::Copss::w_var
std::vector<Real> libMesh::Copss::wall_params
std::string libMesh::Copss::wall_type
bool libMesh::Copss::with_brownian
bool libMesh::Copss::with_hi
unsigned int libMesh::Copss::write_interval

The documentation for this class was generated from the following files: