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) |
![]() | |
PPSolBase () | |
virtual | ~PPSolBase () |
![]() | |
Solver () | |
virtual | ~Solver () |
void | PrintAbstract () |
void | Relase (const SolverNameList &flag) |
void | ConfigGlobalDict (const std::string filename) |
void | PrintConfigGlobalDict () |
virtual std::string | GetMeshName () |
![]() | |
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 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 const auto & | GlobalDict () |
static const auto & | Dt () |
![]() | |
static std::vector< int > | CalTotalShape (const std::vector< int > &flag) |
![]() | |
int | id = 0 |
![]() | |
static int | num_of_ppsol = 0 |
![]() | |
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 |