Point-Particle Solver in a Cartesian box. More...
#include <CartPPSol.hpp>


Public Types | |
| using | PBTypeMap = std::unordered_map< std::string, std::vector< PBoundaryType > > |
Public Member Functions | |
| CartPPSol () | |
| Set the ptr_point_particlesol pointer to this class CartPPSol<N_dim, SpaceID> More... | |
| virtual | ~CartPPSol () |
| virtual void | SetMPI () |
| set MPI of ppsol More... | |
| virtual void | Prepare () |
| prepare of ppsol, such as building particle types, init of point-particle interaction More... | |
| virtual void | Init (const int &step, const Real &time) |
| Init of particle fields and related operations. More... | |
| virtual void | Solve (const int &step, const Real &time) |
| Core of PPsol. More... | |
| virtual void | Finish (const int &step, const Real &time) |
| some operations when ppsol is finished More... | |
| virtual void | WritePPFields (const int &step, const Real &time) |
| write point-particle field by hdf5 More... | |
| virtual void | WriteMidPPFields (const int &step, const Real &time) |
| write mid point-particle field by hdf5 More... | |
| virtual void | LoadPPFields (const int &step, const Real &time) |
| load point-particle field from onestep file More... | |
| virtual void | LoadMidPPFields (const int &step, const Real &time) |
| load point-particle field from mid file More... | |
| virtual std::string | GetSolverName () |
| Get the Solver Name object. More... | |
| virtual int | PPSolID () |
| void | CreateParticle () |
| Create Particle models from PartInfo.in. More... | |
| ParticleModel * | ParticleFactory (const int &modelid, const int &size0, const tml::tmlnode &cfgbasic, const tml::tmlnode &cfgextend, const Real &kvisc, const Real &fdensity) |
| Factory of particle models. More... | |
| void | CreatePRIBMIfNecessary () |
| create pr_ibm by particle type More... | |
| void | CalPRIBMForceIfNecessary (SmartPList< ParticleField< N_dim >> &pflist, Real dt0) |
| void | CombinePRIBMForce (SmartPList< ParticleField< N_dim >> &pflist, Real dt0) |
| void | CreateSmartPList (SmartPList< ParticleField< N_dim >> &pflist, const int size0) |
| Create a ParticleFieldlist by SmartPList. More... | |
| void | CreateSmartPListFromPartDataList (SmartPList< ParticleField< N_dim >> &pflist) |
| void | InitPartDataList () |
| init particle position More... | |
| void | ClearPartDataList () |
| void | FromRandom (SmartPList< ParticleField< N_dim >> &pflist) |
| generate positions from Random numbers More... | |
| void | InitOrientation (SmartPList< ParticleField< N_dim >> &pflist) |
| init particle orientation More... | |
| void | RandomOrientation (SmartPList< ParticleField< N_dim >> &pflist) |
| generate orientations from random numbers More... | |
| void | InitPModelData (SmartPList< ParticleField< N_dim >> &pflist) |
| initialize the pmodel_data array in each particlefield More... | |
| void | FromFile (SmartPList< ParticleField< N_dim >> &pflist) |
| generate position from File More... | |
| void | Interpolate (SmartPList< ParticleField< N_dim >> &pflist) |
| the fluid informatioins located at particles are interpolated from surrounding meshes More... | |
| void | InterpFluidVel (ParticleField< N_dim > &pfield) |
| interpolate fluid velocity of a particle More... | |
| void | InterpFluidVelGrad (ParticleField< N_dim > &pfield) |
| interpolate fluid velocity gradient of a particle More... | |
| void | InitVelAndAVel (SmartPList< ParticleField< N_dim >> &pflist) |
| Init of particle velocity and Angular Velocity. More... | |
| void | InitVelAndAVelWithLocalFlow (SmartPList< ParticleField< N_dim >> &pflist) |
| Init of particle velocity and Angular Velocity By local flows. More... | |
| void | InitVelAndAVelWithInputValues (SmartPList< ParticleField< N_dim >> &pflist) |
| void | InitOrientationWithInputValues (SmartPList< ParticleField< N_dim >> &pflist) |
| void | vSolve (SmartPList< ParticleField< N_dim >> &pflist) |
| sub solver in Solve() More... | |
| void | CalContactForce (SmartPList< ParticleField< N_dim >> &pflist, int jp) |
| void | UpdatePPCollisionCountIfNecessary (SmartPList< ParticleField< N_dim >> &pflist, int jp) |
| void | vSolveRK3 (SmartPList< ParticleField< N_dim >> &pflist) |
| sub solver in Solve() by RK3 More... | |
| ParticleData< N_dim > | dSolve (Real t, ParticleData< N_dim > dsol, ParticleField< N_dim > &pfield) |
| dSolve:increment of particle [will be abandoned in future] More... | |
| void | BoundaryOfPossiblePeriodic (ParticleField< N_dim > &p) |
| Particle Boundary. More... | |
| void | BoundaryOfPossibleSimpleWall (ParticleField< N_dim > &p) |
| void | BoundaryIfNecessary (ParticleField< N_dim > &p) |
| void | ParticleSendRecv (SmartPList< ParticleField< N_dim >> &pflist) |
| particle sendrecv process More... | |
| void | PrepareParticleSendRecv (SmartPList< ParticleField< N_dim >> &pflist) |
| void | VirtualParticleSendRecv (SmartPList< ParticleField< N_dim >> &pflist) |
| particle sendrecv process for virtual particles More... | |
| void | VirtualIBMParticleSendRecvBackward (SmartPList< ParticleField< N_dim >> &pflist) |
| the backward of the IBM particle sendrecv process for virtual particles, More... | |
| void | PrepareSendRecvForVirtualRegion (SmartPList< ParticleField< N_dim >> &pflist, Real fac) |
| Preparation of particle sendrecv for virtual particles. More... | |
| void | UpdateVirtualParticle (SmartPList< ParticleField< N_dim >> &pflist) |
| update virtual particle More... | |
| void | ScatterOutput (const int istep, const Real &time) |
| ouput scatter of particles rank-by-rank (excluding virtual particles) More... | |
| void | ScatterOutputVirtual (const int istep, const Real &time) |
| output scatter of particles in virtual region rank-by-rank (only for testing) More... | |
| void | ConfigPPDict () |
| Config PPDict. More... | |
| bool | IsInCurrentZone (const Real pos[]) |
| bool | IsInCurrentZone (const std::vector< Real > pos) |
| int | NextZoneIndex (const Real pos[]) |
| which next zone should particle locate at? More... | |
| int | NextZoneIndex (const std::vector< Real > pos) |
| which next zone should particle locate at? More... | |
| void | NextZoneIndexVirtualRegion (const Real pos[], std::vector< int > &index, const double r) |
| which next zone should virtual particle locate at? More... | |
| void | UpdateLocalSize () |
| update local size of current rank in ppsol More... | |
| void | UpdateTotalSizeForEachTypeParticle () |
| update total size for each type of particle More... | |
| void | UpdateLocalSizeFromPFieldList () |
| Update localsize of different kinds of particles from existing ParticleFieldList. More... | |
| bool | WhetherConsiderPPInteraction () |
| check whether consider particle-particle interaction More... | |
| bool | WhetherConsiderPFCouple () |
| check whether consider Particle To Fluid interaction More... | |
| void | Statistic (const int &istep, const Real &time) |
| statistc of particle fields More... | |
| void | InitStatLogFile () |
| init statistic log file More... | |
| Real | Distance (const ParticleField< N_dim > &pf_i, const ParticleField< N_dim > &pf_j) |
| Cal the distance between the particles. More... | |
| Real | Distance (Vecr< N_dim > &pos_i, Vecr< N_dim > &pos_j) |
Public Member Functions inherited from solver::ppsol::PPSolBase | |
| PPSolBase () | |
| virtual | ~PPSolBase () |
Public Member Functions inherited from solver::Solver | |
| Solver () | |
| virtual | ~Solver () |
| void | PrintAbstract () |
| void | Relase (const SolverNameList &flag) |
| void | ConfigGlobalDict (const std::string filename) |
| void | PrintConfigGlobalDict () |
| virtual std::string | GetMeshName () |
Public Member Functions inherited from solver::CartDataSpace< N_dim, 999 > | |
| CartDataSpace () | |
| ~CartDataSpace () | |
| void | ConfigDataSpaceDict () |
| config information of mpi from ControlDict.in More... | |
| void | CheckConfigDataSpaceDict () |
Static Public Attributes | |
| static dmdyn::ParticleModel * | ptr_part_temp = nullptr |
Static Public Attributes inherited from solver::CartDataSpace< N_dim, 999 > | |
| static std::vector< std::vector< Real > > | domain_size |
| static std::vector< std::vector< Real > > | gb_domain_size |
| static std::vector< int > | mesh_size |
| static std::vector< int > | gb_mesh_size |
| static std::vector< int > | start_index |
| static std::vector< std::vector< int > > | ghost_size |
| static std::vector< std::vector< int > > | stagger_flag |
| static const std::vector< int > | center_flag |
| static blockelm::CartMesh< N_dim > | gb_cartmesh |
| static blockelm::CartBlock< N_dim > | cartblock |
| static gsmpi::GSMPICart< N_dim > | mpicomm |
| static std::vector< ibm::IBMCart< N_dim > > | cartibm |
| static int | ibm_flag |
| static std::vector< blockelm::CartField< Real, N_dim > * > | tempfields |
| static tml::tmlnode | dataspacetml |
| struct { | |
| std::vector< Real > domain_size | |
| std::vector< int > mesh_size | |
| std::vector< int > ghost_size | |
| std::vector< int > stagger_flag | |
| } | dataspacedict |
Private Attributes | |
| const std::string | _name = "CartPPSol" |
Additional Inherited Members | |
Static Public Member Functions inherited from solver::Solver | |
| static const auto & | GlobalDict () |
| static const auto & | Dt () |
Static Public Member Functions inherited from solver::CartDataSpace< N_dim, 999 > | |
| static std::vector< int > | CalTotalShape (const std::vector< int > &flag) |
Protected Attributes inherited from solver::ppsol::PPSolBase | |
| int | id = 0 |
Static Protected Attributes inherited from solver::ppsol::PPSolBase | |
| static int | num_of_ppsol = 0 |
Static Protected Attributes inherited from solver::Solver | |
| static std::string | header = "PhyStar" |
| static std::string | version = "v0.0.1" |
| static int | count |
| static Solver * | ptr_fluidsol = nullptr |
| static Solver * | ptr_point_particlesol = nullptr |
| static Solver * | ptr_resolved_particlesol = nullptr |
| static Real | dt |
| static Real | kvisc |
| static Real | density |
| static tml::tmlnode | globaltml |
| struct { | |
| std::string casename | |
| Real time_start | |
| Real time_end | |
| Real time_ndump | |
| int ndim | |
| int step_start | |
| int nstep | |
| int step_end | |
| int step_ndump | |
| int step_nscreen | |
| int step_nstat | |
| int step_nrefresh | |
| int ppsol_flag | |
| int ppsol_same_dict | |
| unsigned int random_seed | |
| } | globaldict |
Point-Particle Solver in a Cartesian box.
| N_dim | dimension should be 2 or 3 |
| using solver::ppsol::CartPPSol< N_dim, SpaceID >::PBTypeMap = std::unordered_map<std::string, std::vector<PBoundaryType> > |
| solver::ppsol::CartPPSol< N_dim, SpaceID >::CartPPSol |
Set the ptr_point_particlesol pointer to this class CartPPSol<N_dim, SpaceID>
| N_dim |
|
virtual |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::BoundaryIfNecessary | ( | ParticleField< N_dim > & | p | ) |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::BoundaryOfPossiblePeriodic | ( | ParticleField< N_dim > & | p | ) |
Particle Boundary.
| p | particleField |
References quadpack::P, and dmdyn::ParticleField< N_dim >::pdata.
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::BoundaryOfPossibleSimpleWall | ( | ParticleField< N_dim > & | p | ) |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::CalContactForce | ( | SmartPList< ParticleField< N_dim >> & | pflist, |
| int | jp | ||
| ) |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::CalPRIBMForceIfNecessary | ( | SmartPList< ParticleField< N_dim >> & | pflist, |
| Real | dt0 | ||
| ) |
|
inline |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::CombinePRIBMForce | ( | SmartPList< ParticleField< N_dim >> & | pflist, |
| Real | dt0 | ||
| ) |
|
inline |
Config PPDict.
| filename |
References solver::database::controldict, solver::Solver::dt, solver::ppsol::PPSolBase::dtc, solver::ppsol::PPSolBase::dtp, solver::Solver::globaldict, solver::ppsol::PPSolBase::idprefix, fileio::intTostr(), solver::ppsol::PPSolBase::num_of_ppsol, solver::ppsol::CartPPSol< N_dim, SpaceID >::ppdict, solver::ppsol::CartPPSol< N_dim, SpaceID >::PPSolID(), solver::ppsol::PPSolBase::ppsoltml, dmdyn::strlist, solver::ppsol::vConfigContactComponent(), solver::ppsol::vConfigCoupleType(), dmdyn::vConfigPBoundaryType(), solver::ppsol::vConfigPDataFileType(), and solver::ppsol::vConfigTimeScheme().


| void solver::ppsol::CartPPSol< N_dim, SpaceID >::CreateParticle |
Create Particle models from PartInfo.in.
References quadpack::max().


| void solver::ppsol::CartPPSol< N_dim, SpaceID >::CreatePRIBMIfNecessary |
create pr_ibm by particle type
References ibm::DirectForce, and ibm::SmallRigidBody.
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::CreateSmartPList | ( | SmartPList< ParticleField< N_dim >> & | pflist, |
| const int | size0 | ||
| ) |
Create a ParticleFieldlist by SmartPList.
SmartPList is a dynamic array for massive particles, all kinds of particles are stored in a one-dimensional array
| pflist | particlefieldlist |
| size0 | size of particlefieldlist |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::CreateSmartPListFromPartDataList | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
| Real solver::ppsol::CartPPSol< N_dim, SpaceID >::Distance | ( | const ParticleField< N_dim > & | pf_i, |
| const ParticleField< N_dim > & | pf_j | ||
| ) |
Cal the distance between the particles.
References dmdyn::ParticleField< N_dim >::pdata.
| Real solver::ppsol::CartPPSol< N_dim, SpaceID >::Distance | ( | Vecr< N_dim > & | pos_i, |
| Vecr< N_dim > & | pos_j | ||
| ) |
| ParticleData< N_dim > solver::ppsol::CartPPSol< N_dim, SpaceID >::dSolve | ( | Real | t, |
| ParticleData< N_dim > | dsol, | ||
| ParticleField< N_dim > & | pfield | ||
| ) |
dSolve:increment of particle [will be abandoned in future]
| t | time |
| dsol | |
| pfield |
References dmdyn::ParticleField< N_dim >::pdata.
|
virtual |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::FromFile | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
generate position from File
the positions of particle can be easily designed from external tools, for example particles are arranged into some figures or characters.
| pflist |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::FromRandom | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
generate positions from Random numbers
| pflist | particlefieldlist |
|
inlinevirtual |
Get the Solver Name object.
Reimplemented from solver::Solver.
References solver::ppsol::CartPPSol< N_dim, SpaceID >::_name.
|
virtual |
Init of particle fields and related operations.
| step | current step of simulation |
| time | current time |
Implements solver::ppsol::PPSolBase.

| void solver::ppsol::CartPPSol< N_dim, SpaceID >::InitOrientation | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
init particle orientation
| pflist |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::InitOrientationWithInputValues | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::InitPartDataList |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::InitPModelData | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
initialize the pmodel_data array in each particlefield
| pflist |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::InitStatLogFile |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::InitVelAndAVel | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
Init of particle velocity and Angular Velocity.
| pflist |
References dmdyn::angular::MatFromIFToPF3DimByee().

| void solver::ppsol::CartPPSol< N_dim, SpaceID >::InitVelAndAVelWithInputValues | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::InitVelAndAVelWithLocalFlow | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
Init of particle velocity and Angular Velocity By local flows.
| pflist |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::InterpFluidVel | ( | ParticleField< N_dim > & | pfield | ) |
interpolate fluid velocity of a particle
| pfield | field of one particle |
References dmdyn::ParticleField< N_dim >::fdata, and dmdyn::ParticleField< N_dim >::pdata.
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::InterpFluidVelGrad | ( | ParticleField< N_dim > & | pfield | ) |
interpolate fluid velocity gradient of a particle
| pfield | field of one particle |
References dmdyn::ParticleField< N_dim >::fdata, and dmdyn::ParticleField< N_dim >::pdata.
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::Interpolate | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
the fluid informatioins located at particles are interpolated from surrounding meshes
| pflist |
|
inline |
References solver::ppsol::CartPPSol< N_dim, SpaceID >::zonelist.

|
inline |
References solver::ppsol::CartPPSol< N_dim, SpaceID >::IsInCurrentZone().

|
virtual |
load point-particle field from mid file
| step | |
| time |
References fileio::PointParticleCartRegularD< N_dim >::CloseFile(), fileio::PointParticleCartRegularD< N_dim >::OpenFile(), fileio::PointParticleCartRegularD< N_dim >::ReadPPField(), and fileio::PointParticleCartRegularD< N_dim >::SetFileAttr().

|
virtual |
load point-particle field from onestep file
| step | |
| time |
References fileio::PointParticleCartRegularD< N_dim >::CloseFile(), fileio::PointParticleCartRegularD< N_dim >::OpenFile(), fileio::PointParticleCartRegularD< N_dim >::ReadPPField(), and fileio::PointParticleCartRegularD< N_dim >::SetFileAttr().

|
inline |
which next zone should particle locate at?
| pos | particle positstion |
References solver::ppsol::CartPPSol< N_dim, SpaceID >::zonelist.

|
inline |
which next zone should particle locate at?
| pos | particle positstion |
References solver::ppsol::CartPPSol< N_dim, SpaceID >::NextZoneIndex().

|
inline |
which next zone should virtual particle locate at?
| pos | particle position | |
| [out] | index | index list of zonelist |
| r | width of virtual region |
References solver::ppsol::CartPPSol< N_dim, SpaceID >::mpicomm, and solver::ppsol::CartPPSol< N_dim, SpaceID >::zonelist.
| ParticleModel * solver::ppsol::CartPPSol< N_dim, SpaceID >::ParticleFactory | ( | const int & | modelid, |
| const int & | size0, | ||
| const tml::tmlnode & | cfgbasic, | ||
| const tml::tmlnode & | cfgextend, | ||
| const Real & | kvisc, | ||
| const Real & | fdensity | ||
| ) |
Factory of particle models.
| modelid | id of particle model |
| size0 | initial total size of one kind of particle |
| is | stringstream of input |
| kvisc | kinematic viscosity of fluid |
| fdensity | density of fluid |
References dmdyn::pptype::kEllipsoid, dmdyn::pptype::kEllipsoid_tracer, dmdyn::pptype::kIBEllipsoid, dmdyn::pptype::kIBEllipsoid_fixed, dmdyn::pptype::kIBEllipsoid_no_translation, dmdyn::pptype::kIBSphere, dmdyn::pptype::kIBSphere_no_rotation, dmdyn::pptype::kIBSphere_no_translation, dmdyn::pptype::kSphere, dmdyn::pptype::kSphere_empircal, dmdyn::pptype::kSphere_oseen, dmdyn::pptype::kSphere_tracer, dmdyn::pptype::kSpheroid_inertialess, and dmdyn::pptype::kSpheroid_inertialess_swimmer.
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::ParticleSendRecv | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
particle sendrecv process
communicate the particle data among neighbor processors
| pflist | particle field list |
particle sendrecv process. new version, wrote by qjr
| pflist | particle field list |
| N_dim |
| pflist | New version of communicate the particle data among neighbor processors. wrote by QJR |
| N_dim |
| pflist |
References dmdyn::SmartData< N_dim >::action, dmdyn::ParticleField< N_dim >::particle_typeid, dmdyn::ParticleField< N_dim >::pdata, dmdyn::ParticleField< N_dim >::Serialize(), dmdyn::ParticleField< N_dim >::SerializedLen(), dmdyn::SmartData< N_dim >::state, and dmdyn::ParticleField< N_dim >::Unserialize().

|
inlinevirtual |
|
virtual |
prepare of ppsol, such as building particle types, init of point-particle interaction
Reimplemented in solver::ppsol::CartSmartPPSol< N_dim >.
References solver::ppsol::AB2, solver::database::partinfo, and solver::ppsol::RK3.

| void solver::ppsol::CartPPSol< N_dim, SpaceID >::PrepareParticleSendRecv | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::PrepareSendRecvForVirtualRegion | ( | SmartPList< ParticleField< N_dim >> & | pflist, |
| Real | fac | ||
| ) |
Preparation of particle sendrecv for virtual particles.
| pflist | particle field list |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::RandomOrientation | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
generate orientations from random numbers
| pflist |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::ScatterOutput | ( | const int | istep, |
| const Real & | time | ||
| ) |
ouput scatter of particles rank-by-rank (excluding virtual particles)
| istep | |
| time |
References fileio::intTostr().


| void solver::ppsol::CartPPSol< N_dim, SpaceID >::ScatterOutputVirtual | ( | const int | istep, |
| const Real & | time | ||
| ) |
output scatter of particles in virtual region rank-by-rank (only for testing)
| istep | |
| time |
References fileio::intTostr().

|
virtual |
set MPI of ppsol
to init zonelist and build a topology relationship of nearby zones
References gsmpi::SendRecvModel< T >::buffer, gsmpi::SendRecvModel< T >::counts, gsmpi::SendRecvModel< T >::len, gsmpi::SendRecvModel< T >::PrintBuffer(), and gsmpi::SendRecvModel< T >::UpdateLen().


|
virtual |
Core of PPsol.
| step | |
| time |
Implements solver::ppsol::PPSolBase.
References solver::ppsol::AB2, and solver::ppsol::RK3.

| void solver::ppsol::CartPPSol< N_dim, SpaceID >::Statistic | ( | const int & | istep, |
| const Real & | time | ||
| ) |
statistc of particle fields
| istep | |
| time |
References gsmpi::root.

|
inline |
update local size of current rank in ppsol
to sum local size of all kinds of particle models
References solver::ppsol::CartPPSol< N_dim, SpaceID >::localsize, solver::ppsol::CartPPSol< N_dim, SpaceID >::ptr_particle, and solver::ppsol::CartPPSol< N_dim, SpaceID >::typenum.

|
inline |
Update localsize of different kinds of particles from existing ParticleFieldList.
the particleFieldlist should contain particle_typeid
References solver::ppsol::CartPPSol< N_dim, SpaceID >::partfieldlist, solver::ppsol::CartPPSol< N_dim, SpaceID >::ptr_particle, and solver::ppsol::CartPPSol< N_dim, SpaceID >::UpdateLocalSize().

| void solver::ppsol::CartPPSol< N_dim, SpaceID >::UpdatePPCollisionCountIfNecessary | ( | SmartPList< ParticleField< N_dim >> & | pflist, |
| int | jp | ||
| ) |
|
inline |
update total size for each type of particle
to sum local sizes of each type of particle in different CPU processes
References solver::ppsol::CartPPSol< N_dim, SpaceID >::mpicomm, solver::ppsol::CartPPSol< N_dim, SpaceID >::ptr_particle, and solver::ppsol::CartPPSol< N_dim, SpaceID >::typenum.
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::UpdateVirtualParticle | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
update virtual particle
Before running this subroutine, prepareSendRecvForVirtualRegion should be executed. this subroutine will use an existed info generated by prepareSendRecvForVirtualRegion
| pflist | particle field list |
| void solver::ppsol::CartPPSol< N_dim, SpaceID >::VirtualIBMParticleSendRecvBackward | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
the backward of the IBM particle sendrecv process for virtual particles,
| pflist | particle field list |
References dmdyn::AddVirtualListOnly, dmdyn::ReadOnly, and dmdyn::ParticleField< N_dim >::ShortUnserialize().

| void solver::ppsol::CartPPSol< N_dim, SpaceID >::VirtualParticleSendRecv | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
particle sendrecv process for virtual particles
| pflist | particle field list |
References dmdyn::AddVirtualListOnly, dmdyn::ReadOnly, and dmdyn::ParticleField< N_dim >::ShortUnserialize().

| void solver::ppsol::CartPPSol< N_dim, SpaceID >::vSolve | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
sub solver in Solve()
| pflist |
References dmdyn::ParticleField< N_dim >::contact_force, and dmdyn::angular::eeNormalized().

| void solver::ppsol::CartPPSol< N_dim, SpaceID >::vSolveRK3 | ( | SmartPList< ParticleField< N_dim >> & | pflist | ) |
sub solver in Solve() by RK3
| pflist |
References dmdyn::angular::eeNormalized(), and dmdyn::ParticleField< N_dim >::InitContactForce().

|
inline |
check whether consider Particle To Fluid interaction
References solver::ppsol::FourWay, solver::ppsol::CartPPSol< N_dim, SpaceID >::ppdict, and solver::ppsol::TwoWay.
|
inline |
check whether consider particle-particle interaction
References solver::ppsol::FourWay, solver::ppsol::CartPPSol< N_dim, SpaceID >::ppdict, and solver::ppsol::ThreeWay.

|
virtual |
write mid point-particle field by hdf5
| step | |
| time |
References fileio::PointParticleCartRegularD< N_dim >::AddPPField(), fileio::PointParticleCartRegularD< N_dim >::CloseFile(), fileio::PointParticleCartRegularD< N_dim >::CreateFile(), gsmpi::root, and fileio::PointParticleCartRegularD< N_dim >::SetFileAttr().


|
virtual |
write point-particle field by hdf5
| step | |
| time |
References fileio::PointParticleCartRegularD< N_dim >::AddPPField(), fileio::PointParticleCartRegularD< N_dim >::CloseFile(), fileio::PointParticleCartRegularD< N_dim >::CreateFile(), solver::ppsol::IncFData, gsmpi::root, and fileio::PointParticleCartRegularD< N_dim >::SetFileAttr().


|
private |
| blockelm::CartBlock<N_dim>& solver::ppsol::CartPPSol< N_dim, SpaceID >::block = CartDataSpace<N_dim, SpaceID>::cartblock |
| PBTypeMap solver::ppsol::CartPPSol< N_dim, SpaceID >::bound_type |
| std::vector<ibm::IBMCart<N_dim> >& solver::ppsol::CartPPSol< N_dim, SpaceID >::cartibm = CartDataSpace<N_dim, SpaceID>::cartibm |
| ContactComponent solver::ppsol::CartPPSol< N_dim, SpaceID >::coll_comp |
| dmdyn::ParticleContact<N_dim> solver::ppsol::CartPPSol< N_dim, SpaceID >::contact |
| int solver::ppsol::CartPPSol< N_dim, SpaceID >::conti |
| CoupleType solver::ppsol::CartPPSol< N_dim, SpaceID >::couple_type |
| std::vector<std::vector<Real> >& solver::ppsol::CartPPSol< N_dim, SpaceID >::domain_size = CartDataSpace<N_dim, SpaceID>::domain_size |
| std::vector<std::vector<Real> >& solver::ppsol::CartPPSol< N_dim, SpaceID >::gb_domain_size = CartDataSpace<N_dim, SpaceID>::gb_domain_size |
| int& solver::ppsol::CartPPSol< N_dim, SpaceID >::ibm_flag = CartDataSpace<N_dim>::ibm_flag |
| std::vector<dmdyn::init::InitPartData<N_dim> > solver::ppsol::CartPPSol< N_dim, SpaceID >::initpdata_list |
| int solver::ppsol::CartPPSol< N_dim, SpaceID >::interp_order |
| int solver::ppsol::CartPPSol< N_dim, SpaceID >::localsize |
| Real solver::ppsol::CartPPSol< N_dim, SpaceID >::max_particle_length = 0. |
| gsmpi::GSMPICart<N_dim>& solver::ppsol::CartPPSol< N_dim, SpaceID >::mpicomm = CartDataSpace<N_dim, SpaceID>::mpicomm |
| std::string solver::ppsol::CartPPSol< N_dim, SpaceID >::part_info_path |
| std::string solver::ppsol::CartPPSol< N_dim, SpaceID >::part_type |
| SmartPList<ParticleField<N_dim> > solver::ppsol::CartPPSol< N_dim, SpaceID >::partfieldlist |
| PDataFileType solver::ppsol::CartPPSol< N_dim, SpaceID >::pdata_filetype |
| dmdyn::CoupleCart<N_dim> solver::ppsol::CartPPSol< N_dim, SpaceID >::pfcouple |
| struct { ... } solver::ppsol::CartPPSol< N_dim, SpaceID >::ppdict |
dictionary of ppsol configuration
| CartPPVirtualRegion<N_dim> solver::ppsol::CartPPSol< N_dim, SpaceID >::ppvirt |
| std::vector<ibm::IBMCart<N_dim> > solver::ppsol::CartPPSol< N_dim, SpaceID >::pr_ibm |
| std::unordered_map<int, int> solver::ppsol::CartPPSol< N_dim, SpaceID >::pr_index |
| gsmpi::SerializedBuffer solver::ppsol::CartPPSol< N_dim, SpaceID >::precvbuff |
| gsmpi::SerializedBuffer solver::ppsol::CartPPSol< N_dim, SpaceID >::psendbuff |
|
inlinestatic |
| Array1<dmdyn::ParticleModel *> solver::ppsol::CartPPSol< N_dim, SpaceID >::ptr_particle |
| int solver::ppsol::CartPPSol< N_dim, SpaceID >::ratio_dt_dtp |
| int solver::ppsol::CartPPSol< N_dim, SpaceID >::ratio_dtp_dtc |
| std::vector<blockelm::CartField<Real, N_dim> *>& solver::ppsol::CartPPSol< N_dim, SpaceID >::tempfields = CartDataSpace<N_dim, SpaceID>::tempfields |
| TimeScheme solver::ppsol::CartPPSol< N_dim, SpaceID >::time_scheme |
| int solver::ppsol::CartPPSol< N_dim, SpaceID >::typenum |
| std::string solver::ppsol::CartPPSol< N_dim, SpaceID >::work_path |
| Array1<compgeo::SimpleCartBoxZone<N_dim> > solver::ppsol::CartPPSol< N_dim, SpaceID >::zonelist |