Parallel Finite Element - General geometry Ewald-like Method
Part of Continuum-particle Simulation Suite under MICCOM
copss_point_particle_system.h
Go to the documentation of this file.
1 // Copyright (C) 2015-2016 Xujun Zhao, Jiyuan Li, Xikai Jiang
2 
3 // This code is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 
8 
9 // This code is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
13 
14 
15 // You should have received a copy of the GNU General Public
16 // License along with this code; if not, write to the Free Software
17 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 #pragma once
19 
20 #include "../copss.h"
21 #include "../polymer_chain.h"
22 
23 using std::cout;
24 using std::endl;
25 using std::string;
26 
27 namespace libMesh{
28 
30 {
31 public:
32 
34 
36 
37  // integrator
38  void run(EquationSystems& equation_systems) override;
39 
40 protected:
41  std::string point_particle_model;
42  // ===========for beads and polymer chains
43  unsigned int Nb; // total # of beads
44  unsigned int Ns; // total # of springs per Chain
45  unsigned int nBonds; // total # of springs/bonds
46  // ===========for polymer chains
47  unsigned int nChains; // total # of chains
48  Real bk; // Kuhn length (um)
49  Real Nks; // # of Kuhn length per Chain
50  Real Ss2; // (um^2)
51  Real q0; //maximum spring length (um)
52  Real chain_length; // contour length of the spring (um)
53  Real Dc; // Diffusivity of the chain (um^2/s)
54 
55  // extra parameters for dynamic process
58 
59  // override read_particle_parameters() function in Copss class
60  void read_particle_info () override;
61 
62  // read ggem and ibm info
63  void read_ggem_info () override;
64 
65  // create objects, polymer chains
66  void create_object() override;
67 
68  // create object mesh
69  void create_object_mesh() override;
70 
71  // attach object mesh to system
72  void attach_object_mesh(PMLinearImplicitSystem& system) override;
73 
74  // set parameters for equations systems
75  void set_parameters(EquationSystems& equation_systems) override;
76 
77  // update object due to PBC after check_wall()
78  void update_object();
79 
80  // write object to output file
81  void write_object(unsigned int step_id) override;
82 
83 
84 
85 private:
86 
87  PolymerChain* polymer_chain;
88  //std::unique_ptr<PolymerChain> polymer_chain;
89 
90  //std::unique_ptr<PointMesh<3> > point_mesh;
91 
92 
93 
94 };
95 
96 
97 }
void attach_object_mesh(PMLinearImplicitSystem &system) override
Definition: copss_point_particle_system.C:175
Definition: copss_init.h:32
Real Dc
Definition: copss_point_particle_system.h:53
Real Ss2
Definition: copss_point_particle_system.h:50
CopssPointParticleSystem(CopssInit &init)
Definition: copss_point_particle_system.C:10
unsigned int nBonds
Definition: copss_point_particle_system.h:45
unsigned int Ns
Definition: copss_point_particle_system.h:44
Definition: brownian_system.h:58
unsigned int nChains
Definition: copss_point_particle_system.h:47
void create_object_mesh() override
Definition: copss_point_particle_system.C:150
Definition: copss.h:80
Real chain_length
Definition: copss_point_particle_system.h:52
unsigned int Nb
Definition: copss_point_particle_system.h:43
bool chain_broken
Definition: copss_point_particle_system.h:57
Definition: copss_point_particle_system.h:29
Real Nks
Definition: copss_point_particle_system.h:49
Definition: polymer_chain.h:47
void read_particle_info() override
Definition: copss_point_particle_system.C:50
~CopssPointParticleSystem()
Definition: copss_point_particle_system.C:16
std::string point_particle_model
Definition: copss_point_particle_system.h:41
Definition: pm_linear_implicit_system.h:52
Real q0
Definition: copss_point_particle_system.h:51
void write_object(unsigned int step_id) override
Definition: copss_point_particle_system.C:230
void set_parameters(EquationSystems &equation_systems) override
Definition: copss_point_particle_system.C:183
void read_ggem_info() override
Definition: copss_point_particle_system.C:40
void run(EquationSystems &equation_systems) override
Definition: copss_point_particle_system.C:247
Real max_spring_len
Definition: copss_point_particle_system.h:56
void create_object() override
Definition: copss_point_particle_system.C:75
Real bk
Definition: copss_point_particle_system.h:48
void update_object()
Definition: copss_point_particle_system.C:217