PhyStar  v0.0.0 thu24
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
dmdyn Namespace Reference

Namespaces

 angular
 basic function of angular dynamics of particle
 
 init
 
 pptype
 

Classes

struct  ParticleContact
 
struct  PPContact
 
struct  PPContactModelBase
 
struct  WPContact
 
struct  NormDist
 
struct  WPContactModelBase
 
struct  ContactData
 
struct  ParticleData
 
struct  ParticleData< 3 >
 
struct  ParticleData< 2 >
 
struct  ParticleField
 
struct  PFluidData
 
struct  SmartData
 
class  CavityQueue
 This class is designed for saving the cavity in the particlefield smartplist. More...
 
class  SmartPList
 particle field list model More...
 
struct  EllipsoidalPointParticle
 the base of single ellipsoidal point particle More...
 
class  EllipsoidalShape
 particle type class More...
 
class  EllipsoidLevelSet
 
struct  ParticleModel
 
struct  ShapeIntegral
 
class  SwimmerItf
 
struct  ForceModel
 
struct  TorqueModel
 
struct  CoupleBase
 
struct  CoupleCart
 
struct  DeltaFun
 
struct  DeltaFunMap
 

Typedefs

template<int N_dim>
using PFList = SmartPList< ParticleField< N_dim > >
 
using PartID = std::tuple< uInt, uInt, uInt >
 
using CavityIndex = CavityQueue< int >
 
using FM_ptr = std::shared_ptr< dmdyn::ForceModel >
 
using TM_ptr = std::shared_ptr< dmdyn::TorqueModel >
 

Enumerations

enum class  ContactShapeType { None = 0 , SphereToSphere , EllipsoidToEllipsoid }
 
enum class  ContactStatus { Do_Not_Contact = 0 , Contact }
 
enum class  ContactComponent { Single = 0 , Multi }
 control whether collision will happen only in the same type particle (Single) or in different type particle (Multi) More...
 
enum class  WPDetectMethod { CenterPnt = 0 , EquRadius , MaxRadius , FullResolved }
 Wall contact detection method. More...
 
enum class  PBoundaryType { P = 0 , W , N }
 particle boundary type More...
 
enum class  SPLTag {
  Free = 0 , ReadOnly , AddOnly , GetAndRemoveOnly ,
  AddVirtualListOnly
}
 
enum class  ShapeType { Sphere = 0 , Spheroid , Ellipsoid }
 
enum class  CoupleType { Force = 0 , Torque = 1 , Stresslet }
 
enum class  DeltaFunType {
  FourPnts , ThreePnts , TwoPnts , OnePnts ,
  FourPntsCos
}
 

Functions

template<int N_dim = 3>
 requires (N_dim==2||N_dim==3) void Ellipsoid< N_dim >
 compute particle constant parameters More...
 
template<int N_dim>
Real Distance (ParticleField< N_dim > &pf_i, ParticleField< N_dim > &pf_j)
 calculate the distance between two particle More...
 
static PBoundaryType vConfigPBoundaryType (std::string type)
 
static WPDetectMethod vConfigWPDetectMethod (std::string type)
 
template<int N_dim>
Vecr< N_dim > HouseholderTransfer (const Vecr< N_dim > &xyz, const Vecr< N_dim > &dir, const Vecr< N_dim > &pos)
 HouseholderTransfer. More...
 
template<int N_dim>
Vecr< N_dim > HouseholderTransfer (const Vecr< N_dim > &vel, const Vecr< N_dim > &dir)
 
template<int N_dim>
std::ostream & operator<< (std::ostream &os, const ParticleData< N_dim > &x)
 print particle data More...
 
template<int N_dim>
std::ostream & operator<< (std::ostream &os, const PFluidData< N_dim > &x)
 
template<int N_dim>
requires(N_dim==2||N_dim==3) struct Ellipsoid requires (N_dim==2||N_dim==3) Ellipsoid< N_dim >
 basic model of ellipsoid More...
 
template<int N_dim>
 requires (N_dim==3||N_dim==2||N_dim==1) static inline Real Rep(const Real &kvisc
 particle Reynolds Number Re_p, base on diameter More...
 
template<int N_dim>
requires(N_dim==2||N_dim==3) struct IBEllipsoid requires (N_dim==2||N_dim==3) IBEllipsoid< N_dim >
 basic model of ellipsoid More...
 
template<int N_dim>
requires(N_dim==2||N_dim==3) struct IBSphere requires (N_dim==2||N_dim==3) IBSphere< N_dim >
 
template<int N_dim>
requires(N_dim==2||N_dim==3) struct Sphere requires (N_dim==2||N_dim==3) Sphere< N_dim >
 basic model of sphere More...
 
template<int N_dim>
requires(N_dim==2||N_dim==3) struct SpheroidInertialess requires (N_dim==2||N_dim==3) SpheroidInertialess< N_dim >
 basic model of inertialess spheroid More...
 
 switch (modelid)
 
static std::vector< std::string > PresetForceModel (const int &modelid)
 Generate force model name list for preset particle models. More...
 
static std::vector< std::string > PresetTorqueModel (const int &modelid)
 Generate torque model name list for preset particle models. More...
 
static CoupleType vConfigCoupleType (const std::string &type)
 
static DeltaFunType vConfigDeltaFunType (const std::string &type)
 
static int vConfigDeltaWidth (const DeltaFunType type)
 

Variables

std::vector< FM_ptr > & vectorlist
 
std::vector< FM_ptr > const std::vector< std::string > & strlist
 
const Realradius
 
const Real const Real fluidvel []
 

Typedef Documentation

◆ CavityIndex

using dmdyn::CavityIndex = typedef CavityQueue<int>

◆ FM_ptr

using dmdyn::FM_ptr = typedef std::shared_ptr<dmdyn::ForceModel>

◆ PartID

typedef std::tuple< uInt, uInt, uInt > dmdyn::PartID

◆ PFList

template<int N_dim>
using dmdyn::PFList = typedef SmartPList<ParticleField<N_dim> >

◆ TM_ptr

using dmdyn::TM_ptr = typedef std::shared_ptr<dmdyn::TorqueModel>

Enumeration Type Documentation

◆ ContactComponent

control whether collision will happen only in the same type particle (Single) or in different type particle (Multi)

Enumerator
Single 
Multi 

◆ ContactShapeType

Enumerator
None 
SphereToSphere 
EllipsoidToEllipsoid 

◆ ContactStatus

enum dmdyn::ContactStatus
strong
Enumerator
Do_Not_Contact 
Contact 

◆ CoupleType

enum dmdyn::CoupleType
strong
Enumerator
Force 
Torque 
Stresslet 

◆ DeltaFunType

enum dmdyn::DeltaFunType
strong
Enumerator
FourPnts 
ThreePnts 
TwoPnts 
OnePnts 
FourPntsCos 

◆ PBoundaryType

enum dmdyn::PBoundaryType
strong

particle boundary type

Enumerator

◆ ShapeType

enum dmdyn::ShapeType
strong
Enumerator
Sphere 
Spheroid 
Ellipsoid 

◆ SPLTag

enum dmdyn::SPLTag
strong
Enumerator
Free 
ReadOnly 
AddOnly 
GetAndRemoveOnly 
AddVirtualListOnly 

◆ WPDetectMethod

enum dmdyn::WPDetectMethod
strong

Wall contact detection method.

Enumerator
CenterPnt 
EquRadius 
MaxRadius 
FullResolved 

Function Documentation

◆ Distance()

template<int N_dim>
Real dmdyn::Distance ( ParticleField< N_dim > &  pf_i,
ParticleField< N_dim > &  pf_j 
)

calculate the distance between two particle

Parameters
pf_iparticleField i
pf_jparticleField j
Returns

References dmdyn::ParticleField< N_dim >::pdata.

Here is the caller graph for this function:

◆ HouseholderTransfer() [1/2]

template<int N_dim>
Vecr<N_dim> dmdyn::HouseholderTransfer ( const Vecr< N_dim > &  vel,
const Vecr< N_dim > &  dir 
)

References blin::Dot(), and blin::Norm2().

Here is the call graph for this function:

◆ HouseholderTransfer() [2/2]

template<int N_dim>
Vecr<N_dim> dmdyn::HouseholderTransfer ( const Vecr< N_dim > &  xyz,
const Vecr< N_dim > &  dir,
const Vecr< N_dim > &  pos 
)

HouseholderTransfer.

Template Parameters
N_dim
Parameters
xyzposition point
dirdirection of plane
pospostion at plane
Returns
Vecr<N_dim>

References blin::Dot(), and blin::Norm2().

Here is the call graph for this function:

◆ operator<<() [1/2]

template<int N_dim>
std::ostream& dmdyn::operator<< ( std::ostream &  os,
const ParticleData< N_dim > &  x 
)
inline

print particle data

Template Parameters
Real
Parameters
os
x
Returns
std::ostream&

◆ operator<<() [2/2]

template<int N_dim>
std::ostream& dmdyn::operator<< ( std::ostream &  os,
const PFluidData< N_dim > &  x 
)
inline

◆ PresetForceModel()

static std::vector<std::string> dmdyn::PresetForceModel ( const int &  modelid)
static

Generate force model name list for preset particle models.

Parameters
modelid
Returns
std::vector<std::string> the list of force model name

References dmdyn::pptype::kEllipsoid, dmdyn::pptype::kEllipsoid_tracer, 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.

Here is the caller graph for this function:

◆ PresetTorqueModel()

static std::vector<std::string> dmdyn::PresetTorqueModel ( const int &  modelid)
static

Generate torque model name list for preset particle models.

Parameters
modelid
Returns
std::vector<std::string> the list of torque model name

References dmdyn::pptype::kEllipsoid, dmdyn::pptype::kEllipsoid_tracer, dmdyn::pptype::kSphere, dmdyn::pptype::kSpheroid_inertialess, and dmdyn::pptype::kSpheroid_inertialess_swimmer.

Here is the caller graph for this function:

◆ requires() [1/7]

template<int N_dim>
requires (N_dim == 2 || N_dim == 3) struct Ellipsoid dmdyn::requires ( N_dim  = = 2 || N_dim == 3)

basic model of ellipsoid

model id from 100-103

Template Parameters
N_dim

References PresetForceModel(), PresetTorqueModel(), radius, and vConfigWPDetectMethod().

Here is the call graph for this function:

◆ requires() [2/7]

template<int N_dim>
requires (N_dim == 2 || N_dim == 3) struct IBEllipsoid dmdyn::requires ( N_dim  = = 2 || N_dim == 3)

basic model of ellipsoid

model id from 100-103

Template Parameters
N_dim

References dmdyn::ParticleModel::id.

◆ requires() [3/7]

template<int N_dim>
requires (N_dim == 2 || N_dim == 3) struct IBSphere dmdyn::requires ( N_dim  = = 2 || N_dim == 3)

◆ requires() [4/7]

template<int N_dim>
requires (N_dim == 2 || N_dim == 3) struct Sphere dmdyn::requires ( N_dim  = = 2 || N_dim == 3)

basic model of sphere

model id from 100-103

Template Parameters
N_dim

References PresetForceModel(), PresetTorqueModel(), radius, and vConfigWPDetectMethod().

Here is the call graph for this function:

◆ requires() [5/7]

template<int N_dim>
requires (N_dim == 2 || N_dim == 3) struct SpheroidInertialess dmdyn::requires ( N_dim  = = 2 || N_dim == 3)

basic model of inertialess spheroid

model id from 300-399

Template Parameters
N_dim

References PresetForceModel(), PresetTorqueModel(), and vConfigWPDetectMethod().

Here is the call graph for this function:

◆ requires() [6/7]

template<int N_dim = 3>
dmdyn::requires ( N_dim  = =2||N_dim==3)

compute particle constant parameters

Template Parameters
N_dim

ghost collision

GlowinskiCollision model

Cohesion model

Lubrication model

Collision model

GlowinskiCollision model

Stokes drag

Stokes drag with Oseen correction

Stokes drag with empirical correction

Gyrotaxis torque for inertialess spheroids. written by jingran qiu

GlowinskiCollision model

Stokes drag

Stokes drag with Oseen correction

Stokes drag with empirical correction

Gyrotaxis torque for inertialess spheroids. written by jingran qiu

References dmdyn::ParticleField< N_dim >::contact_force, dmdyn::ParticleField< N_dim >::contact_torque, dmdyn::angular::CrossVec3(), dmdyn::ContactData< N_dim >::curr_ind, dmdyn::ContactData< N_dim >::disp_tan_new, dmdyn::ContactData< N_dim >::disp_tan_old, Distance(), dmdyn::ParticleField< N_dim >::dtc, EllipsoidToEllipsoid, dmdyn::ParticleField< N_dim >::fdata, Force, dmdyn::ParticleField< N_dim >::getParticleID(), dmdyn::ContactData< N_dim >::if_cal_once, dmdyn::ContactData< N_dim >::impart_vel_new, dmdyn::ContactData< N_dim >::impart_vel_old, quadpack::max(), quadpack::min(), dmdyn::ContactData< N_dim >::nbrs_contact_init_state, dmdyn::ContactData< N_dim >::nbrs_contact_stage_new, dmdyn::ContactData< N_dim >::nbrs_contact_stage_old, dmdyn::ContactData< N_dim >::nbrs_pp_contact, dmdyn::ContactData< N_dim >::nbrs_pp_index, dmdyn::ParticleField< N_dim >::ncollid_step, dmdyn::ParticleField< N_dim >::np_step, dmdyn::ParticleField< N_dim >::particle_typeid, dmdyn::ParticleField< N_dim >::pdata, mathconst::PI, dmdyn::ParticleField< N_dim >::rk_step, SphereToSphere, and dmdyn::ParticleField< N_dim >::time_scheme.

Here is the call graph for this function:

◆ requires() [7/7]

template<int N_dim>
dmdyn::requires ( N_dim  = =3||N_dim==2||N_dim==1) const &

particle Reynolds Number Re_p, base on diameter

Re_p=2*r*|u_f-v_p|/\nu

Parameters
kvisckinematic viscosity \nu
radiusparticle radius
fluidvelfluid velocity at particle postion
partvelparticle velocity
Returns
Real

◆ switch()

◆ vConfigCoupleType()

static CoupleType dmdyn::vConfigCoupleType ( const std::string &  type)
inlinestatic

References Force, Stresslet, and Torque.

Here is the caller graph for this function:

◆ vConfigDeltaFunType()

static DeltaFunType dmdyn::vConfigDeltaFunType ( const std::string &  type)
inlinestatic

References FourPnts, FourPntsCos, OnePnts, ThreePnts, and TwoPnts.

Here is the caller graph for this function:

◆ vConfigDeltaWidth()

static int dmdyn::vConfigDeltaWidth ( const DeltaFunType  type)
inlinestatic

References FourPnts, FourPntsCos, OnePnts, ThreePnts, and TwoPnts.

Here is the caller graph for this function:

◆ vConfigPBoundaryType()

static PBoundaryType dmdyn::vConfigPBoundaryType ( std::string  type)
inlinestatic

References N, P, and W.

Here is the caller graph for this function:

◆ vConfigWPDetectMethod()

static WPDetectMethod dmdyn::vConfigWPDetectMethod ( std::string  type)
inlinestatic

References CenterPnt, EquRadius, FullResolved, and MaxRadius.

Here is the caller graph for this function:

Variable Documentation

◆ fluidvel

const Real const Real dmdyn::fluidvel[]

◆ radius

const Real& dmdyn::radius

◆ strlist

std::vector< TM_ptr > const std::vector< std::string > & dmdyn::strlist
Initial value:
{
using namespace pptype

◆ vectorlist

std::vector< TM_ptr > & dmdyn::vectorlist